Advertisement
Guest User

Untitled

a guest
Jul 20th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 141.09 KB | None | 0 0
  1. using BaseTrade.BiddingService.ImportExportDaemon.Contracts.CallbackService;
  2. using BaseTrade.Common;
  3. using BaseTrade.Common.AppServices.NotificationService;
  4. using BaseTrade.Common.AppServices.OperationContextService;
  5. using BaseTrade.Common.Domain;
  6. using BaseTrade.Common.Domain.Data;
  7. using BaseTrade.Common.PublicService;
  8. using BaseTrade.Dealing.WcfServices.Agents;
  9. using BaseTrade.Dealing.WcfServices.Contracts.DealingCallbackService;
  10. using BaseTrade.Dealing.WcfServices.Contracts.DealingService;
  11. using BaseTrade.Infrastructure.Common.CacheProvider;
  12. using BaseTrade.Integration.Oos94FZ.WcfServices.Contracts.Oos94FZCallbackService;
  13. using BaseTrade.Tender.AppServices.Control99ProtocolValidateService;
  14. using BaseTrade.Tender.AppServices.FinancialProcessingTradeLotApplicationService;
  15. using BaseTrade.Tender.AppServices.FinancialTransactionSagaService;
  16. using BaseTrade.Tender.AppServices.NotificationService;
  17. using BaseTrade.Tender.AppServices.RegistratorTradingEventSagaService;
  18. using BaseTrade.Tender.AppServices.RtsFinanceApiClient;
  19. using BaseTrade.Tender.AppServices.TradeService;
  20. using BaseTrade.Tender.AppServices;
  21. using BaseTrade.Tender.Domain;
  22. using BaseTrade.Tender.Domain.Data.Repositories;
  23. using BaseTrade.Tender.Domain.RepositoryInterfaces;
  24. using BaseTrade.Tender.WcfServices.Agents;
  25. using BaseTrade.Tender.WcfServices.Agents.FinTenderContragentsReportService;
  26. using BaseTrade.Tender.WcfServices.Contracts.AccreditationService;
  27. using BaseTrade.Tender.WcfServices.Contracts.CheckSecurityService;
  28. using BaseTrade.Tender.WcfServices.Contracts.CreditService;
  29. using IDictionaryService = BaseTrade.Tender.WcfServices.Contracts.DictionaryService.IDictionaryService;
  30. using BaseTrade.Tender.WcfServices.Contracts.PurchaseInfoService;
  31. using BaseTrade.Tender.WcfServices.Contracts.TaskService;
  32. using BaseTrade.Tender.WcfServices.Contracts.TradeHistoryService;
  33. using BaseTrade.Tender.WcfServices.Contracts.TradeProcedureExportService;
  34. using BaseTrade.Tender.WcfServices.Contracts.TradeRegistryPushService;
  35. using BaseTrade.Tender.WcfServices.Contracts.TradingInfoProviderService;
  36. using BaseTrade.Tender.WcfServices.Contracts.TradingService;
  37. using BaseTrade.Tender.WcfServices.Contracts.ProcedureService;
  38. using BaseTrade.Tender.WcfServices.Implementation.AccreditationService;
  39. using BaseTrade.Tender.WcfServices.Implementation.BiddingImportExportCallbackService;
  40. using BaseTrade.Tender.WcfServices.Implementation.CheckSecurityService;
  41. using BaseTrade.Tender.WcfServices.Implementation.CreditService;
  42. using BaseTrade.Tender.WcfServices.Implementation.DealingCallbackService;
  43. using DictionaryService = BaseTrade.Tender.WcfServices.Implementation.DictionaryService.DictionaryService;
  44. using BaseTrade.Tender.WcfServices.Implementation.Oos94FZCallbackService;
  45. using BaseTrade.Tender.WcfServices.Implementation.PurchaseInfoService;
  46. using BaseTrade.Tender.WcfServices.Implementation.TaskService;
  47. using BaseTrade.Tender.WcfServices.Implementation.TradeHistoryService;
  48. using BaseTrade.Tender.WcfServices.Implementation.TradeProcedureExportService;
  49. using BaseTrade.Tender.WcfServices.Implementation.TradeRegistryPullService;
  50. using BaseTrade.Tender.WcfServices.Implementation.TradeRegistryPushService;
  51. using BaseTrade.Tender.WcfServices.Implementation.TradingInfoProviderService;
  52. using BaseTrade.Tender.WcfServices.Implementation.TradingService;
  53. using BaseTrade.Tender.WcfServices.Implementation.ProcedureService;
  54. using BaseTrade.TradeRegistry.WcfServices.Contracts.Services.TradeRegistryPullService;
  55. using Castle.Facilities.WcfIntegration;
  56. using Castle.MicroKernel.Registration;
  57. using Castle.Windsor;
  58. using SharpArch.Web.Mvc.Castle;
  59. using System;
  60. using System.Linq;
  61. using BaseTrade.Common.AppServices.VerificationTicketService;
  62. using BaseTrade.Procedure.AppServices.Applications.AppServices.Common.Base;
  63. using BaseTrade.Procedure.AppServices.Applications.AppServices.Common.Interfaces;
  64. using BaseTrade.Tender.AppServices.OptionsAvailabilityService;
  65. using BaseTrade.Tender.AppServices.Validators;
  66. using BaseTrade.Tender.WcfServices.Implementation.Factories;
  67. using BaseTrade.Public.RedisCache.Client;
  68. using BaseTrade.Public.RedisCache.Client.SimpleRedisCache;
  69. using BaseTrade.Public.SystemLogging;
  70. using BaseTrade.Tender.ComponentRegistrar.DependencyResolvers;
  71. using BaseTrade.Tender.WcfServices.Implementation.ProcedureImportService;
  72. using BaseTrade.Tender.WcfServices.Implementation.ProcedureMappingService;
  73. using BaseTrade.Tender.WcfServices.Contracts.ProcedureService.Messaging.OpenCompetition.Application;
  74. using BaseTrade.Procedure.AppServices.Applications.Builders.Base;
  75. using BaseTrade.Procedure.AppServices.Applications.Builders.Interfaces;
  76. using BaseTrade.Procedure.AppServices.Applications.StateMachine.Core.Base;
  77. using BaseTrade.Procedure.AppServices.Applications.StateMachine.Core.Interfaces;
  78. using BaseTrade.Procedure.AppServices.Applications.StateMachine.States.Base;
  79. using BaseTrade.Tender.WcfServices.Contracts.ProcedureService.Messaging.Base.Application;
  80. using BaseTrade.Tender.WcfServices.Contracts.ProcedureService.Messaging.OpenCompetition.Protocol;
  81. using BaseTrade.Tender.WcfServices.Implementation.ProcedureService.Converters;
  82. using BaseTrade.Procedure.AppServices.Procedures.AppServices.Common.Base;
  83. using BaseTrade.Procedure.AppServices.Procedures.AppServices.Common.Interfaces;
  84. using BaseTrade.Procedure.AppServices.Procedures.Builders.Base;
  85. using BaseTrade.Procedure.AppServices.Procedures.Builders.Interfaces;
  86. using BaseTrade.Procedure.AppServices.Procedures.StateMachine.AppServices.Implementations;
  87. using BaseTrade.Procedure.AppServices.Procedures.StateMachine.AppServices.Interfaces;
  88. using BaseTrade.Procedure.AppServices.Procedures.StateMachine.Core.Base;
  89. using BaseTrade.Procedure.AppServices.Procedures.StateMachine.Core.Interfaces;
  90. using BaseTrade.Procedure.AppServices.Procedures.StateMachine.States.Base;
  91. using BaseTrade.Procedure.AppServices.Protocols.AppServices.Common.Interfaces;
  92. using BaseTrade.Procedure.AppServices.Protocols.Builders.Base;
  93. using BaseTrade.Procedure.AppServices.Protocols.Builders.Interfaces;
  94. using BaseTrade.Procedure.AppServices.Protocols.Factories.Base;
  95. using BaseTrade.Procedure.AppServices.Protocols.Factories.Interfaces;
  96. using BaseTrade.Procedure.Auction504Fl.Applications.Builders;
  97. using BaseTrade.Procedure.Auction504Fl.Applications.StateMachine.Core.Implementations;
  98. using BaseTrade.Procedure.Auction504Fl.Procedures.AppServices.Common;
  99. using BaseTrade.Procedure.Auction504Fl.Procedures.AppServices.Common.Interfaces;
  100. using BaseTrade.Procedure.Auction504Fl.Procedures.Builders;
  101. using BaseTrade.Procedure.Auction504Fl.Procedures.StateMachine.AppServices;
  102. using BaseTrade.Procedure.Auction504Fl.Procedures.StateMachine.Core.Implementations;
  103. using BaseTrade.Procedure.Auction504Fl.Procedures.StateMachine.Core.Interfaces;
  104. using BaseTrade.Procedure.Auction504Fl.Procedures.StateMachine.States;
  105. using BaseTrade.Procedure.Auction504Fl.Protocols.AppServices;
  106. using BaseTrade.Procedure.Auction504Fl.Protocols.AppServices.Implementations;
  107. using BaseTrade.Procedure.Auction504Fl.Protocols.AppServices.Interfaces;
  108. using BaseTrade.Procedure.Auction504Fl.Protocols.Builders;
  109. using BaseTrade.Procedure.Auction504Fl.Protocols.Factories;
  110. using BaseTrade.Procedure.OpenCompetition.Applications.AppServices;
  111. using BaseTrade.Procedure.OpenCompetition.Applications.Builders;
  112. using BaseTrade.Procedure.OpenCompetition.Applications.StateMachine.Core.Implementations;
  113. using BaseTrade.Procedure.OpenCompetition.Procedures.Builders;
  114. using BaseTrade.Procedure.OpenCompetition.Procedures.StateMachine.AppServices;
  115. using BaseTrade.Procedure.OpenCompetition.Procedures.StateMachine.Core.Implementations;
  116. using BaseTrade.Procedure.OpenCompetition.Procedures.StateMachine.Core.Interfaces;
  117. using BaseTrade.Procedure.OpenCompetition.Procedures.StateMachine.States;
  118. using BaseTrade.Procedure.OpenCompetition.Protocols.AppServices;
  119. using BaseTrade.Procedure.OpenCompetition.Protocols.AppServices.Implementations;
  120. using BaseTrade.Procedure.OpenCompetition.Protocols.AppServices.Interfaces;
  121. using BaseTrade.Procedure.OpenCompetition.Protocols.Builders;
  122. using BaseTrade.Procedure.OpenCompetition.Protocols.Factories;
  123. using BaseTrade.Tender.WcfServices.Contracts.ProcedureService.Messaging.Auction504Fl;
  124. using BaseTrade.Tender.WcfServices.Contracts.ProcedureService.Messaging.Auction504Fl.Application;
  125. using BaseTrade.Tender.WcfServices.Contracts.ProcedureService.Messaging.Auction504FL.Protocol;
  126. using BaseTrade.Tender.WcfServices.Contracts.ProcedureService.Messaging.OpenCompetition;
  127. using Eis.Integration.Contracts.Messaging.Fz504.Notification;
  128. using Fz44Common = Eis.Integration.Contracts.Messaging.Fz44.Common;
  129. using Fz504Common = Eis.Integration.Contracts.Messaging.Fz504.Common;
  130. using BaseTrade.Procedure.OpenCompetition.Procedures.StateMachine.ActionExecutors;
  131. using BaseTrade.Procedure.AppServices.Procedures.StateMachine.Actions;
  132. using BaseTrade.Procedure.Auction504Fl.Procedures.StateMachine.ActionExecutors;
  133. using BaseTrade.Tender.WcfServices.Implementation.ClarificationMappingService;
  134. using Messaging = BaseTrade.Integration.Oos94FZ.WcfServices.Contracts.Oos94FZCallbackService.Messaging;
  135. using BaseTrade.Common.AppServices.BiddingPriceService;
  136. using BaseTrade.Procedure.AppServices.Applications.Factories.Interfaces;
  137. using BaseTrade.Procedure.AppServices.Applications.StateMachine.AppServices.Interfaces;
  138. using BaseTrade.Procedure.AppServices.Notifications.Facades.Base;
  139. using BaseTrade.Procedure.AppServices.Notifications.Facades.Interfaces;
  140. using BaseTrade.Procedure.AppServices.Notifications.Parameters.Implementations;
  141. using BaseTrade.Procedure.AppServices.Notifications.Parameters.Interfaces;
  142. using BaseTrade.Procedure.AppServices.Notifications.Services.Implementations;
  143. using BaseTrade.Procedure.AppServices.Notifications.Services.Interfaces;
  144. using BaseTrade.Procedure.AppServices.Protocols.AppServices.Common.Base;
  145. using BaseTrade.Procedure.QuotationsRequest504Fl.Applications.AppServices;
  146. using BaseTrade.Procedure.QuotationsRequest504Fl.Applications.Builders;
  147. using BaseTrade.Procedure.QuotationsRequest504Fl.Applications.StateMachine.Core.Implementations;
  148. using BaseTrade.Procedure.QuotationsRequest504Fl.Procedures.AppServices;
  149. using BaseTrade.Procedure.QuotationsRequest504Fl.Procedures.Builders;
  150. using BaseTrade.Procedure.QuotationsRequest504Fl.Procedures.StateMachine.ActionExecutors;
  151. using BaseTrade.Procedure.QuotationsRequest504Fl.Procedures.StateMachine.AppServices;
  152. using BaseTrade.Procedure.QuotationsRequest504Fl.Procedures.StateMachine.Core.Implementations;
  153. using BaseTrade.Procedure.QuotationsRequest504Fl.Procedures.StateMachine.Core.Interfaces;
  154. using BaseTrade.Procedure.QuotationsRequest504Fl.Procedures.StateMachine.States;
  155. using BaseTrade.Procedure.QuotationsRequest504Fl.Protocols.AppServices;
  156. using BaseTrade.Procedure.QuotationsRequest504Fl.Protocols.AppServices.Implementations;
  157. using BaseTrade.Tender.AppServices.TradeLotPriceService;
  158. using BaseTrade.Tender.WcfServices.Contracts.ProcedureService.Messaging.QuotationsRequest504Fl.Application;
  159. using BaseTrade.Procedure.QuotationsRequest504Fl.Protocols.AppServices.Interfaces;
  160. using BaseTrade.Procedure.QuotationsRequest504Fl.Protocols.Builders;
  161. using BaseTrade.Procedure.QuotationsRequest504Fl.Protocols.Factories;
  162. using BaseTrade.Tender.WcfServices.Contracts.ProcedureService.Messaging.QuotationsRequest504Fl;
  163. using BaseTrade.Tender.WcfServices.Contracts.ProcedureService.Messaging.QuotationsRequest504Fl.Protocol;
  164. using BaseTrade.Procedure.AppServices.Protocols.AppServices.Preferences.Interfaces;
  165. using BaseTrade.Procedure.AppServices.Protocols.AppServices.Preferences.Base;
  166. using BaseTrade.Procedure.Auction504Fl.Applications.AppServices.Common;
  167. using BaseTrade.Procedure.Auction504Fl.Applications.AppServices.Notifications;
  168. using BaseTrade.Procedure.Auction504Fl.Applications.AppServices.Notifications.Interfaces;
  169. using BaseTrade.Procedure.Auction504Fl.Applications.Builders.Interfaces;
  170. using BaseTrade.Procedure.Auction504Fl.Applications.Factories;
  171. using BaseTrade.Procedure.Auction504Fl.Applications.Reports.Data;
  172. using BaseTrade.Procedure.Auction504Fl.Applications.StateMachine.AppServices;
  173. using BaseTrade.Procedure.Auction504Fl.Applications.StateMachine.Core.Interfaces;
  174. using BaseTrade.Procedure.Auction504Fl.Applications.StateMachine.States.Implementations;
  175. using BaseTrade.Procedure.Auction504Fl.Contracts.CalendarEvents.Implementation;
  176. using BaseTrade.Procedure.Auction504Fl.Contracts.CalendarEvents.Interfaces;
  177. using BaseTrade.Procedure.Auction504Fl.Auction504FlNotifierService.Implementation;
  178. using BaseTrade.Procedure.Auction504Fl.Auction504FlNotifierService.Interfaces;
  179. using BaseTrade.Procedure.Auction504Fl.NotificationService;
  180. using BaseTrade.Procedure.DoubleStagedCompetition.Applications.AppServices;
  181. using BaseTrade.Procedure.DoubleStagedCompetition.Applications.Builders;
  182. using BaseTrade.Procedure.DoubleStagedCompetition.Applications.Factories;
  183. using BaseTrade.Procedure.DoubleStagedCompetition.Applications.Reports.Data;
  184. using BaseTrade.Procedure.DoubleStagedCompetition.Applications.StateMachine.AppServices;
  185. using BaseTrade.Procedure.DoubleStagedCompetition.Applications.StateMachine.Core.Implementations;
  186. using BaseTrade.Procedure.DoubleStagedCompetition.Applications.StateMachine.Core.Interfaces;
  187. using BaseTrade.Procedure.DoubleStagedCompetition.Procedures.AppServices;
  188. using BaseTrade.Procedure.DoubleStagedCompetition.Procedures.Builders;
  189. using BaseTrade.Procedure.DoubleStagedCompetition.Procedures.StateMachine.ActionExecutors;
  190. using BaseTrade.Procedure.DoubleStagedCompetition.Procedures.StateMachine.AppServices;
  191. using BaseTrade.Procedure.DoubleStagedCompetition.Procedures.StateMachine.Core.Implementations;
  192. using BaseTrade.Procedure.DoubleStagedCompetition.Procedures.StateMachine.Core.Interfaces;
  193. using BaseTrade.Procedure.DoubleStagedCompetition.Procedures.StateMachine.States;
  194. using BaseTrade.Procedure.DoubleStagedCompetition.Protocols.AppServices;
  195. using BaseTrade.Procedure.DoubleStagedCompetition.Protocols.AppServices.Implementations;
  196. using BaseTrade.Procedure.DoubleStagedCompetition.Protocols.AppServices.Interfaces;
  197. using BaseTrade.Procedure.DoubleStagedCompetition.Protocols.Builders;
  198. using BaseTrade.Procedure.DoubleStagedCompetition.Protocols.Factories;
  199. using BaseTrade.Procedure.OpenCompetition.Applications.Factories;
  200. using BaseTrade.Procedure.OpenCompetition.Applications.Reports.Data;
  201. using BaseTrade.Procedure.OpenCompetition.Applications.StateMachine.AppServices;
  202. using BaseTrade.Procedure.OpenCompetition.Applications.StateMachine.Core.Interfaces;
  203. using BaseTrade.Procedure.ProposalRequest.Applications.AppServices;
  204. using BaseTrade.Procedure.ProposalRequest.Applications.Builders;
  205. using BaseTrade.Procedure.ProposalRequest.Applications.Factories;
  206. using BaseTrade.Procedure.ProposalRequest.Applications.Reports.Data;
  207. using BaseTrade.Procedure.ProposalRequest.Applications.StateMachine.AppServices;
  208. using BaseTrade.Procedure.ProposalRequest.Applications.StateMachine.Core.Implementations;
  209. using BaseTrade.Procedure.ProposalRequest.Applications.StateMachine.Core.Interfaces;
  210. using BaseTrade.Procedure.ProposalRequest.Applications.StateMachine.States.Implementations;
  211. using BaseTrade.Procedure.ProposalRequest.Notifications.Facades.Implementations;
  212. using BaseTrade.Procedure.ProposalRequest.Notifications.Facades.Interfaces;
  213. using BaseTrade.Procedure.ProposalRequest.Notifications.Parameters.Implementations;
  214. using BaseTrade.Procedure.ProposalRequest.Notifications.Parameters.Interfaces;
  215. using BaseTrade.Procedure.ProposalRequest.Notifications.Services.Implementations;
  216. using BaseTrade.Procedure.ProposalRequest.Notifications.Services.Interfaces;
  217. using BaseTrade.Procedure.ProposalRequest.Procedures.AppServices;
  218. using BaseTrade.Procedure.ProposalRequest.Procedures.Builders;
  219. using BaseTrade.Procedure.ProposalRequest.Procedures.StateMachine.ActionExecutors;
  220. using BaseTrade.Procedure.ProposalRequest.Procedures.StateMachine.AppServices;
  221. using BaseTrade.Procedure.ProposalRequest.Procedures.StateMachine.Core.Implementations;
  222. using BaseTrade.Procedure.ProposalRequest.Procedures.StateMachine.Core.Interfaces;
  223. using BaseTrade.Procedure.ProposalRequest.Procedures.StateMachine.States;
  224. using BaseTrade.Procedure.ProposalRequest.Protocols.AppServices;
  225. using BaseTrade.Procedure.ProposalRequest.Protocols.AppServices.Implementations;
  226. using BaseTrade.Procedure.ProposalRequest.Protocols.AppServices.Interfaces;
  227. using BaseTrade.Procedure.ProposalRequest.Protocols.Builders;
  228. using BaseTrade.Procedure.ProposalRequest.Protocols.Factories;
  229. using BaseTrade.Procedure.QuotationsRequest504Fl.Applications.Factories;
  230. using BaseTrade.Procedure.QuotationsRequest504Fl.Applications.Reports.Data;
  231. using BaseTrade.Procedure.QuotationsRequest504Fl.Applications.StateMachine.AppServices;
  232. using BaseTrade.Procedure.QuotationsRequest504Fl.Applications.StateMachine.Core.Interfaces;
  233. using BaseTrade.Tender.WcfServices.Contracts.ProcedureService.Messaging.DoubleStagedCompetition.Application;
  234. using FastReport;
  235. using BaseTrade.Tender.WcfServices.Implementation.ProtocolDtoBuilders;
  236. using Eis.Integration.Contracts.Messaging.Fz504.Protocol;
  237. using BaseTrade.Public.FinanceApi.Client;
  238. using BaseTrade.Tender.WcfServices.Contracts.ProcedureService.Messaging.DoubleStagedCompetition;
  239. using BaseTrade.Tender.WcfServices.Contracts.ProcedureService.Messaging.DoubleStagedCompetition.Protocol;
  240. using BaseTrade.Tender.WcfServices.Contracts.ProcedureService.Messaging.ProposalRequest;
  241. using BaseTrade.Tender.WcfServices.Contracts.ProcedureService.Messaging.ProposalRequest.Application;
  242. using BaseTrade.Tender.WcfServices.Contracts.ProcedureService.Messaging.ProposalRequest.Protocol;
  243. using Castle.Core.Internal;
  244. using BaseTrade.Procedure.QuotationsRequest504Fl.Applications.StateMachine.States.Implementations;
  245. using BaseTrade.Tender.AppServices.FinancialService;
  246. using BaseTrade.Tender.WcfServices.Contracts.ProcedureService.Messaging.Base.Protocol;
  247. using BaseTrade.Tender.AppServices.PrescriptionExecutionService.Specific;
  248. using BaseTrade.Common.UI.Web.Services.Auctions.TabsFactory;
  249. using BaseTrade.Common.UI.Web.Services.Auctions;
  250. using BaseTrade.Tender.AppServices.PurchaserInfoPrintForm;
  251.  
  252. namespace BaseTrade.Tender.ComponentRegistrar
  253. {
  254. public static class TenderRegistrar
  255. {
  256. public static void AddComponentsTo(IWindsorContainer container, HostingType hostingType)
  257. {
  258. container.Register(
  259. Component.For(typeof(INotificationService)).ImplementedBy(typeof(NotificationService)).LifestylePerWcfOperation());
  260.  
  261. AddGenericRepositories(container);
  262. AddRepositoriesTo(container);
  263. AddHelpersTo(container);
  264. AddValidatorsTo(container);
  265. AddAppServicesTo(container);
  266. AddWcfServicesTo(container, hostingType);
  267.  
  268. container.Register(Component.For<ISimpleRedisCacheClient>().Instance(SimpleRedisCacheClient.Instance).LifestyleSingleton());
  269.  
  270. var cacheDuration = TimeSpan.FromMinutes(5);
  271. container.Register(Component.For<ICacheProvider>().Instance(new CacheProvider(cacheDuration, cacheDuration)).LifestyleSingleton());
  272.  
  273. PublicServiceComponentRegistrarWcf.Current.AddComponentsTo<PublicServiceFactory>(container);
  274.  
  275. container.Register(Classes.FromAssembly(typeof(DealingServiceClient).Assembly)
  276. .Pick().WithService.FirstNonGenericCoreInterface(
  277. typeof(IDealingService).Assembly.GetName().Name).LifestylePerWcfOperation());
  278.  
  279. }
  280.  
  281. private static void AddHelpersTo(IWindsorContainer container)
  282. {
  283. container.Register(Component.For(typeof(ISqlSessionHelper))
  284. .ImplementedBy(typeof(SqlSessionHelper))
  285. .LifestylePerWcfOperation());
  286.  
  287. container.Register(Component.For(typeof(IAutoTradeMessageSendMethodFactory))
  288. .ImplementedBy(typeof(AutoTradeMessageSendMethodFactory)).LifestylePerWcfOperation());
  289. }
  290.  
  291. private static void AddValidatorsTo(IWindsorContainer container)
  292. {
  293. container.Register(Component.For(typeof(IApplicationDocumentSignatureValidator))
  294. .ImplementedBy(typeof(ApplicationDocumentSignatureValidator))
  295. .LifestyleTransient());
  296. }
  297.  
  298. private static void AddGenericRepositories(IWindsorContainer container)
  299. {
  300. container.Register(
  301. Component.For(typeof (IRepositoryBase<>)).ImplementedBy(typeof (RepositoryBase<>)).Named(
  302. "repositoryBase").LifestylePerWcfOperation());
  303.  
  304. container.Register(
  305. Component.For(typeof (IRepositoryUniqueBase<>)).ImplementedBy(typeof (RepositoryUniqueBase<>)).Named(
  306. "repositoryUniqueBase").LifestylePerWcfOperation());
  307.  
  308. container.Register(
  309. Component.For(typeof (ISagaRepositoryBase<>)).ImplementedBy(typeof (SagaRepositoryBase<>)).Named(
  310. "sagaRepositoryBase").LifestylePerWcfOperation());
  311. }
  312.  
  313. private static void AddRepositoriesTo(IWindsorContainer container)
  314. {
  315. container.Register(
  316. Classes
  317. .FromAssembly(typeof (TradeRepository).Assembly)
  318. .Pick().WithService.FirstNonGenericCoreInterface(
  319. typeof (ITradeRepository).Assembly.GetName().Name).LifestylePerWcfOperation());
  320.  
  321. container.Register(
  322. Classes.FromAssembly(typeof(FinancialProcessingTradeLotApplicationRepository).Assembly)
  323. .Pick().WithService.FirstNonGenericCoreInterface(
  324. typeof(IFinancialProcessingTradeLotApplicationRepository).Assembly.GetName().Name)
  325. .LifestylePerWcfOperation());
  326. }
  327.  
  328. private static void AddAppServicesTo(IWindsorContainer container)
  329. {
  330. #region PrescriptionExecution
  331.  
  332. container.Register(Component.For<IAuction504FlPrescriptionExecutionService>()
  333. .ImplementedBy<Auction504FlPrescriptionExecutionService>().LifestylePerWcfOperation());
  334.  
  335. container.Register(Component.For<IOpenCompetitionPrescriptionExecutionService>()
  336. .ImplementedBy<OpenCompetitionPrescriptionExecutionService>().LifestylePerWcfOperation());
  337.  
  338. container.Register(Component.For<IQuotationsRequest504FlPrescriptionExecutionService>()
  339. .ImplementedBy<QuotationsRequest504FlPrescriptionExecutionService>().LifestylePerWcfOperation());
  340.  
  341. container.Register(Component.For<IProposalRequestPrescriptionExecutionService>()
  342. .ImplementedBy<ProposalRequestPrescriptionExecutionService>().LifestylePerWcfOperation());
  343.  
  344. container.Register(Component.For<IDoubleStagedCompetitionPrescriptionExecutionService>()
  345. .ImplementedBy<DoubleStagedCompetitionPrescriptionExecutionService>().LifestylePerWcfOperation());
  346.  
  347. #endregion
  348.  
  349. #region Common
  350.  
  351. container.Register(Component.For<IFinancialAggregatedService>()
  352. .ImplementedBy<FinancialAggregatedService>().LifestylePerWcfOperation());
  353.  
  354. container.Register(Component.For<IDealFinancialService>().ImplementedBy<DealFinancial504FlService>().LifestylePerWcfOperation());
  355.  
  356. container.Register(Component
  357. .For(typeof(IApplicationDataService<>))
  358. .ImplementedBy(typeof(ApplicationDataService<>))
  359. .LifestylePerWcfOperation());
  360.  
  361. container.Register(Component.For<Auction44FlBiddingPriceService>()
  362. .ImplementedBy<Auction44FlBiddingPriceService>().LifestylePerWcfOperation());
  363. container.Register(Component.For<Auction504FlBiddingPriceService>()
  364. .ImplementedBy<Auction504FlBiddingPriceService>().LifestylePerWcfOperation());
  365. container.Register(Component.For<IBiddingPriceServiceFactory>()
  366. .ImplementedBy<BiddingPriceServiceFactory>().LifestylePerWcfOperation());
  367. container.Register(Component.For<ITradeLotPriceService>()
  368. .ImplementedBy<TradeLotPriceService>().LifestylePerWcfOperation());
  369.  
  370. container.Register(Component.For(typeof(IOperationContextService))
  371. .ImplementedBy(typeof(OperationContextService))
  372. .LifestylePerWcfOperation());
  373.  
  374. container.Register(
  375. Component.For(typeof(IControl99ProtocolValidateService))
  376. .ImplementedBy(typeof(Control99ProtocolValidateService))
  377. .LifestylePerWcfOperation());
  378.  
  379. container.Register(
  380. Classes.FromAssemblyContaining(typeof(FinancialTransactionBusSagaService))
  381. .BasedOn<IFinancialTransactionBusSagaService>()
  382. .WithService.AllInterfaces()
  383. .LifestylePerWcfOperation());
  384.  
  385. container.Register(
  386. Classes.From(typeof(FinancialTransactionSagaService))
  387. .Pick()
  388. .WithService.FirstNonGenericCoreInterface(
  389. typeof(IFinancialTransactionSagaService).Assembly.GetName().Name)
  390. .LifestylePerWcfOperation());
  391.  
  392. container.Register(
  393. Classes.From(typeof(FinancialTransactionDelayedSagaService))
  394. .Pick()
  395. .WithService.FirstNonGenericCoreInterface(
  396. typeof(IFinancialTransactionDelayedSagaService).Assembly.GetName().Name)
  397. .LifestylePerWcfOperation());
  398.  
  399. container.Register(Component.For<IFinancialTransactionBusDelayedSagaService>()
  400. .ImplementedBy<FinancialTransactionBusDelayedSagaService>()
  401. .LifestylePerWcfOperation());
  402.  
  403. container.Register(
  404. Classes.From(typeof(FinancialLogger))
  405. .Pick()
  406. .WithService.FirstNonGenericCoreInterface(
  407. typeof(IFinancialLogger).Assembly.GetName().Name)
  408. .LifestylePerWcfOperation());
  409.  
  410. container.Register(
  411. Classes.From(typeof(RegistratorTradingEventSagaService))
  412. .Pick()
  413. .WithService.FirstNonGenericCoreInterface(
  414. typeof(IRegistratorTradingEventSagaService).Assembly.GetName().Name)
  415. .LifestylePerWcfOperation());
  416.  
  417. container.Register(
  418. Classes.From(typeof(BaseTrade.Procedure.AppServices.Common.AppServices.Common.Implementations.RegistratorTradingEventSagaService))
  419. .Pick()
  420. .WithService.FirstNonGenericCoreInterface(
  421. typeof(BaseTrade.Procedure.AppServices.Common.AppServices.Common.Interfaces.IRegistratorTradingEventSagaService).Assembly.GetName().Name)
  422. .LifestylePerWcfOperation());
  423.  
  424. container.Register(
  425. Classes
  426. .FromAssembly(typeof(TradeService).Assembly)
  427. .Pick().WithService.FirstInterface().LifestylePerWcfOperation());
  428.  
  429. container.Register(
  430. Classes.From(typeof(Public.MessageQueue.Client.MessageQueueService))
  431. .Pick()
  432. .WithService.FirstNonGenericCoreInterface(typeof(Public.MessageQueue.Client.IMessageQueueService).Assembly.GetName().Name)
  433. .LifestylePerWcfOperation());
  434.  
  435. container.Register(
  436. Classes.From(typeof(FinancialProcessingTradeLotApplicationService))
  437. .Pick()
  438. .WithService.FirstNonGenericCoreInterface(
  439. typeof(IFinancialProcessingTradeLotApplicationService).Assembly.GetName().Name)
  440. .LifestylePerWcfOperation());
  441.  
  442. container.Register(
  443. Classes.From(typeof(RtsFinanceApiClient))
  444. .Pick()
  445. .WithService.FirstNonGenericCoreInterface(
  446. typeof(IRtsFinanceApiClient).Assembly.GetName().Name)
  447. .LifestylePerWcfOperation());
  448.  
  449. container.Register(
  450. Classes.From(typeof(OptionsAvailabilityService))
  451. .Pick()
  452. .WithService.FirstNonGenericCoreInterface(
  453. typeof(IOptionsAvailabilityService).Assembly.GetName().Name)
  454. .LifestylePerWcfOperation());
  455.  
  456. container.Register(
  457. Component.For(typeof(ITradingServiceFacade)).ImplementedBy(typeof(TradingServiceFacade)).LifestylePerWcfOperation());
  458.  
  459. container.Register(
  460. Component.For(typeof(IProcedureServiceFacade)).ImplementedBy(typeof(ProcedureServiceFacade)).LifestylePerWcfOperation());
  461.  
  462. container.Register(Component.For(typeof(IVerificationTicketService))
  463. .ImplementedBy(typeof(VerificationTicketService))
  464. .LifestylePerWcfOperation());
  465.  
  466. container.Register(Component.For<IApplicationDataForSignBuilder<ProcedureApplicationDetailedDto>>()
  467. .ImplementedBy<BaseApplicationDataForSignBuilder<ProcedureApplicationDetailedDto>>().LifestylePerWcfOperation());
  468.  
  469. container.Register(Component.For<IApplicationDataForSignBuilder<OpenCompetitionApplicationDetailedDto>>()
  470. .ImplementedBy<OpenCompetitionApplicationDataForSignBuilder>().LifestylePerWcfOperation());
  471.  
  472. container.Register(Component.For<IApplicationDataForSignBuilder<Auction504FlApplicationDetailedDto>>()
  473. .ImplementedBy<Auction504FlApplicationDataForSignBuilder>().LifestylePerWcfOperation());
  474.  
  475. container.Register(Component.For<IProtocolPreferenceService>()
  476. .ImplementedBy<ProtocolPreferenceService>().LifestylePerWcfOperation());
  477.  
  478. container.Register(Component
  479. .For<INotifierFacade>()
  480. .ImplementedBy<NotifierFacade>()
  481. .LifestylePerWcfOperation());
  482.  
  483. container.Register(Component
  484. .For<ICustomerNotificationParametersBuilder>()
  485. .ImplementedBy<CustomerNotificationParametersBuilder>()
  486. .LifestylePerWcfOperation());
  487.  
  488. container.Register(Component
  489. .For<ISupplierNotificationParametersBuilder>()
  490. .ImplementedBy<SupplierNotificationParametersBuilder>()
  491. .LifestylePerWcfOperation());
  492.  
  493. container.Register(Component
  494. .For<ICustomerNotifierService>()
  495. .ImplementedBy<CustomerNotifierService>()
  496. .LifestylePerWcfOperation());
  497.  
  498. container.Register(Component
  499. .For<ISupplierNotifierService>()
  500. .ImplementedBy<SupplierNotifierService>()
  501. .LifestylePerWcfOperation());
  502.  
  503. container.Register(Component.For<ITabsFactory>()
  504. .ImplementedBy<TabsFactory>()
  505. .LifestylePerWcfOperation());
  506.  
  507. container.Register(Component.For<ITradeLotStateTabFilterService>()
  508. .ImplementedBy<TradeLotStateTabFilterService>()
  509. .LifestylePerWcfOperation());
  510.  
  511. #endregion
  512.  
  513. #region OpenCompetition
  514.  
  515. container.Register(Component.For<IApplicationDataService<OpenCompetitionApplicationDetailedDto>>()
  516. .ImplementedBy<OpenCompetitionApplicationDataService>().LifestylePerWcfOperation());
  517.  
  518. container.Register(Component.For<IProtocolDataForSigningBuilder<OpenCompetitionProtocol>>()
  519. .ImplementedBy<BaseProtocolDataForSigningBuilder<OpenCompetitionProtocol>>().LifestylePerWcfOperation());
  520. container.Register(Component.For<IOpenCompetitionValidationService>()
  521. .ImplementedBy<OpenCompetitionValidationService>().LifestylePerWcfOperation());
  522.  
  523. container.Register(Component.For<IApplicationBuildDirector<ProcedureApplicationDetailedDto>>()
  524. .ImplementedBy<ApplicationBuildDirector<ProcedureApplicationDetailedDto>>().LifestylePerWcfOperation());
  525. container.Register(Component.For<IApplicationBuildDirector<OpenCompetitionApplicationDetailedDto>>()
  526. .ImplementedBy<ApplicationBuildDirector<OpenCompetitionApplicationDetailedDto>>().LifestylePerWcfOperation());
  527. container.Register(Component.For<IApplicationBuildDirector<Auction504FlApplicationDetailedDto>>()
  528. .ImplementedBy<ApplicationBuildDirector<Auction504FlApplicationDetailedDto>>().LifestylePerWcfOperation());
  529.  
  530. container.Register(Component.For<IInitialApplicationBuilder<ProcedureApplicationDetailedDto>>()
  531. .ImplementedBy<InitialApplicationBuilder<ProcedureApplicationDetailedDto>>().LifestylePerWcfOperation());
  532. container.Register(Component.For<IExistingApplicationBuilder<ProcedureApplicationDetailedDto>>()
  533. .ImplementedBy<ExistingApplicationBuilder<ProcedureApplicationDetailedDto>> ().LifestylePerWcfOperation());
  534. container.Register(Component.For<IInitialApplicationBuilder<OpenCompetitionApplicationDetailedDto>>()
  535. .ImplementedBy<OpenCompetitionInitialApplicationBuilder>().LifestylePerWcfOperation());
  536. container.Register(Component.For<IExistingApplicationBuilder<OpenCompetitionApplicationDetailedDto>>()
  537. .ImplementedBy<OpenCompetitionExistingApplicationBuilder>().LifestylePerWcfOperation());
  538. container.Register(Component.For<IInitialApplicationBuilder<Auction504FlApplicationDetailedDto>>()
  539. .ImplementedBy<Auction504FlInitialApplicationBuilder>().LifestylePerWcfOperation());
  540. container.Register(Component.For<IExistingApplicationBuilder<Auction504FlApplicationDetailedDto>>()
  541. .ImplementedBy<Auction504FlExistingApplicationBuilder>().LifestylePerWcfOperation());
  542.  
  543.  
  544. container.Register(
  545. Classes
  546. .FromAssembly(typeof(ProcedureInfoService).Assembly)
  547. .Pick().WithService.FirstInterface()
  548. .Unless(type =>
  549. typeof(ProcedureStateBase).IsAssignableFrom(type)
  550. || typeof(ProcedureStateMachineBase).IsAssignableFrom(type)
  551. || typeof(ProcedureStateFactoryBase).IsAssignableFrom(type)
  552. || typeof(ExistingApplicationBuilder<>).IsAssignableFrom(type)
  553. || typeof(InitialApplicationBuilder<>).IsAssignableFrom(type)
  554. || typeof(OpenCompetitionExistingApplicationBuilder).IsAssignableFrom(type)
  555. || typeof(QuotationsRequest504FlExistingApplicationBuilder).IsAssignableFrom(type)
  556. || typeof(Auction504FlExistingApplicationBuilder).IsAssignableFrom(type)
  557. || typeof(DoubleStagedCompetitionExistingApplicationBuilder).IsAssignableFrom(type)
  558. || typeof(ProcedureApplicationStateBase).IsAssignableFrom(type)
  559. || typeof(ProcedureApplicationStateMachineBase).IsAssignableFrom(type)
  560. || typeof(OpenCompetitionProtocolBuilder<>).IsAssignableFrom(type)
  561. || typeof(QuotationsRequest504FlProtocolBuilder<>).IsAssignableFrom(type)
  562. || typeof(DoubleStagedCompetitionProtocolBuilder<>).IsAssignableFrom(type)
  563. || type.GetInterfaces().Any(i => i.IsGenericType && (i.GetGenericTypeDefinition() == typeof(IProcedureBuilder<,>)
  564. || i.GetGenericTypeDefinition() == typeof(IProcedureDetailBuildDirector<,,>)
  565. || i.GetGenericTypeDefinition() == typeof(IProtocolBuilder<,>)
  566. )))
  567. .LifestylePerWcfOperation());
  568.  
  569. container.Register(
  570. Classes
  571. .FromAssembly(typeof(ProcedureInfoService).Assembly)
  572. .BasedOn(typeof(ExistingApplicationBuilder<>))
  573. .WithService.DefaultInterfaces()
  574. .Configure(c => c.LifestylePerWcfOperation()));
  575.  
  576. container.Register(
  577. Classes
  578. .FromAssembly(typeof(ProcedureInfoService).Assembly)
  579. .BasedOn(typeof(InitialApplicationBuilder<>))
  580. .WithService.DefaultInterfaces()
  581. .Configure(c => c.LifestylePerWcfOperation()));
  582.  
  583. container.Register(
  584. Classes
  585. .FromAssembly(typeof(ProcedureInfoService).Assembly)
  586. .BasedOn<ProcedureStateMachineBase>()
  587. .WithServiceDefaultInterfaces()
  588. .Configure(c => c.LifestylePerWcfOperation()));
  589.  
  590. container.Register(
  591. Classes
  592. .FromAssembly(typeof(ProcedureInfoService).Assembly)
  593. .BasedOn<ProcedureStateFactoryBase>()
  594. .WithServiceDefaultInterfaces()
  595. .Configure(c => c.LifestylePerWcfOperation()));
  596.  
  597. container.Register(
  598. Classes
  599. .FromAssembly(typeof(ProcedureInfoService).Assembly)
  600. .BasedOn<ProcedureStateFactoryBase>()
  601. .WithServiceDefaultInterfaces()
  602. .Configure(c => c.LifestylePerWcfOperation()));
  603.  
  604. container.Register(
  605. Classes
  606. .FromAssembly(typeof(ProcedureInfoService).Assembly)
  607. .BasedOn<ProcedureApplicationStateMachineBase>()
  608. .WithServiceDefaultInterfaces()
  609. .Configure(c => c.LifestylePerWcfOperation()));
  610.  
  611. container.Register(
  612. Classes
  613. .FromAssembly(typeof(ProcedureInfoService).Assembly)
  614. .BasedOn<ProcedureStateBase>()
  615. .WithServiceDefaultInterfaces()
  616. .Configure(c => c.LifestylePerWcfOperation()));
  617.  
  618. container.Register(
  619. Classes
  620. .FromAssembly(typeof(ProcedureInfoService).Assembly)
  621. .BasedOn<ProcedureApplicationStateBase>()
  622. .WithServiceDefaultInterfaces()
  623. .Configure(c => c.LifestylePerWcfOperation()));
  624.  
  625. container.Register(
  626. Classes
  627. .FromAssembly(typeof(ProcedureInfoService).Assembly)
  628. .BasedOn(typeof(CustomerProcedureBuilder<>))
  629. .WithService.Base()
  630. .Configure(c => c.LifestylePerWcfOperation())
  631. );
  632.  
  633. container.Register(
  634. Classes
  635. .FromAssembly(typeof(ProcedureInfoService).Assembly)
  636. .BasedOn(typeof(SupplierProcedureBuilder<>))
  637. .WithService.Base()
  638. .Configure(c => c.LifestylePerWcfOperation())
  639. );
  640.  
  641. container.Register(
  642. Component
  643. .For(typeof(CustomerProcedureDetailBuildDirector<>))
  644. .ImplementedBy(typeof(CustomerProcedureDetailBuildDirector<>))
  645. .LifestylePerWcfOperation());
  646.  
  647. container.Register(
  648. Component
  649. .For(typeof(SupplierProcedureDetailBuildDirector<>))
  650. .ImplementedBy(typeof(SupplierProcedureDetailBuildDirector<>))
  651. .LifestylePerWcfOperation());
  652.  
  653. container.Register(Component.For<IEisDtoImportServiceFactory>()
  654. .ImplementedBy<EisDtoImportServiceFactory>().LifestylePerWcfOperation());
  655.  
  656. container.Register(Component.For<IEisDtoImportService<NotificationEOKDto>>()
  657. .ImplementedBy<OpenCompetitionImportService>().LifestylePerWcfOperation());
  658. container.Register(Component.For<IEisDtoImportService<NotificationEOKDDto>>()
  659. .ImplementedBy<DoubleStagedCompetitionImportService>().LifestylePerWcfOperation());
  660. container.Register(Component.For<IEisDtoImportService<NotificationEOKOUDto>>()
  661. .ImplementedBy<LimitedCompetitionImportService>().LifestylePerWcfOperation());
  662. container.Register(Component.For<IEisDtoImportService<NotificationEZKDto>>()
  663. .ImplementedBy<QuotationsRequest504FlImportService>().LifestylePerWcfOperation());
  664. container.Register(Component.For<IEisDtoImportService<NotificationEZPDto>>()
  665. .ImplementedBy<ProposalRequestImportService>().LifestylePerWcfOperation());
  666. container.Register(Component.For<IEisDtoImportService<NotificationCancelDto>>()
  667. .ImplementedBy<NotificationCancelImportService>().LifestylePerWcfOperation());
  668. container.Register(Component.For<IEisDtoImportService<NotificationCancelFailureDto>>()
  669. .ImplementedBy<NotificationCancelFailureImportService>().LifestylePerWcfOperation());
  670. container.Register(Component.For<IEisDtoImportService<Fz44Common.ClarificationDto>>()
  671. .ImplementedBy<ClarificationImportService>().LifestylePerWcfOperation());
  672. container.Register(Component.For<IEisDtoImportService<Messaging.NotificationEFDto>>()
  673. .ImplementedBy<AuctionImportService>().LifestylePerWcfOperation());
  674. container.Register(Component.For<IEisDtoImportService<Messaging.NotificationCancelDto>>()
  675. .ImplementedBy<AuctionNotificationCancelImportService>().LifestylePerWcfOperation());
  676. container.Register(Component.For<IEisDtoImportService<Messaging.NotificationCancelFailureDto>>()
  677. .ImplementedBy<AuctionNotificationCancelFailureImportService>().LifestylePerWcfOperation());
  678. container.Register(Component.For<IEisDtoImportService<Fz504Common.PurchaseProlongationOKDto>>()
  679. .ImplementedBy<ProlongationImportService<Fz504Common.PurchaseProlongationOKDto>>().LifestylePerWcfOperation());
  680. container.Register(Component.For<IEisDtoImportService<Fz504Common.PurchaseProlongationOKOUDto>>()
  681. .ImplementedBy<ProlongationImportService<Fz504Common.PurchaseProlongationOKOUDto>>().LifestylePerWcfOperation());
  682. container.Register(Component.For<IEisDtoImportService<Fz504Common.PurchaseProlongationOKDDto>>()
  683. .ImplementedBy<ProlongationImportService<Fz504Common.PurchaseProlongationOKDDto>>().LifestylePerWcfOperation());
  684. container.Register(Component.For<IEisDtoImportService<Fz504Common.PurchaseProlongationZKDto>>()
  685. .ImplementedBy<ProlongationImportService<Fz504Common.PurchaseProlongationZKDto>>().LifestylePerWcfOperation());
  686.  
  687. container.Register(Component.For<IProcedureMappingService<NotificationEOKDto>>()
  688. .ImplementedBy<OpenCompetitionMappingService>().LifestylePerWcfOperation());
  689. container.Register(Component.For<IProcedureMappingService<NotificationEOKDDto>>()
  690. .ImplementedBy<DoubleStagedCompetitionMappingService>().LifestylePerWcfOperation());
  691. container.Register(Component.For<IProcedureMappingService<NotificationEOKOUDto>>()
  692. .ImplementedBy<LimitedCompetitionMappingService>().LifestylePerWcfOperation());
  693. container.Register(Component.For<IProcedureMappingService<NotificationEZKDto>>()
  694. .ImplementedBy<QuotationsRequest504FlMappingService>().LifestylePerWcfOperation());
  695. container.Register(Component.For<IProcedureMappingService<NotificationEZPDto>>()
  696. .ImplementedBy<ProposalRequestMappingService>().LifestylePerWcfOperation());
  697. container.Register(Component.For<IClarificationMappingService>()
  698. .ImplementedBy<ClarificationMappingService>().LifestylePerWcfOperation());
  699.  
  700. container.Register(Component.For<IDtoToActionDataFactory<Fz504Common.PurchaseProlongationOKDto>>()
  701. .ImplementedBy<ProlongationOkDtoToActionDataFactory>().LifestylePerWcfOperation());
  702. container.Register(Component.For<IDtoToActionDataFactory<Fz504Common.PurchaseProlongationOKOUDto>>()
  703. .ImplementedBy<ProlongationOkOuDtoToActionDataFactory>().LifestylePerWcfOperation());
  704. container.Register(Component.For<IDtoToActionDataFactory<Fz504Common.PurchaseProlongationOKDDto>>()
  705. .ImplementedBy<ProlongationOkDDtoToActionDataFactory>().LifestylePerWcfOperation());
  706. container.Register(Component.For<IDtoToActionDataFactory<Fz504Common.PurchaseProlongationZKDto>>()
  707. .ImplementedBy<ProlongationZkDtoToActionDataFactory>().LifestylePerWcfOperation());
  708.  
  709. container.Register(Component.For<IProtocolDtoBuilderFactory>()
  710. .ImplementedBy<ProtocolDtoBuilderFactory>().LifestylePerWcfOperation());
  711.  
  712. container.Register(Component.For<IProtocolDtoBuilder<ProtocolEOK1Dto>>()
  713. .ImplementedBy<ProtocolEOK1DtoBuilder>().LifestylePerWcfOperation());
  714. container.Register(Component.For<IProtocolDtoBuilder<ProtocolEOK2Dto>>()
  715. .ImplementedBy<ProtocolEOK2DtoBuilder>().LifestylePerWcfOperation());
  716. container.Register(Component.For<IProtocolDtoBuilder<ProtocolEOK3Dto>>()
  717. .ImplementedBy<ProtocolEOK3DtoBuilder>().LifestylePerWcfOperation());
  718. container.Register(Component.For<IProtocolDtoBuilder<ProtocolEOKSingleAppDto>>()
  719. .ImplementedBy<ProtocolEOKSingleAppDtoBuilder>().LifestylePerWcfOperation());
  720. container.Register(Component.For<IProtocolDtoBuilder<ProtocolEOKSinglePartDto>>()
  721. .ImplementedBy<ProtocolEOKSinglePartDtoBuilder>().LifestylePerWcfOperation());
  722.  
  723. container.Register(Component.For<IProtocolDtoBuilder<ProtocolEOKOU1Dto>>()
  724. .ImplementedBy<ProtocolEOKOU1DtoBuilder>().LifestylePerWcfOperation());
  725. container.Register(Component.For<IProtocolDtoBuilder<ProtocolEOKOU2Dto>>()
  726. .ImplementedBy<ProtocolEOKOU2DtoBuilder>().LifestylePerWcfOperation());
  727. container.Register(Component.For<IProtocolDtoBuilder<ProtocolEOKOU3Dto>>()
  728. .ImplementedBy<ProtocolEOKOU3DtoBuilder>().LifestylePerWcfOperation());
  729. container.Register(Component.For<IProtocolDtoBuilder<ProtocolEOKOUSingleAppDto>>()
  730. .ImplementedBy<ProtocolEOKOUSingleAppDtoBuilder>().LifestylePerWcfOperation());
  731. container.Register(Component.For<IProtocolDtoBuilder<ProtocolEOKOUSinglePartDto>>()
  732. .ImplementedBy<ProtocolEOKOUSinglePartDtoBuilder>().LifestylePerWcfOperation());
  733.  
  734. container.Register(Component.For<IProtocolDtoBuilder<ProtocolEOKD1Dto>>()
  735. .ImplementedBy<ProtocolEOKD1DtoBuilder>().LifestylePerWcfOperation());
  736. container.Register(Component.For<IProtocolDtoBuilder<ProtocolEOKD2Dto>>()
  737. .ImplementedBy<ProtocolEOKD2DtoBuilder>().LifestylePerWcfOperation());
  738. container.Register(Component.For<IProtocolDtoBuilder<ProtocolEOKD3Dto>>()
  739. .ImplementedBy<ProtocolEOKD3DtoBuilder>().LifestylePerWcfOperation());
  740. container.Register(Component.For<IProtocolDtoBuilder<ProtocolEOKD4Dto>>()
  741. .ImplementedBy<ProtocolEOKD4DtoBuilder>().LifestylePerWcfOperation());
  742. container.Register(Component.For<IProtocolDtoBuilder<ProtocolEOKDSingleAppDto>>()
  743. .ImplementedBy<ProtocolEOKDSingleAppDtoBuilder>().LifestylePerWcfOperation());
  744. container.Register(Component.For<IProtocolDtoBuilder<ProtocolEOKDSinglePartDto>>()
  745. .ImplementedBy<ProtocolEOKDSinglePartDtoBuilder>().LifestylePerWcfOperation());
  746.  
  747. container.Register(Component.For<IProtocolDtoBuilder<ProtocolEZK1Dto>>()
  748. .ImplementedBy<ProtocolEZK1DtoBuilder>().LifestylePerWcfOperation());
  749. container.Register(Component.For<IProtocolDtoBuilder<ProtocolEZK2Dto>>()
  750. .ImplementedBy<ProtocolEZK2DtoBuilder>().LifestylePerWcfOperation());
  751. container.Register(Component.For<IProtocolDtoBuilder<ProtocolEZP1Dto>>()
  752. .ImplementedBy<ProtocolEZP1DtoBuilder>().LifestylePerWcfOperation());
  753. container.Register(Component.For<IProtocolDtoBuilder<ProtocolEZP1ExtractDto>>()
  754. .ImplementedBy<ProtocolEZP1ExtractDtoBuilder>().LifestylePerWcfOperation());
  755. container.Register(Component.For<IProtocolDtoBuilder<ProtocolEZP2Dto>>()
  756. .ImplementedBy<ProtocolEZP2DtoBuilder>().LifestylePerWcfOperation());
  757.  
  758. container.Register(Component.For<ILogger>().Instance(LoggingManager.GetLogger("Tender")).LifestyleSingleton());
  759.  
  760. container.Kernel.Resolver.AddSubResolver(new Log4NetDependencyResolver());
  761.  
  762. container.Register(Component.For<IProtocolBuilder<OpenCompetitionProtocol, ProtocolViewData<OpenCompetitionProtocol>>>()
  763. .ImplementedBy<OpenCompetitionProtocolBuilder<ProtocolViewData<OpenCompetitionProtocol>>>().LifestylePerWcfOperation());
  764. container.Register(Component.For<IProtocolBuilder<OpenCompetitionProtocol, ProtocolPrintViewData<OpenCompetitionProtocol>>>()
  765. .ImplementedBy<OpenCompetitionProtocolBuilder<ProtocolPrintViewData<OpenCompetitionProtocol>>>().LifestylePerWcfOperation());
  766. container.Register(Component.For<IFirstPartsProtocolBuilder<OpenCompetitionProtocol, ProtocolViewData<OpenCompetitionProtocol>>>()
  767. .ImplementedBy<OpenCompetitionFirstPartsProtocolBuilder<ProtocolViewData<OpenCompetitionProtocol>>>().LifestylePerWcfOperation());
  768. container.Register(Component.For<IFirstPartsProtocolBuilder<OpenCompetitionProtocol, ProtocolPrintViewData<OpenCompetitionProtocol>>>()
  769. .ImplementedBy<OpenCompetitionFirstPartsProtocolBuilder<ProtocolPrintViewData<OpenCompetitionProtocol>>>().LifestylePerWcfOperation());
  770. container.Register(Component.For<ISecondPartsProtocolBuilder<OpenCompetitionProtocol, ProtocolViewData<OpenCompetitionProtocol>>>()
  771. .ImplementedBy<OpenCompetitionSecondPartsProtocolBuilder<ProtocolViewData<OpenCompetitionProtocol>>>().LifestylePerWcfOperation());
  772. container.Register(Component.For<ISecondPartsProtocolBuilder<OpenCompetitionProtocol, ProtocolPrintViewData<OpenCompetitionProtocol>>>()
  773. .ImplementedBy<OpenCompetitionSecondPartsProtocolBuilder<ProtocolPrintViewData<OpenCompetitionProtocol>>>().LifestylePerWcfOperation());
  774. container.Register(Component.For<ISingleApplicationProtocolBuilder<OpenCompetitionProtocol, ProtocolViewData<OpenCompetitionProtocol>>>()
  775. .ImplementedBy<OpenCompetitionSingleApplicationProtocolBuilder<ProtocolViewData<OpenCompetitionProtocol>>>().LifestylePerWcfOperation());
  776. container.Register(Component.For<ISingleApplicationProtocolBuilder<OpenCompetitionProtocol, ProtocolPrintViewData<OpenCompetitionProtocol>>> ()
  777. .ImplementedBy<OpenCompetitionSingleApplicationProtocolBuilder< ProtocolPrintViewData<OpenCompetitionProtocol>>> ().LifestylePerWcfOperation());
  778. container.Register(Component.For<IResultProtocolBuilder<OpenCompetitionProtocol, ProtocolViewData<OpenCompetitionProtocol>>>()
  779. .ImplementedBy<OpenCompetitionResultProtocolBuilder<ProtocolViewData<OpenCompetitionProtocol>>>().LifestylePerWcfOperation());
  780. container.Register(Component.For<IResultProtocolBuilder<OpenCompetitionProtocol, ProtocolPrintViewData<OpenCompetitionProtocol>>> ()
  781. .ImplementedBy<OpenCompetitionResultProtocolBuilder<ProtocolPrintViewData<OpenCompetitionProtocol>>> ().LifestylePerWcfOperation());
  782. container.Register(Component.For<IZeroApplicationsProtocolBuilder<OpenCompetitionProtocol, ProtocolViewData<OpenCompetitionProtocol>>>()
  783. .ImplementedBy<OpenCompetitionZeroApplicationsProtocolBuilder<ProtocolViewData<OpenCompetitionProtocol>>>().LifestylePerWcfOperation());
  784. container.Register(Component.For<IZeroApplicationsProtocolBuilder<OpenCompetitionProtocol, ProtocolPrintViewData<OpenCompetitionProtocol>>>()
  785. .ImplementedBy<OpenCompetitionZeroApplicationsProtocolBuilder<ProtocolPrintViewData<OpenCompetitionProtocol>>>().LifestylePerWcfOperation());
  786.  
  787. container.Register(Component.For<IFirstPartsProtocolPrintFormBuilder<OpenCompetitionProtocol>>()
  788. .ImplementedBy<OpenCompetitionFirstPartsProtocolPrintFormBuilder>().LifestylePerWcfOperation());
  789. container.Register(Component.For<ISecondPartsProtocolPrintFormBuilder<OpenCompetitionProtocol>>()
  790. .ImplementedBy<OpenCompetitionSecondPartsProtocolPrintFormBuilder>().LifestylePerWcfOperation());
  791. container.Register(Component.For<ISingleApplicationProtocolPrintFormBuilder<OpenCompetitionProtocol>>()
  792. .ImplementedBy<OpenCompetitionSingleApplicationProtocolPrintFormBuilder>().LifestylePerWcfOperation());
  793. container.Register(Component.For<IResultProtocolPrintFormBuilder<OpenCompetitionProtocol>>()
  794. .ImplementedBy<OpenCompetitionResultProtocolPrintFormBuilder>().LifestylePerWcfOperation());
  795. container.Register(Component.For<ITradingProtocolPrintFormBuilder<OpenCompetitionProtocol>>()
  796. .ImplementedBy<NotImpementedProtocolPrintFormBuilder<OpenCompetitionProtocol>>().LifestylePerWcfOperation());
  797.  
  798. container.Register(Component.For<IFirstStageProtocolPrintFormBuilder<OpenCompetitionProtocol>>()
  799. .IsDefault()
  800. .Named(nameof(NotImpementedProtocolPrintFormBuilder<OpenCompetitionProtocol>))
  801. .ImplementedBy<NotImpementedProtocolPrintFormBuilder<OpenCompetitionProtocol>>()
  802. .LifestylePerWcfOperation());
  803.  
  804. container.Register(Component.For<IZeroApplicationsProtocolPrintFormBuilder<OpenCompetitionProtocol>>()
  805. .ImplementedBy<OpenCompetitionZeroApplicationsProtocolPrintFormBuilder>().LifestylePerWcfOperation());
  806.  
  807. container.Register(Component.For<IFirstPartsProtocolFactory<OpenCompetitionProtocol>>()
  808. .ImplementedBy<OpenCompetitionFirstPartsProtocolFactory>().LifestylePerWcfOperation());
  809. container.Register(Component.For<ISecondPartsProtocolFactory<OpenCompetitionProtocol>>()
  810. .ImplementedBy<OpenCompetitionSecondPartsProtocolFactory>().LifestylePerWcfOperation());
  811. container.Register(Component.For<ISingleApplicationProtocolFactory<OpenCompetitionProtocol>>()
  812. .ImplementedBy<OpenCompetitionSingleApplicationProtocolFactory>().LifestylePerWcfOperation());
  813. container.Register(Component.For<IResultProtocolFactory<OpenCompetitionProtocol>>()
  814. .ImplementedBy<OpenCompetitionResultProtocolFactory>().LifestylePerWcfOperation());
  815. container.Register(Component.For<IZeroApplicationsProtocolFactory<OpenCompetitionProtocol>>()
  816. .IsDefault()
  817. .Named(CreateTypeNameWithGenericForRegister(typeof(IZeroApplicationsProtocolFactory<OpenCompetitionProtocol>)))
  818. .ImplementedBy<OpenCompetitionZeroApplicationsProtocolFactory>().LifestylePerWcfOperation());
  819. container.Register(Component.For<IFirstStageProtocolFactory<OpenCompetitionProtocol>>()
  820. .IsDefault()
  821. .Named(CreateTypeNameWithGenericForRegister(typeof(IFirstStageProtocolFactory<OpenCompetitionProtocol>)))
  822. .ImplementedBy<NotImpementedFactory<OpenCompetitionProtocol>>().LifestylePerWcfOperation());
  823.  
  824. container.Register(Component.For<IProtocolDataService<OpenCompetitionProtocol>>()
  825. .ImplementedBy<OpenCompetitionProtocolDataService>().LifestylePerWcfOperation());
  826.  
  827. container
  828. .Register(Component
  829. .For<IExistingApplicationBuilder<OpenCompetitionApplicationDetailedDto>>()
  830. .IsDefault()
  831. .Named(nameof(OpenCompetitionExistingApplicationBuilder))
  832. .ImplementedBy<OpenCompetitionExistingApplicationBuilder>()
  833. .LifestylePerWcfOperation());
  834.  
  835. container.Register(Component.For<IProtocolValidationService<OpenCompetitionProtocol>>()
  836. .IsDefault()
  837. .Named(nameof(OpenCompetitionValidationService))
  838. .ImplementedBy<OpenCompetitionValidationService>().LifestylePerWcfOperation());
  839.  
  840. container.Register(
  841. Component
  842. .For<IObsoleteProtocolConverter>()
  843. .ImplementedBy<ObsoleteProtocolConverter>()
  844. .LifestylePerWcfOperation());
  845.  
  846. container.Register(Component.For<IProcedureProtocolPublishService<OpenCompetitionProtocol>>()
  847. .IsDefault()
  848. .Named(nameof(OpenCompetitionProtocolPublishService))
  849. .ImplementedBy<OpenCompetitionProtocolPublishService>().LifestylePerWcfOperation());
  850.  
  851. container.Register(Component.For<IProcedureProtocolsService>()
  852. .IsDefault()
  853. .Named(nameof(ProcedureProtocolsService))
  854. .ImplementedBy<ProcedureProtocolsService>().LifestylePerWcfOperation());
  855.  
  856. container.Register(Component.For<IOpenCompetitionProtocolHelper>()
  857. .IsDefault()
  858. .Named(nameof(OpenCompetitionProtocolHelper))
  859. .ImplementedBy<OpenCompetitionProtocolHelper>().LifestylePerWcfOperation());
  860.  
  861. container.Register(Component.For<IProcedureProtocolShortcutsBuilder<CustomerOpenCompetitionDetailedDto>>()
  862. .IsDefault()
  863. .Named(nameof(CustomerOpenCompetitionProtocolShortcutsBuilder))
  864. .ImplementedBy<CustomerOpenCompetitionProtocolShortcutsBuilder>().LifestylePerWcfOperation());
  865.  
  866. container.Register(Component.For<IBaseProtocolService<OpenCompetitionProtocol>>()
  867. .IsDefault()
  868. .Named(nameof(OpenCompetitionProtocolService))
  869. .ImplementedBy<OpenCompetitionProtocolService>().LifestylePerWcfOperation());
  870.  
  871. container.Register(Component.For<IProtocolTypeDirector<OpenCompetitionProtocol>>()
  872. .IsDefault()
  873. .Named(nameof(OpenCompetitionProtocolTypeDirector))
  874. .ImplementedBy<OpenCompetitionProtocolTypeDirector>().LifestylePerWcfOperation());
  875.  
  876. container.Register(Component.For<ICustomerProcedureService<CustomerOpenCompetitionDetailedDto>>()
  877. .IsDefault()
  878. .Named(nameof(CustomerOpenCompetitionService))
  879. .ImplementedBy<CustomerOpenCompetitionService>().LifestylePerWcfOperation());
  880.  
  881. container.Register(Component.For<ISupplierProcedureService<SupplierOpenCompetitionDetailedDto>>()
  882. .IsDefault()
  883. .Named(nameof(SupplierOpenCompetitionService))
  884. .ImplementedBy<SupplierOpenCompetitionService>().LifestylePerWcfOperation());
  885.  
  886. container.Register(Component.For<CustomerProcedureBuilder<CustomerOpenCompetitionDetailedDto>>()
  887. .IsDefault()
  888. .Named(nameof(CustomerOpenCompetitionBuilder))
  889. .ImplementedBy<CustomerOpenCompetitionBuilder>().LifestylePerWcfOperation());
  890.  
  891. container.Register(Component.For<SupplierProcedureBuilder<SupplierOpenCompetitionDetailedDto>>()
  892. .IsDefault()
  893. .Named(nameof(SupplierOpenCompetitionBuilder))
  894. .ImplementedBy<SupplierOpenCompetitionBuilder>().LifestylePerWcfOperation());
  895.  
  896. container.Register(Component.For<IOpenCompetitionStateMachine>()
  897. .IsDefault()
  898. .Named(nameof(OpenCompetitionStateMachine))
  899. .ImplementedBy<OpenCompetitionStateMachine>().LifestylePerWcfOperation());
  900.  
  901. container.Register(Component.For<IOpenCompetitionStateFactory>()
  902. .IsDefault()
  903. .Named(nameof(OpenCompetitionStateFactory))
  904. .ImplementedBy<OpenCompetitionStateFactory>().LifestylePerWcfOperation());
  905.  
  906. container.Register(Component.For<OpenCompetitionPublishedState>()
  907. .ImplementedBy<OpenCompetitionPublishedState>().LifestylePerWcfOperation());
  908.  
  909. container.Register(Component.For<IOpenCompetitionActionExecutor<WithdrawAction>>()
  910. .ImplementedBy<OpenCompetitionWithdrawActionExecutor>().LifestylePerWcfOperation());
  911. container.Register(Component.For<IOpenCompetitionActionExecutor<RestoreWithdrawnAction>>()
  912. .ImplementedBy<OpenCompetitionRestoreWithdrawnActionExecutor>().LifestylePerWcfOperation());
  913. container.Register(Component.For<IOpenCompetitionActionExecutor<ModifyAction>>()
  914. .ImplementedBy<OpenCompetitionModifyActionExecutor>().LifestylePerWcfOperation());
  915. container.Register(Component.For<IOpenCompetitionActionExecutor<ProlongAction>>()
  916. .ImplementedBy<OpenCompetitionProlongActionExecutor>().LifestylePerWcfOperation());
  917. container.Register(
  918. Classes
  919. .FromAssembly(typeof(OpenCompetitionPublishedState).Assembly)
  920. .BasedOn<ProcedureStateBase>()
  921. .WithServiceDefaultInterfaces()
  922. .Configure(c => c.LifestylePerWcfOperation()));
  923.  
  924. container.Register(Component.For<IOpenCompetitionApplicationStateMachine>()
  925. .ImplementedBy<OpenCompetitionApplicationStateMachine>().LifestylePerWcfOperation());
  926.  
  927. container.Register(Component.For<IOpenCompetitionApplicationStateFactory>()
  928. .ImplementedBy<OpenCompetitionApplicationStateFactory>().LifestylePerWcfOperation());
  929.  
  930. container.Register(Component.For<IApplicationPrintFormService<OpenCompetitionApplicationDetailedDto>>()
  931. .ImplementedBy<OpenCompetitionApplicationPrintFormService>().LifestylePerWcfOperation());
  932.  
  933. container.Register(Component.For<ITradeLotApplicationBuilder<OpenCompetitionApplicationDetailedDto>>()
  934. .ImplementedBy<OpenCompetitionTradeLotApplicationBuilder>()
  935. .IsDefault()
  936. .Named(nameof(OpenCompetitionTradeLotApplicationBuilder))
  937. .LifestylePerWcfOperation());
  938.  
  939. container.Register(Component.For<IApplicationPrintFormService<OpenCompetitionApplicationDetailedDto>>()
  940. .ImplementedBy<OpenCompetitionApplicationPrintFormService>()
  941. .IsDefault()
  942. .Named(nameof(OpenCompetitionApplicationPrintFormService))
  943. .LifestylePerWcfOperation());
  944.  
  945. container.Register(Component.For<IApplicationPrintFormBuilderFactory<OpenCompetitionApplicationDetailedDto>>()
  946. .ImplementedBy<OpenCompetitionApplicationPrintFormBuilderFactory>().LifestylePerWcfOperation());
  947.  
  948. container.Register(Component.For<IApplicationPrintFormService<ProcedureApplicationDetailedDto>>()
  949. .ImplementedBy<NotImplementedApplicationPrintFormService<ProcedureApplicationDetailedDto>>()
  950. .IsDefault()
  951. .Named(nameof(NotImplementedApplicationPrintFormService<ProcedureApplicationDetailedDto>))
  952. .LifestylePerWcfOperation());
  953.  
  954. container
  955. .Register(Component.For<
  956. IApplicationPrintFormBuilder<
  957. OpenCompetitionApplicationDetailedDto,
  958. OpenCompetitionApplicationPrintFormFirstPart,
  959. OpenCompetitionApplicationFirstPartPrintFormReportData>>()
  960. .ImplementedBy<OpenCompetitionApplicationFirstPartPrintFormBuilder>()
  961. .LifestylePerWcfOperation());
  962.  
  963. container
  964. .Register(Component.For<
  965. IApplicationPrintFormBuilder<
  966. OpenCompetitionApplicationDetailedDto,
  967. OpenCompetitionApplicationPrintFormSecondPart,
  968. OpenCompetitionApplicationSPPrintFormReportData>>()
  969. .ImplementedBy<OpenCompetitionApplicationSPPrintFormBuilder>()
  970. .LifestylePerWcfOperation());
  971.  
  972. container
  973. .Register(Component.For<
  974. IApplicationPrintFormBuilder<
  975. OpenCompetitionApplicationDetailedDto,
  976. OpenCompetitionApplicationPrintFormPurchaserInfo,
  977. OpenCompetitionApplicationPurchaserPrintFormReportData>>()
  978. .ImplementedBy<OpenCompetitionApplicationPurchaserPrintFormBuilder>()
  979. .LifestylePerWcfOperation());
  980.  
  981. container.Register(
  982. Component
  983. .For<IApplicationPublishValidationService<OpenCompetitionApplicationDetailedDto>>()
  984. .ImplementedBy<OpenCompetitionApplicationPublishValidationService>()
  985. .IsDefault()
  986. .Named(nameof(OpenCompetitionApplicationPublishValidationService))
  987. .LifestylePerWcfOperation());
  988.  
  989. #endregion
  990.  
  991. #region Auction504Fl
  992.  
  993. container.Register(
  994. Component
  995. .For<Auction504FlApplicationFormationState>()
  996. .ImplementedBy<Auction504FlApplicationFormationState>()
  997. .LifestylePerWcfOperation());
  998.  
  999. container.Register(
  1000. Component
  1001. .For<Auction504FlApplicationNotCreatedState>()
  1002. .ImplementedBy<Auction504FlApplicationNotCreatedState>()
  1003. .LifestylePerWcfOperation());
  1004.  
  1005. container.Register(
  1006. Component
  1007. .For<Auction504FlApplicationDealNotSignedState>()
  1008. .ImplementedBy<Auction504FlApplicationDealNotSignedState>()
  1009. .LifestylePerWcfOperation());
  1010.  
  1011.  
  1012. container.Register(
  1013. Component
  1014. .For<Auction504FlApplicationDealSignedState>()
  1015. .ImplementedBy<Auction504FlApplicationDealSignedState>()
  1016. .LifestylePerWcfOperation());
  1017.  
  1018. container.Register(
  1019. Component
  1020. .For<Auction504FlApplicationDealTerminatedState>()
  1021. .ImplementedBy<Auction504FlApplicationDealTerminatedState>()
  1022. .LifestylePerWcfOperation());
  1023.  
  1024. container.Register(
  1025. Component
  1026. .For<Auction504FlApplicationWithdrawnState>()
  1027. .ImplementedBy<Auction504FlApplicationWithdrawnState>()
  1028. .LifestylePerWcfOperation());
  1029.  
  1030. container.Register(
  1031. Component
  1032. .For<Auction504FlApplicationWithdrawnAfterLostState>()
  1033. .ImplementedBy<Auction504FlApplicationWithdrawnAfterLostState>()
  1034. .LifestylePerWcfOperation());
  1035.  
  1036. container.Register(
  1037. Component
  1038. .For<Auction504FlApplicationConsiderationState>()
  1039. .ImplementedBy<Auction504FlApplicationConsiderationState>()
  1040. .LifestylePerWcfOperation());
  1041.  
  1042. container.Register(
  1043. Component
  1044. .For<Auction504FlApplicationCompletedState>()
  1045. .ImplementedBy<Auction504FlApplicationCompletedState>()
  1046. .LifestylePerWcfOperation());
  1047.  
  1048. container.Register(
  1049. Component
  1050. .For<Auction504FlApplicationAcceptedByFirstPartState>()
  1051. .ImplementedBy<Auction504FlApplicationAcceptedByFirstPartState>()
  1052. .LifestylePerWcfOperation());
  1053.  
  1054. container.Register(
  1055. Component
  1056. .For<Auction504FlApplicationAcceptedBySecondPartState>()
  1057. .ImplementedBy<Auction504FlApplicationAcceptedBySecondPartState>()
  1058. .LifestylePerWcfOperation());
  1059.  
  1060. container.Register(
  1061. Component
  1062. .For<Auction504FlApplicationApprovedState>()
  1063. .ImplementedBy<Auction504FlApplicationApprovedState>()
  1064. .LifestylePerWcfOperation());
  1065.  
  1066. container.Register(
  1067. Component
  1068. .For<Auction504FlApplicationRejectedState>()
  1069. .ImplementedBy<Auction504FlApplicationRejectedState>()
  1070. .LifestylePerWcfOperation());
  1071.  
  1072. container
  1073. .Register(Component
  1074. .For<IExistingApplicationBuilder<Auction504FlApplicationDetailedDto>>()
  1075. .IsDefault()
  1076. .Named(nameof(Auction504FlExistingApplicationBuilder))
  1077. .ImplementedBy<Auction504FlExistingApplicationBuilder>()
  1078. .LifestylePerWcfOperation());
  1079.  
  1080. container.Register(Component.For<IAuction504FlProtocolHelper>()
  1081. .IsDefault()
  1082. .Named(nameof(Auction504FlProtocolHelper))
  1083. .ImplementedBy<Auction504FlProtocolHelper>().LifestylePerWcfOperation());
  1084.  
  1085. container.Register(Component.For<IProcedureProtocolShortcutsBuilder<CustomerAuction504FlDetailedDto>>()
  1086. .IsDefault()
  1087. .Named(nameof(CustomerAuction504FlProtocolShortcutsBuilder))
  1088. .ImplementedBy<CustomerAuction504FlProtocolShortcutsBuilder>().LifestylePerWcfOperation());
  1089.  
  1090. container.Register(Component.For<IBaseProtocolService<Auction504FlProtocol>>()
  1091. .IsDefault()
  1092. .Named(nameof(Auction504FlProtocolService))
  1093. .ImplementedBy<Auction504FlProtocolService>().LifestylePerWcfOperation());
  1094.  
  1095. container.Register(Component.For<IProtocolTypeDirector<Auction504FlProtocol>>()
  1096. .IsDefault()
  1097. .Named(nameof(Auction504FlProtocolTypeDirector))
  1098. .ImplementedBy<Auction504FlProtocolTypeDirector>().LifestylePerWcfOperation());
  1099.  
  1100. container.Register(Component.For<IProtocolBuilder<Auction504FlProtocol, ProtocolViewData<Auction504FlProtocol>>>()
  1101. .ImplementedBy<Auction504FlProtocolBuilder<ProtocolViewData<Auction504FlProtocol>>>().LifestylePerWcfOperation());
  1102. container.Register(Component.For<IProtocolBuilder<Auction504FlProtocol, ProtocolPrintViewData<Auction504FlProtocol>>>()
  1103. .ImplementedBy<Auction504FlProtocolBuilder<ProtocolPrintViewData<Auction504FlProtocol>>>().LifestylePerWcfOperation());
  1104. container.Register(Component.For<IFirstPartsProtocolBuilder<Auction504FlProtocol, ProtocolViewData<Auction504FlProtocol>>>()
  1105. .ImplementedBy<Auction504FlFirstPartsProtocolBuilder<ProtocolViewData<Auction504FlProtocol>>>().LifestylePerWcfOperation());
  1106. container.Register(Component.For<IFirstPartsProtocolBuilder<Auction504FlProtocol, ProtocolPrintViewData<Auction504FlProtocol>>>()
  1107. .ImplementedBy<Auction504FlFirstPartsProtocolBuilder<ProtocolPrintViewData<Auction504FlProtocol>>>().LifestylePerWcfOperation());
  1108. container.Register(Component.For<ISecondPartsProtocolBuilder<Auction504FlProtocol, ProtocolViewData<Auction504FlProtocol>>>()
  1109. .ImplementedBy<Auction504FlSecondPartsProtocolBuilder<ProtocolViewData<Auction504FlProtocol>>>().LifestylePerWcfOperation());
  1110. container.Register(Component.For<ISecondPartsProtocolBuilder<Auction504FlProtocol, ProtocolPrintViewData<Auction504FlProtocol>>>()
  1111. .ImplementedBy<Auction504FlSecondPartsProtocolBuilder<ProtocolPrintViewData<Auction504FlProtocol>>>().LifestylePerWcfOperation());
  1112. container.Register(Component.For<ISingleApplicationProtocolBuilder<Auction504FlProtocol, ProtocolViewData<Auction504FlProtocol>>>()
  1113. .ImplementedBy<Auction504FlSingleApplicationProtocolBuilder<ProtocolViewData<Auction504FlProtocol>>>().LifestylePerWcfOperation());
  1114. container.Register(Component.For<ISingleApplicationProtocolBuilder<Auction504FlProtocol, ProtocolPrintViewData<Auction504FlProtocol>>>()
  1115. .ImplementedBy<Auction504FlSingleApplicationProtocolBuilder<ProtocolPrintViewData<Auction504FlProtocol>>>().LifestylePerWcfOperation());
  1116. container.Register(Component.For<IZeroApplicationsProtocolBuilder<Auction504FlProtocol, ProtocolViewData<Auction504FlProtocol>>>()
  1117. .ImplementedBy<Auction504FlZeroApplicationsProtocolBuilder<ProtocolViewData<Auction504FlProtocol>>>().LifestylePerWcfOperation());
  1118. container.Register(Component.For<IZeroApplicationsProtocolBuilder<Auction504FlProtocol, ProtocolPrintViewData<Auction504FlProtocol>>>()
  1119. .ImplementedBy<Auction504FlZeroApplicationsProtocolBuilder<ProtocolPrintViewData<Auction504FlProtocol>>>().LifestylePerWcfOperation());
  1120.  
  1121. container.Register(Component.For<IFirstPartsProtocolPrintFormBuilder<Auction504FlProtocol>>()
  1122. .ImplementedBy<Auction504FlFirstPartsProtocolPrintFormBuilder>().LifestylePerWcfOperation());
  1123. container.Register(Component.For<ISecondPartsProtocolPrintFormBuilder<Auction504FlProtocol>>()
  1124. .ImplementedBy<Auction504FlSecondPartsProtocolPrintFormBuilder>().LifestylePerWcfOperation());
  1125. container.Register(Component.For<ISingleApplicationProtocolPrintFormBuilder<Auction504FlProtocol>>()
  1126. .ImplementedBy<Auction504FlSingleApplicationProtocolPrintFormBuilder>().LifestylePerWcfOperation());
  1127. container.Register(Component.For<IZeroApplicationsProtocolPrintFormBuilder<Auction504FlProtocol>>()
  1128. .ImplementedBy<Auction504FlZeroApplicationsProtocolPrintFormBuilder>().LifestylePerWcfOperation());
  1129. container.Register(Component.For<ITradingProtocolPrintFormBuilder<Auction504FlProtocol>>()
  1130. .ImplementedBy<Auction504FlTradingProtocolPrintFormBuilder>().LifestylePerWcfOperation());
  1131.  
  1132. container.Register(Component.For<IFirstPartsProtocolFactory<Auction504FlProtocol>>()
  1133. .ImplementedBy<Auction504FlFirstPartsProtocolFactory>().LifestylePerWcfOperation());
  1134. container.Register(Component.For<ISecondPartsProtocolFactory<Auction504FlProtocol>>()
  1135. .ImplementedBy<Auction504FlSecondPartsProtocolFactory>().LifestylePerWcfOperation());
  1136. container.Register(Component.For<ISingleApplicationProtocolFactory<Auction504FlProtocol>>()
  1137. .ImplementedBy<Auction504FlSingleApplicationProtocolFactory>().LifestylePerWcfOperation());
  1138. container.Register(Component.For<IZeroApplicationsProtocolFactory<Auction504FlProtocol>>()
  1139. .ImplementedBy<Auction504FlZeroApplicationsProtocolFactory>().LifestylePerWcfOperation());
  1140.  
  1141. //TODO[GD]: неиспользуемые билдеры и фабрики для открытого конкурса(нет таких типов протоколов). Зарегестрировать правильно
  1142. container.Register(Component.For<IResultProtocolFactory<Auction504FlProtocol>>()
  1143. .ImplementedBy<NotImpementedFactory<Auction504FlProtocol>>().LifestylePerWcfOperation());
  1144. container.Register(Component.For<IResultProtocolPrintFormBuilder<Auction504FlProtocol>>()
  1145. .ImplementedBy<Auction504FlResultProtocolPrintFormBuilder>().LifestylePerWcfOperation());
  1146. container.Register(Component.For<IFirstStageProtocolPrintFormBuilder<Auction504FlProtocol>>()
  1147. .ImplementedBy<NotImpementedProtocolPrintFormBuilder<Auction504FlProtocol>>().LifestylePerWcfOperation());
  1148. container.Register(Component.For<IFirstStageProtocolFactory<Auction504FlProtocol>>()
  1149. .IsDefault()
  1150. .Named(CreateTypeNameWithGenericForRegister(typeof(IFirstStageProtocolFactory<Auction504FlProtocol>)))
  1151. .ImplementedBy<NotImpementedFactory<Auction504FlProtocol>>().LifestylePerWcfOperation());
  1152.  
  1153. container.Register(Component.For<IProtocolValidationService<Auction504FlProtocol>>()
  1154. .IsDefault()
  1155. .Named(nameof(Auction504FlProtocolValidationService))
  1156. .ImplementedBy<Auction504FlProtocolValidationService>().LifestylePerWcfOperation());
  1157.  
  1158. container.Register(Component.For<ICustomerProcedureService<CustomerAuction504FlDetailedDto>>()
  1159. .IsDefault()
  1160. .Named(nameof(CustomerAuction504FlService))
  1161. .ImplementedBy<CustomerAuction504FlService>().LifestylePerWcfOperation());
  1162.  
  1163. container.Register(Component.For<ISupplierProcedureService<SupplierAuction504FlDetailedDto>>()
  1164. .IsDefault()
  1165. .Named(nameof(SupplierAuction504FlService))
  1166. .ImplementedBy<SupplierAuction504FlService>().LifestylePerWcfOperation());
  1167.  
  1168. container.Register(Component.For<CustomerProcedureBuilder<CustomerAuction504FlDetailedDto>>()
  1169. .IsDefault()
  1170. .Named(nameof(CustomerAuction504FlBuilder))
  1171. .ImplementedBy<CustomerAuction504FlBuilder>().LifestylePerWcfOperation());
  1172.  
  1173. container.Register(Component.For<SupplierProcedureBuilder<SupplierAuction504FlDetailedDto>>()
  1174. .IsDefault()
  1175. .Named(nameof(SupplierAuction504FlBuilder))
  1176. .ImplementedBy<SupplierAuction504FlBuilder>().LifestylePerWcfOperation());
  1177.  
  1178. container.Register(Component.For<IAuction504FlStateMachine>()
  1179. .ImplementedBy<Auction504FlStateMachine>().LifestylePerWcfOperation());
  1180.  
  1181. container.Register(Component.For<IAuction504FlStateFactory>()
  1182. .ImplementedBy<Auction504FlStateFactory>().LifestylePerWcfOperation());
  1183.  
  1184. container.Register(Component.For<IAuction504FlActionExecutor<WithdrawAction>>()
  1185. .ImplementedBy<Auction504FlWithdrawActionExecutor>().LifestylePerWcfOperation());
  1186. container.Register(Component.For<IAuction504FlActionExecutor<RestoreWithdrawnAction>>()
  1187. .ImplementedBy<Auction504FlRestoreWithdrawnActionExecutor>().LifestylePerWcfOperation());
  1188. container.Register(Component.For<IAuction504FlActionExecutor<ModifyAction>>()
  1189. .ImplementedBy<Auction504FlModifyActionExecutor>().LifestylePerWcfOperation());
  1190. container.Register(Component.For<IAuction504FlActionExecutor<AuctionEndAction>>()
  1191. .ImplementedBy<Auction504FlAuctionEndActionExecutor>().LifestylePerWcfOperation());
  1192.  
  1193. container.Register(
  1194. Classes
  1195. .FromAssembly(typeof(Auction504FlPublishedState).Assembly)
  1196. .BasedOn<ProcedureStateBase>()
  1197. .WithServiceDefaultInterfaces()
  1198. .Configure(c => c.LifestylePerWcfOperation()));
  1199.  
  1200. container.Register(Component.For<IAuction504FlApplicationStateMachine>()
  1201. .ImplementedBy<Auction504FlApplicationStateMachine>().LifestylePerWcfOperation());
  1202.  
  1203. container.Register(Component.For<IProcedureProtocolPublishService<Auction504FlProtocol>>()
  1204. .IsDefault()
  1205. .Named(nameof(Auction504FlProtocolPublishService))
  1206. .ImplementedBy<Auction504FlProtocolPublishService>().LifestylePerWcfOperation());
  1207.  
  1208. container.Register(Component.For<IAuction504FlAuctionService>()
  1209. .IsDefault()
  1210. .Named(nameof(Auction504FlAuctionService))
  1211. .ImplementedBy<Auction504FlAuctionService>().LifestylePerWcfOperation());
  1212.  
  1213. container.Register(Component.For<IApplicationPrintFormService<Auction504FlApplicationDetailedDto>>()
  1214. .ImplementedBy<Auction504FlApplicationPrintFormService>().LifestylePerWcfOperation());
  1215.  
  1216. container.Register(Component.For<ITradeLotApplicationBuilder<Auction504FlApplicationDetailedDto>>()
  1217. .ImplementedBy<Auction504FlTradeLotApplicationBuilder>()
  1218. .IsDefault()
  1219. .Named(nameof(Auction504FlTradeLotApplicationBuilder))
  1220. .LifestylePerWcfOperation());
  1221.  
  1222. container.Register(Component.For<IAuction504FlProtocolAuxiliaryService>()
  1223. .ImplementedBy<Auction504FlProtocolAuxiliaryService>().LifestylePerWcfOperation());
  1224.  
  1225. container.Register(Component.For<IApplicationPrintFormService<Auction504FlApplicationDetailedDto>>()
  1226. .ImplementedBy<Auction504FlApplicationPrintFormService>()
  1227. .IsDefault()
  1228. .Named(nameof(Auction504FlApplicationPrintFormService))
  1229. .LifestylePerWcfOperation());
  1230.  
  1231. container.Register(Component.For<IAuction504ContractCalendarEventService>()
  1232. .ImplementedBy<Auction504ContractCalendarEventService>()
  1233. .IsDefault()
  1234. .Named(nameof(Auction504ContractCalendarEventService))
  1235. .LifestylePerWcfOperation());
  1236.  
  1237. container.Register(Component.For<IAuction504FlNotifierService>()
  1238. .ImplementedBy<Auction504FlNotifierService>().LifestylePerWcfOperation());
  1239.  
  1240. container.Register(Component.For<IAuction504FlNotificationService>()
  1241. .ImplementedBy<Auction504FlNotificationService>().LifestylePerWcfOperation());
  1242.  
  1243. container.Register(Component.For<IApplicationPrintFormBuilderFactory<Auction504FlApplicationDetailedDto>>()
  1244. .ImplementedBy<Auction504FlApplicationPrintFormBuilderFactory>().LifestylePerWcfOperation());
  1245.  
  1246. container
  1247. .Register(Component.For<
  1248. IApplicationPrintFormBuilder<
  1249. Auction504FlApplicationDetailedDto,
  1250. Auction504FlApplicationPrintFormFirstPart,
  1251. Auction504FlApplicationFirstPartPrintFormReportData>>()
  1252. .ImplementedBy<Auction504FlApplicationFirstPartPrintFormBuilder>()
  1253. .LifestylePerWcfOperation());
  1254.  
  1255. container
  1256. .Register(Component.For<
  1257. IApplicationPrintFormBuilder<
  1258. Auction504FlApplicationDetailedDto,
  1259. Auction504FlApplicationPrintFormSecondPart,
  1260. Auction504FlApplicationSecondPartPrintFormReportData>>()
  1261. .ImplementedBy<Auction504FlApplicationSecondPartPrintFormBuilder>()
  1262. .LifestylePerWcfOperation());
  1263.  
  1264. container
  1265. .Register(Component.For<
  1266. IApplicationPrintFormBuilder<
  1267. Auction504FlApplicationDetailedDto,
  1268. Auction504FlApplicationPrintFormPurchaserInfo,
  1269. Auction504FlApplicationPurchaserPrintFormReportData>>()
  1270. .ImplementedBy<Auction504FlApplicationPurchaserPrintFormBuilder>()
  1271. .LifestylePerWcfOperation());
  1272.  
  1273. container.Register(
  1274. Component
  1275. .For<IApplicationPublishValidationService<Auction504FlApplicationDetailedDto>>()
  1276. .ImplementedBy<Auction504FlApplicationPublishValidationService>()
  1277. .IsDefault()
  1278. .Named(nameof(Auction504FlApplicationPublishValidationService))
  1279. .LifestylePerWcfOperation());
  1280.  
  1281. container.Register(Component.For<IAuction504FlApplicationStateFactory>()
  1282. .ImplementedBy<Auction504FlApplicationStateFactory>().LifestylePerWcfOperation());
  1283.  
  1284. container.Register(Component.For<IPreviewProtocolService<Auction504FlProtocol>>()
  1285. .ImplementedBy<PreviewProtocolService<Auction504FlProtocol>>().LifestylePerWcfOperation());
  1286.  
  1287. container.Register(Component.For<IAuction504FlApplicationNotifierService>()
  1288. .ImplementedBy<Auction504FlApplicationNotifierService>().LifestylePerWcfOperation());
  1289.  
  1290. container.Register(Component.For<IAuction504FlApplicationNotificationParametersBuilder>()
  1291. .ImplementedBy<Auction504FlApplicationNotificationParametersBuilder>().LifestylePerWcfOperation());
  1292.  
  1293. #endregion
  1294.  
  1295. #region QuotationsRequest504Fl
  1296.  
  1297. container
  1298. .Register(Component
  1299. .For<IExistingApplicationBuilder<QuotationsRequest504FlApplicationDetailedDto>>()
  1300. .IsDefault()
  1301. .Named(nameof(QuotationsRequest504FlExistingApplicationBuilder))
  1302. .ImplementedBy<QuotationsRequest504FlExistingApplicationBuilder>()
  1303. .LifestylePerWcfOperation());
  1304.  
  1305. container
  1306. .Register(Component
  1307. .For<IInitialApplicationBuilder<QuotationsRequest504FlApplicationDetailedDto>>()
  1308. .IsDefault()
  1309. .Named(nameof(QuotationsRequest504FlInitialApplicationBuilder))
  1310. .ImplementedBy<QuotationsRequest504FlInitialApplicationBuilder>()
  1311. .LifestylePerWcfOperation());
  1312.  
  1313. container.Register(
  1314. Component
  1315. .For<QuotationsRequest504FlApplicationCompletedState>()
  1316. .ImplementedBy<QuotationsRequest504FlApplicationCompletedState>()
  1317. .LifestylePerWcfOperation());
  1318.  
  1319. container.Register(Component.For<IQuotationsRequest504FlProtocolHelper>()
  1320. .IsDefault()
  1321. .Named(nameof(QuotationsRequest504FlProtocolHelper))
  1322. .ImplementedBy<QuotationsRequest504FlProtocolHelper>().LifestylePerWcfOperation());
  1323.  
  1324. container.Register(Component.For<IProcedureProtocolShortcutsBuilder<CustomerQuotationsRequest504FlDetailedDto>>()
  1325. .IsDefault()
  1326. .Named(nameof(CustomerQuotationsRequest504FlProtocolShortcutsBuilder))
  1327. .ImplementedBy<CustomerQuotationsRequest504FlProtocolShortcutsBuilder>().LifestylePerWcfOperation());
  1328.  
  1329. container.Register(Component.For<IBaseProtocolService<QuotationsRequest504FlProtocol>>()
  1330. .IsDefault()
  1331. .Named(nameof(QuotationsRequest504FlProtocolService))
  1332. .ImplementedBy<QuotationsRequest504FlProtocolService>().LifestylePerWcfOperation());
  1333.  
  1334. container.Register(Component.For<IProtocolTypeDirector<QuotationsRequest504FlProtocol>>()
  1335. .IsDefault()
  1336. .Named(nameof(QuotationsRequest504FlProtocolTypeDirector))
  1337. .ImplementedBy<QuotationsRequest504FlProtocolTypeDirector>().LifestylePerWcfOperation());
  1338.  
  1339. container.Register(Component.For<IProtocolBuilder<QuotationsRequest504FlProtocol, ProtocolViewData<QuotationsRequest504FlProtocol>>>()
  1340. .ImplementedBy<QuotationsRequest504FlProtocolBuilder<ProtocolViewData<QuotationsRequest504FlProtocol>>>().LifestylePerWcfOperation());
  1341. container.Register(Component.For<IProtocolBuilder<QuotationsRequest504FlProtocol, ProtocolPrintViewData<QuotationsRequest504FlProtocol>>>()
  1342. .ImplementedBy<QuotationsRequest504FlProtocolBuilder<ProtocolPrintViewData<QuotationsRequest504FlProtocol>>>().LifestylePerWcfOperation());
  1343. container.Register(Component.For<IFirstPartsProtocolBuilder<QuotationsRequest504FlProtocol, ProtocolViewData<QuotationsRequest504FlProtocol>>>()
  1344. .ImplementedBy<QuotationsRequest504FlReviewingProtocolBuilder<ProtocolViewData<QuotationsRequest504FlProtocol>>>().LifestylePerWcfOperation());
  1345. container.Register(Component.For<IFirstPartsProtocolBuilder<QuotationsRequest504FlProtocol, ProtocolPrintViewData<QuotationsRequest504FlProtocol>>>()
  1346. .ImplementedBy<QuotationsRequest504FlReviewingProtocolBuilder<ProtocolPrintViewData<QuotationsRequest504FlProtocol>>>().LifestylePerWcfOperation());
  1347. container.Register(Component.For<ISecondPartsProtocolBuilder<QuotationsRequest504FlProtocol, ProtocolViewData<QuotationsRequest504FlProtocol>>>()
  1348. .ImplementedBy<QuotationsRequest504FlReviewingAndEvaluationProtocolBuilder<ProtocolViewData<QuotationsRequest504FlProtocol>>>().LifestylePerWcfOperation());
  1349. container.Register(Component.For<ISecondPartsProtocolBuilder<QuotationsRequest504FlProtocol, ProtocolPrintViewData<QuotationsRequest504FlProtocol>>>()
  1350. .ImplementedBy<QuotationsRequest504FlReviewingAndEvaluationProtocolBuilder<ProtocolPrintViewData<QuotationsRequest504FlProtocol>>>().LifestylePerWcfOperation());
  1351. container.Register(Component.For<IZeroApplicationsProtocolBuilder<QuotationsRequest504FlProtocol, ProtocolViewData<QuotationsRequest504FlProtocol>>>()
  1352. .ImplementedBy<QuotationsRequest504FlZeroApplicationsProtocolBuilder<ProtocolViewData<QuotationsRequest504FlProtocol>>>().LifestylePerWcfOperation());
  1353. container.Register(Component.For<IZeroApplicationsProtocolBuilder<QuotationsRequest504FlProtocol, ProtocolPrintViewData<QuotationsRequest504FlProtocol>>>()
  1354. .ImplementedBy<QuotationsRequest504FlZeroApplicationsProtocolBuilder<ProtocolPrintViewData<QuotationsRequest504FlProtocol>>>().LifestylePerWcfOperation());
  1355.  
  1356. container.Register(Component.For<IFirstPartsProtocolPrintFormBuilder<QuotationsRequest504FlProtocol>>()
  1357. .ImplementedBy<QuotationsRequest504FlReviewingProtocolPrintFormBuilder>().LifestylePerWcfOperation());
  1358. container.Register(Component.For<ISecondPartsProtocolPrintFormBuilder<QuotationsRequest504FlProtocol>>()
  1359. .ImplementedBy<QuotationsRequest504FlReviewingAndEvaluationProtocolPrintFormBuilder>().LifestylePerWcfOperation());
  1360. container.Register(Component.For<ISingleApplicationProtocolPrintFormBuilder<QuotationsRequest504FlProtocol>>()
  1361. .IsDefault().Named(nameof(ISingleApplicationProtocolPrintFormBuilder<QuotationsRequest504FlProtocol>))
  1362. .ImplementedBy<NotImpementedProtocolPrintFormBuilder<QuotationsRequest504FlProtocol>>().LifestylePerWcfOperation());
  1363. container.Register(Component.For<IZeroApplicationsProtocolPrintFormBuilder<QuotationsRequest504FlProtocol>>()
  1364. .IsDefault().Named(nameof(IZeroApplicationsProtocolPrintFormBuilder<QuotationsRequest504FlProtocol>))
  1365. .ImplementedBy<QuotationsRequest504FlZeroApplicationsProtocolPrintFormBuilder>().LifestylePerWcfOperation());
  1366. container.Register(Component.For<ITradingProtocolPrintFormBuilder<QuotationsRequest504FlProtocol>>()
  1367. .IsDefault().Named(nameof(ITradingProtocolPrintFormBuilder<QuotationsRequest504FlProtocol>))
  1368. .ImplementedBy<NotImpementedProtocolPrintFormBuilder<QuotationsRequest504FlProtocol>>().LifestylePerWcfOperation());
  1369. container.Register(Component.For<IResultProtocolPrintFormBuilder<QuotationsRequest504FlProtocol>>()
  1370. .IsDefault().Named(nameof(IResultProtocolPrintFormBuilder<QuotationsRequest504FlProtocol>))
  1371. .ImplementedBy<NotImpementedProtocolPrintFormBuilder<QuotationsRequest504FlProtocol>>().LifestylePerWcfOperation());
  1372. container.Register(Component.For<IFirstStageProtocolPrintFormBuilder<QuotationsRequest504FlProtocol>>()
  1373. .ImplementedBy<NotImpementedProtocolPrintFormBuilder<QuotationsRequest504FlProtocol>>().LifestylePerWcfOperation());
  1374.  
  1375. container.Register(Component.For<IFirstPartsProtocolFactory<QuotationsRequest504FlProtocol>>()
  1376. .ImplementedBy<QuotationsRequest504FlReviewingProtocolFactory>().LifestylePerWcfOperation());
  1377.  
  1378. container.Register(Component.For<ISecondPartsProtocolFactory<QuotationsRequest504FlProtocol>>()
  1379. .ImplementedBy<QuotationsRequest504FlReviewingAndEvaluationProtocolFactory>().LifestylePerWcfOperation());
  1380.  
  1381. //TODO[GD]: implement
  1382. container.Register(Component.For<IResultProtocolFactory<QuotationsRequest504FlProtocol>>()
  1383. .IsDefault()
  1384. .Named(nameof(IResultProtocolFactory<QuotationsRequest504FlProtocol>))
  1385. .ImplementedBy<NotImpementedFactory<QuotationsRequest504FlProtocol>>().LifestylePerWcfOperation());
  1386.  
  1387. container.Register(Component.For<IFirstStageProtocolFactory<QuotationsRequest504FlProtocol>>()
  1388. .IsDefault()
  1389. .Named(CreateTypeNameWithGenericForRegister(typeof(IFirstStageProtocolFactory<QuotationsRequest504FlProtocol>)))
  1390. .ImplementedBy<NotImpementedFactory<QuotationsRequest504FlProtocol>>().LifestylePerWcfOperation());
  1391.  
  1392. container.Register(Component.For<ISingleApplicationProtocolFactory<QuotationsRequest504FlProtocol>>()
  1393. .IsDefault()
  1394. .Named(nameof(ISingleApplicationProtocolFactory<QuotationsRequest504FlProtocol>))
  1395. .ImplementedBy<NotImpementedFactory<QuotationsRequest504FlProtocol>>().LifestylePerWcfOperation());
  1396.  
  1397. container.Register(Component.For<IZeroApplicationsProtocolFactory<QuotationsRequest504FlProtocol>>()
  1398. .IsDefault()
  1399. .Named(nameof(IZeroApplicationsProtocolFactory<QuotationsRequest504FlProtocol>))
  1400. .ImplementedBy<QuotationsRequest504FlZeroApplicationsProtocolFactory>().LifestylePerWcfOperation());
  1401.  
  1402. container.Register(Component.For<IProtocolValidationService<QuotationsRequest504FlProtocol>>()
  1403. .IsDefault()
  1404. .Named(nameof(QuotationsRequest504FlValidationService))
  1405. .ImplementedBy<QuotationsRequest504FlValidationService>().LifestylePerWcfOperation());
  1406.  
  1407. container.Register(Component.For<ICustomerProcedureService<CustomerQuotationsRequest504FlDetailedDto>>()
  1408. .IsDefault()
  1409. .Named(nameof(CustomerQuotationsRequest504FlService))
  1410. .ImplementedBy<CustomerQuotationsRequest504FlService>().LifestylePerWcfOperation());
  1411.  
  1412. container.Register(Component.For<ISupplierProcedureService<SupplierQuotationsRequest504FlDetailedDto>>()
  1413. .IsDefault()
  1414. .Named(nameof(SupplierQuotationsRequest504FlService))
  1415. .ImplementedBy<SupplierQuotationsRequest504FlService>().LifestylePerWcfOperation());
  1416.  
  1417. container.Register(Component.For<CustomerProcedureBuilder<CustomerQuotationsRequest504FlDetailedDto>>()
  1418. .IsDefault()
  1419. .Named(nameof(CustomerQuotationsRequest504FlBuilder))
  1420. .ImplementedBy<CustomerQuotationsRequest504FlBuilder>().LifestylePerWcfOperation());
  1421.  
  1422. container.Register(Component.For<SupplierProcedureBuilder<SupplierQuotationsRequest504FlDetailedDto>>()
  1423. .IsDefault()
  1424. .Named(nameof(SupplierQuotationsRequest504FlBuilder))
  1425. .ImplementedBy<SupplierQuotationsRequest504FlBuilder>().LifestylePerWcfOperation());
  1426.  
  1427. container.Register(Component.For<IQuotationsRequest504FlStateMachine>()
  1428. .ImplementedBy<QuotationsRequest504FlStateMachine>().LifestylePerWcfOperation());
  1429.  
  1430. container.Register(Component.For<IQuotationsRequest504FlStateFactory>()
  1431. .ImplementedBy<QuotationsRequest504FlStateFactory>().LifestylePerWcfOperation());
  1432.  
  1433. container.Register(Component.For<IQuotationsRequest504FlActionExecutor<WithdrawAction>>()
  1434. .ImplementedBy<QuotationsRequest504FlWithdrawActionExecutor>().LifestylePerWcfOperation());
  1435. container.Register(Component.For<IQuotationsRequest504FlActionExecutor<RestoreWithdrawnAction>>()
  1436. .ImplementedBy<QuotationsRequest504FlRestoreWithdrawnActionExecutor>().LifestylePerWcfOperation());
  1437. container.Register(Component.For<IQuotationsRequest504FlActionExecutor<ModifyAction>>()
  1438. .ImplementedBy<QuotationsRequest504FlModifyActionExecutor>().LifestylePerWcfOperation());
  1439. container.Register(Component.For<IQuotationsRequest504FlActionExecutor<ProlongAction>>()
  1440. .ImplementedBy<QuotationsRequest504FlProlongActionExecutor>().LifestylePerWcfOperation());
  1441.  
  1442. container.Register(
  1443. Classes
  1444. .FromAssembly(typeof(QuotationsRequest504FlPublishedState).Assembly)
  1445. .BasedOn<ProcedureStateBase>()
  1446. .WithServiceDefaultInterfaces()
  1447. .Configure(c => c.LifestylePerWcfOperation()));
  1448.  
  1449. container.Register(Component.For<IQuotationsRequest504FlApplicationStateMachine>()
  1450. .ImplementedBy<QuotationsRequest504FlApplicationStateMachine>().LifestylePerWcfOperation());
  1451.  
  1452. container.Register(Component.For<IProcedureProtocolPublishService<QuotationsRequest504FlProtocol>>()
  1453. .IsDefault()
  1454. .Named(nameof(QuotationsRequest504FlProtocolPublishService))
  1455. .ImplementedBy<QuotationsRequest504FlProtocolPublishService>().LifestylePerWcfOperation());
  1456.  
  1457.  
  1458. container.Register(Component.For<IApplicationPrintFormService<QuotationsRequest504FlApplicationDetailedDto>>()
  1459. .ImplementedBy<QuotationsRequest504FlApplicationPrintFormService>().LifestylePerWcfOperation());
  1460.  
  1461. container.Register(Component.For<ITradeLotApplicationBuilder<QuotationsRequest504FlApplicationDetailedDto>>()
  1462. .ImplementedBy<QuotationsRequest504FlTradeLotApplicationBuilder>()
  1463. .IsDefault()
  1464. .Named(nameof(QuotationsRequest504FlTradeLotApplicationBuilder))
  1465. .LifestylePerWcfOperation());
  1466.  
  1467. container.Register(Component.For<IApplicationPrintFormService<QuotationsRequest504FlApplicationDetailedDto>>()
  1468. .ImplementedBy<QuotationsRequest504FlApplicationPrintFormService>()
  1469. .IsDefault()
  1470. .Named(nameof(QuotationsRequest504FlApplicationPrintFormService))
  1471. .LifestylePerWcfOperation());
  1472.  
  1473. container.Register(Component.For<IQuotationsRequest504FlValidationService>()
  1474. .ImplementedBy<QuotationsRequest504FlValidationService>().LifestylePerWcfOperation());
  1475.  
  1476. container.Register(Component.For<IProtocolDataService<QuotationsRequest504FlProtocol>>()
  1477. .ImplementedBy<QuotationsRequest504FlProtocolDataService>().LifestylePerWcfOperation());
  1478.  
  1479. container.Register(Component.For<ITradeLotApplicationFactory<QuotationsRequest504FlApplicationDetailedDto>>()
  1480. .ImplementedBy<QuotationsRequest504FlTradeLotApplicationFactory>().LifestylePerWcfOperation());
  1481.  
  1482. container.Register(Component.For<IApplicationPrintFormBuilderFactory<QuotationsRequest504FlApplicationDetailedDto>>()
  1483. .ImplementedBy<QuotationsRequest504FlApplicationPrintFormBuilderFactory>().LifestylePerWcfOperation());
  1484.  
  1485. container
  1486. .Register(Component.For<
  1487. IApplicationPrintFormBuilder<
  1488. QuotationsRequest504FlApplicationDetailedDto,
  1489. QuotationsRequest504FlApplicationPrintForm,
  1490. QuotationsRequest504FlApplicationPrintFormReportData>>()
  1491. .ImplementedBy<QuotationsRequest504FlApplicationPrintFormBuilder>()
  1492. .LifestylePerWcfOperation());
  1493.  
  1494. container
  1495. .Register(Component.For<
  1496. IApplicationPrintFormBuilder<
  1497. QuotationsRequest504FlApplicationDetailedDto,
  1498. QuotationsRequest504FlApplicationPrintFormPurchaserInfo,
  1499. QuotationsRequest504FlApplicationPurchaserPrintFormReportData>>()
  1500. .ImplementedBy<QuotationsRequest504FlApplicationPurchaserPrintFormBuilder>()
  1501. .LifestylePerWcfOperation());
  1502.  
  1503. container.Register(
  1504. Component
  1505. .For<IApplicationPublishValidationService<QuotationsRequest504FlApplicationDetailedDto>>()
  1506. .ImplementedBy<QuotationsRequest504FlApplicationPublishValidationService>()
  1507. .IsDefault()
  1508. .Named(nameof(QuotationsRequest504FlApplicationPublishValidationService))
  1509. .LifestylePerWcfOperation());
  1510.  
  1511. container.Register(Component.For<IQuotationsRequest504FlApplicationStateFactory>()
  1512. .ImplementedBy<QuotationsRequest504FlApplicationStateFactory>().LifestylePerWcfOperation());
  1513.  
  1514. #endregion
  1515.  
  1516. #region ProposalRequest
  1517.  
  1518. container.Register(Component.For<IApplicationDataService<ProposalRequestApplicationDetailedDto>>()
  1519. .ImplementedBy<ProposalRequestApplicationDataService>().LifestylePerWcfOperation());
  1520.  
  1521. container
  1522. .Register(Component
  1523. .For<IExistingApplicationBuilder<ProposalRequestApplicationDetailedDto>>()
  1524. .IsDefault()
  1525. .Named(nameof(ProposalRequestExistingApplicationBuilder))
  1526. .ImplementedBy<ProposalRequestExistingApplicationBuilder>()
  1527. .LifestylePerWcfOperation());
  1528.  
  1529. container.Register(Component.For<IProposalRequestProtocolHelper>()
  1530. .IsDefault()
  1531. .Named(nameof(ProposalRequestProtocolHelper))
  1532. .ImplementedBy<ProposalRequestProtocolHelper>().LifestylePerWcfOperation());
  1533.  
  1534. container.Register(Component.For<IProcedureProtocolShortcutsBuilder<CustomerProposalRequestDetailedDto>>()
  1535. .IsDefault()
  1536. .Named(nameof(CustomerProposalRequestProtocolShortcutsBuilder))
  1537. .ImplementedBy<CustomerProposalRequestProtocolShortcutsBuilder>().LifestylePerWcfOperation());
  1538.  
  1539. container.Register(Component.For<IBaseProtocolService<ProposalRequestProtocol>>()
  1540. .IsDefault()
  1541. .Named(nameof(ProposalRequestProtocolService))
  1542. .ImplementedBy<ProposalRequestProtocolService>().LifestylePerWcfOperation());
  1543.  
  1544. container.Register(Component.For<IProtocolTypeDirector<ProposalRequestProtocol>>()
  1545. .IsDefault()
  1546. .Named(nameof(ProposalRequestProtocolTypeDirector))
  1547. .ImplementedBy<ProposalRequestProtocolTypeDirector>().LifestylePerWcfOperation());
  1548.  
  1549. container.Register(Component.For<IProtocolBuilder<ProposalRequestProtocol, ProtocolViewData<ProposalRequestProtocol>>>()
  1550. .ImplementedBy<ProposalRequestProtocolBuilder<ProtocolViewData<ProposalRequestProtocol>>>().LifestylePerWcfOperation());
  1551. container.Register(Component.For<IProtocolBuilder<ProposalRequestProtocol, ProtocolPrintViewData<ProposalRequestProtocol>>>()
  1552. .ImplementedBy<ProposalRequestProtocolBuilder<ProtocolPrintViewData<ProposalRequestProtocol>>>().LifestylePerWcfOperation());
  1553. container.Register(Component.For<IFirstPartsProtocolBuilder<ProposalRequestProtocol, ProtocolViewData<ProposalRequestProtocol>>>()
  1554. .ImplementedBy<ProposalRequestReviewingProtocolBuilder<ProtocolViewData<ProposalRequestProtocol>>>().LifestylePerWcfOperation());
  1555. container.Register(Component.For<IFirstPartsProtocolBuilder<ProposalRequestProtocol, ProtocolPrintViewData<ProposalRequestProtocol>>>()
  1556. .ImplementedBy<ProposalRequestReviewingProtocolBuilder<ProtocolPrintViewData<ProposalRequestProtocol>>>().LifestylePerWcfOperation());
  1557. container.Register(Component.For<ISecondPartsProtocolBuilder<ProposalRequestProtocol, ProtocolViewData<ProposalRequestProtocol>>>()
  1558. .ImplementedBy<ProposalRequestRecordProtocolBuilder<ProtocolViewData<ProposalRequestProtocol>>>().LifestylePerWcfOperation());
  1559. container.Register(Component.For<ISecondPartsProtocolBuilder<ProposalRequestProtocol, ProtocolPrintViewData<ProposalRequestProtocol>>>()
  1560. .ImplementedBy<ProposalRequestRecordProtocolBuilder<ProtocolPrintViewData<ProposalRequestProtocol>>>().LifestylePerWcfOperation());
  1561. container.Register(Component.For<IResultProtocolBuilder<ProposalRequestProtocol, ProtocolViewData<ProposalRequestProtocol>>>()
  1562. .ImplementedBy<ProposalRequestResultProtocolBuilder<ProtocolViewData<ProposalRequestProtocol>>>().LifestylePerWcfOperation());
  1563. container.Register(Component.For<IResultProtocolBuilder<ProposalRequestProtocol, ProtocolPrintViewData<ProposalRequestProtocol>>>()
  1564. .ImplementedBy<ProposalRequestResultProtocolBuilder<ProtocolPrintViewData<ProposalRequestProtocol>>>().LifestylePerWcfOperation());
  1565. container.Register(Component.For<IZeroApplicationsProtocolBuilder<ProposalRequestProtocol, ProtocolViewData<ProposalRequestProtocol>>>()
  1566. .ImplementedBy<ProposalRequestZeroApplicationsProtocolBuilder<ProtocolViewData<ProposalRequestProtocol>>>().LifestylePerWcfOperation());
  1567. container.Register(Component.For<IZeroApplicationsProtocolBuilder<ProposalRequestProtocol, ProtocolPrintViewData<ProposalRequestProtocol>>>()
  1568. .ImplementedBy<ProposalRequestZeroApplicationsProtocolBuilder<ProtocolPrintViewData<ProposalRequestProtocol>>>().LifestylePerWcfOperation());
  1569.  
  1570. container.Register(Component.For<IFirstPartsProtocolPrintFormBuilder<ProposalRequestProtocol>>()
  1571. .ImplementedBy<ProposalRequestReviewingProtocolPrintFormBuilder>().LifestylePerWcfOperation());
  1572. container.Register(Component.For<ISecondPartsProtocolPrintFormBuilder<ProposalRequestProtocol>>()
  1573. .ImplementedBy<ProposalRequestProtocolRecordPrintFormBuilder>().LifestylePerWcfOperation());
  1574. container.Register(Component.For<ISingleApplicationProtocolPrintFormBuilder<ProposalRequestProtocol>>()
  1575. .IsDefault().Named(CreateTypeNameWithGenericForRegister(typeof(ISingleApplicationProtocolPrintFormBuilder<ProposalRequestProtocol>)))
  1576. .ImplementedBy<NotImpementedProtocolPrintFormBuilder<ProposalRequestProtocol>>().LifestylePerWcfOperation());
  1577. container.Register(Component.For<IZeroApplicationsProtocolPrintFormBuilder<ProposalRequestProtocol>>()
  1578. .IsDefault().Named(CreateTypeNameWithGenericForRegister(typeof(IZeroApplicationsProtocolPrintFormBuilder<ProposalRequestProtocol>)))
  1579. .ImplementedBy<ProposalRequestZeroApplicationsProtocolPrintFormBuilder>().LifestylePerWcfOperation());
  1580. container.Register(Component.For<ITradingProtocolPrintFormBuilder<ProposalRequestProtocol>>()
  1581. .IsDefault().Named(CreateTypeNameWithGenericForRegister(typeof(ITradingProtocolPrintFormBuilder<ProposalRequestProtocol>)))
  1582. .ImplementedBy<NotImpementedProtocolPrintFormBuilder<ProposalRequestProtocol>>().LifestylePerWcfOperation());
  1583. container.Register(Component.For<IResultProtocolPrintFormBuilder<ProposalRequestProtocol>>()
  1584. .IsDefault().Named(CreateTypeNameWithGenericForRegister(typeof(IResultProtocolPrintFormBuilder<ProposalRequestProtocol>)))
  1585. .ImplementedBy<ProposalRequestResultProtocolPrintFormBuilder>().LifestylePerWcfOperation());
  1586. container.Register(Component.For<IFirstStageProtocolPrintFormBuilder<ProposalRequestProtocol>>()
  1587. .IsDefault().Named(CreateTypeNameWithGenericForRegister(typeof(IFirstStageProtocolPrintFormBuilder<ProposalRequestProtocol>)))
  1588. .ImplementedBy<NotImpementedProtocolPrintFormBuilder<ProposalRequestProtocol>>().LifestylePerWcfOperation());
  1589.  
  1590. container.Register(Component.For<IFirstPartsProtocolFactory<ProposalRequestProtocol>>()
  1591. .ImplementedBy<ProposalRequestReviewingProtocolFactory>().LifestylePerWcfOperation());
  1592.  
  1593. //TODO[GD]: implement
  1594. container.Register(Component.For<IResultProtocolFactory<ProposalRequestProtocol>>()
  1595. .IsDefault()
  1596. .Named(CreateTypeNameWithGenericForRegister(typeof(IResultProtocolFactory<ProposalRequestProtocol>)))
  1597. .ImplementedBy<ProposalRequestResultProtocolFactory>().LifestylePerWcfOperation());
  1598.  
  1599. container.Register(Component.For<IFirstStageProtocolFactory<ProposalRequestProtocol>>()
  1600. .IsDefault()
  1601. .Named(CreateTypeNameWithGenericForRegister(typeof(IFirstStageProtocolFactory<ProposalRequestProtocol>)))
  1602. .ImplementedBy<NotImpementedFactory<ProposalRequestProtocol>>().LifestylePerWcfOperation());
  1603.  
  1604. container.Register(Component.For<ISecondPartsProtocolFactory<ProposalRequestProtocol>>()
  1605. .IsDefault()
  1606. .Named(CreateTypeNameWithGenericForRegister(typeof(ISecondPartsProtocolFactory<ProposalRequestProtocol>)))
  1607. .ImplementedBy<ProposalRequestReportProtocolFactory>().LifestylePerWcfOperation());
  1608.  
  1609. container.Register(Component.For<ISingleApplicationProtocolFactory<ProposalRequestProtocol>>()
  1610. .IsDefault()
  1611. .Named(CreateTypeNameWithGenericForRegister(typeof(ISingleApplicationProtocolFactory<ProposalRequestProtocol>)))
  1612. .ImplementedBy<NotImpementedFactory<ProposalRequestProtocol>>().LifestylePerWcfOperation());
  1613.  
  1614. container.Register(Component.For<IZeroApplicationsProtocolFactory<ProposalRequestProtocol>>()
  1615. .IsDefault()
  1616. .Named(CreateTypeNameWithGenericForRegister(typeof(IZeroApplicationsProtocolFactory<ProposalRequestProtocol>)))
  1617. .ImplementedBy<ProposalRequestZeroApplicationsProtocolFactory>().LifestylePerWcfOperation());
  1618.  
  1619. container.Register(Component.For<IProtocolValidationService<ProposalRequestProtocol>>()
  1620. .IsDefault()
  1621. .Named(nameof(ProposalRequestValidationService))
  1622. .ImplementedBy<ProposalRequestValidationService>().LifestylePerWcfOperation());
  1623.  
  1624. container.Register(Component.For<ICustomerProcedureService<CustomerProposalRequestDetailedDto>>()
  1625. .IsDefault()
  1626. .Named(nameof(CustomerProposalRequestService))
  1627. .ImplementedBy<CustomerProposalRequestService>().LifestylePerWcfOperation());
  1628.  
  1629. container.Register(Component.For<ISupplierProcedureService<SupplierProposalRequestDetailedDto>>()
  1630. .IsDefault()
  1631. .Named(nameof(SupplierProposalRequestService))
  1632. .ImplementedBy<SupplierProposalRequestService>().LifestylePerWcfOperation());
  1633.  
  1634. container.Register(Component.For<CustomerProcedureBuilder<CustomerProposalRequestDetailedDto>>()
  1635. .IsDefault()
  1636. .Named(nameof(CustomerProposalRequestBuilder))
  1637. .ImplementedBy<CustomerProposalRequestBuilder>().LifestylePerWcfOperation());
  1638.  
  1639. container.Register(Component.For<SupplierProcedureBuilder<SupplierProposalRequestDetailedDto>>()
  1640. .IsDefault()
  1641. .Named(nameof(SupplierProposalRequestBuilder))
  1642. .ImplementedBy<SupplierProposalRequestBuilder>().LifestylePerWcfOperation());
  1643.  
  1644. container.Register(Component.For<IProposalRequestStateMachine>()
  1645. .ImplementedBy<ProposalRequestStateMachine>().LifestylePerWcfOperation());
  1646.  
  1647. container.Register(Component.For<IProposalRequestStateFactory>()
  1648. .ImplementedBy<ProposalRequestStateFactory>().LifestylePerWcfOperation());
  1649.  
  1650. container.Register(Component.For<IProposalRequestActionExecutor<WithdrawAction>>()
  1651. .ImplementedBy<ProposalRequestWithdrawActionExecutor>().LifestylePerWcfOperation());
  1652. container.Register(Component.For<IProposalRequestActionExecutor<RestoreWithdrawnAction>>()
  1653. .ImplementedBy<ProposalRequestRestoreWithdrawnActionExecutor>().LifestylePerWcfOperation());
  1654. container.Register(Component.For<IProposalRequestActionExecutor<ModifyAction>>()
  1655. .ImplementedBy<ProposalRequestModifyActionExecutor>().LifestylePerWcfOperation());
  1656. container.Register(Component.For<IProposalRequestActionExecutor<ProlongAction>>()
  1657. .ImplementedBy<ProposalRequestProlongActionExecutor>().LifestylePerWcfOperation());
  1658.  
  1659. container.Register(
  1660. Classes
  1661. .FromAssembly(typeof(ProposalRequestPublishedState).Assembly)
  1662. .BasedOn<ProcedureStateBase>()
  1663. .WithServiceDefaultInterfaces()
  1664. .Configure(c => c.LifestylePerWcfOperation()));
  1665.  
  1666. container.Register(Component.For<IProposalRequestApplicationStateMachine>()
  1667. .ImplementedBy<ProposalRequestApplicationStateMachine>().LifestylePerWcfOperation());
  1668.  
  1669. container.Register(Component.For<IProcedureProtocolPublishService<ProposalRequestProtocol>>()
  1670. .IsDefault()
  1671. .Named(nameof(ProposalRequestProtocolPublishService))
  1672. .ImplementedBy<ProposalRequestProtocolPublishService>().LifestylePerWcfOperation());
  1673.  
  1674.  
  1675. container.Register(Component.For<IApplicationPrintFormService<ProposalRequestApplicationDetailedDto>>()
  1676. .ImplementedBy<ProposalRequestApplicationPrintFormService>().LifestylePerWcfOperation());
  1677.  
  1678. container.Register(Component.For<ITradeLotApplicationBuilder<ProposalRequestApplicationDetailedDto>>()
  1679. .ImplementedBy<ProposalRequestTradeLotApplicationBuilder>()
  1680. .IsDefault()
  1681. .Named(nameof(ProposalRequestTradeLotApplicationBuilder))
  1682. .LifestylePerWcfOperation());
  1683.  
  1684. container.Register(Component.For<IInitialApplicationBuilder<ProposalRequestApplicationDetailedDto>>()
  1685. .ImplementedBy<ProposalRequestInitialApplicationBuilder>().LifestylePerWcfOperation());
  1686. container.Register(Component.For<IExistingApplicationBuilder<ProposalRequestApplicationDetailedDto>>()
  1687. .ImplementedBy<ProposalRequestExistingApplicationBuilder>().LifestylePerWcfOperation());
  1688.  
  1689. container.Register(Component.For<IApplicationPrintFormService<ProposalRequestApplicationDetailedDto>>()
  1690. .ImplementedBy<ProposalRequestApplicationPrintFormService>()
  1691. .IsDefault()
  1692. .Named(nameof(ProposalRequestApplicationPrintFormService))
  1693. .LifestylePerWcfOperation());
  1694.  
  1695. container.Register(Component.For<IProposalRequestValidationService>()
  1696. .ImplementedBy<ProposalRequestValidationService>().LifestylePerWcfOperation());
  1697.  
  1698. container.Register(Component.For<IProtocolDataService<ProposalRequestProtocol>>()
  1699. .ImplementedBy<ProposalRequestProtocolDataService>().LifestylePerWcfOperation());
  1700.  
  1701. container.Register(Component.For<ITradeLotApplicationFactory<ProposalRequestApplicationDetailedDto>>()
  1702. .ImplementedBy<ProposalRequestTradeLotApplicationFactory>().LifestylePerWcfOperation());
  1703.  
  1704. container.Register(Component.For<IApplicationPrintFormBuilderFactory<ProposalRequestApplicationDetailedDto>>()
  1705. .ImplementedBy<ProposalRequestApplicationPrintFormBuilderFactory>().LifestylePerWcfOperation());
  1706.  
  1707. container
  1708. .Register(Component.For<
  1709. IApplicationPrintFormBuilder<
  1710. ProposalRequestApplicationDetailedDto,
  1711. ProposalRequestApplicationPrintForm,
  1712. ProposalRequestApplicationPrintFormReportData>>()
  1713. .ImplementedBy<ProposalRequestApplicationPrintFormBuilder>()
  1714. .LifestylePerWcfOperation());
  1715.  
  1716. container
  1717. .Register(Component.For<
  1718. IApplicationPrintFormBuilder<
  1719. ProposalRequestApplicationDetailedDto,
  1720. ProposalRequestApplicationPrintFormPurchaserInfo,
  1721. ProposalRequestApplicationPurchaserPrintFormReportData>>()
  1722. .ImplementedBy<ProposalRequestApplicationPurchaserPrintFormBuilder>()
  1723. .LifestylePerWcfOperation());
  1724.  
  1725. container
  1726. .Register(Component.For<
  1727. IApplicationPrintFormBuilder<
  1728. ProposalRequestApplicationDetailedDto,
  1729. ProposalRequestFinalProposalApplicationPrintForm,
  1730. ProposalRequestFinalProposalPrintFormReportData>>()
  1731. .ImplementedBy<ProposalRequestFinalProposalPrintFormBuilder>()
  1732. .LifestylePerWcfOperation());
  1733.  
  1734. container.Register(
  1735. Component
  1736. .For<IApplicationPublishValidationService<ProposalRequestApplicationDetailedDto>>()
  1737. .ImplementedBy<ProposalRequestApplicationPublishValidationService>()
  1738. .IsDefault()
  1739. .Named(nameof(ProposalRequestApplicationPublishValidationService))
  1740. .LifestylePerWcfOperation());
  1741.  
  1742. container.Register(Component.For<IProposalRequestApplicationStateFactory>()
  1743. .ImplementedBy<ProposalRequestApplicationStateFactory>().LifestylePerWcfOperation());
  1744.  
  1745. container.Register(Component
  1746. .For<IProposalRequestCustomerNotificationParametersBuilder>()
  1747. .ImplementedBy<ProposalRequestCustomerNotificationParametersBuilder>()
  1748. .LifestylePerWcfOperation());
  1749.  
  1750. container.Register(Component
  1751. .For<IProposalRequestSupplierNotificationParametersBuilder>()
  1752. .ImplementedBy<ProposalRequestSupplierNotificationParametersBuilder>()
  1753. .LifestylePerWcfOperation());
  1754.  
  1755. container.Register(Component
  1756. .For<IProposalRequestCustomerNotifierService>()
  1757. .ImplementedBy<ProposalRequestCustomerNotifierService>()
  1758. .LifestylePerWcfOperation());
  1759.  
  1760. container.Register(Component
  1761. .For<IProposalRequestSupplierNotifierService>()
  1762. .ImplementedBy<ProposalRequestSupplierNotifierService>()
  1763. .LifestylePerWcfOperation());
  1764.  
  1765. container.Register(Component
  1766. .For<IProposalRequestNotifierFacade>()
  1767. .ImplementedBy<ProposalRequestNotifierFacade>()
  1768. .LifestylePerWcfOperation());
  1769.  
  1770. container.Register(Component
  1771. .For<ProposalRequestApplicationFormationState>()
  1772. .ImplementedBy<ProposalRequestApplicationFormationState>()
  1773. .LifestylePerWcfOperation());
  1774.  
  1775. container.Register(Component
  1776. .For<ProposalRequestApplicationCompletedState>()
  1777. .ImplementedBy<ProposalRequestApplicationCompletedState>()
  1778. .LifestylePerWcfOperation());
  1779.  
  1780. #endregion
  1781.  
  1782. #region DoubleStagedCompetition
  1783.  
  1784. container.Register(Component.For<IApplicationDataService<DoubleStagedCompetitionApplicationDetailedDto>>()
  1785. .ImplementedBy<DoubleStagedCompetitionApplicationDataService>().LifestylePerWcfOperation());
  1786.  
  1787. container.Register(Component.For<IProtocolDataForSigningBuilder<DoubleStagedCompetitionProtocol>>()
  1788. .ImplementedBy<BaseProtocolDataForSigningBuilder<DoubleStagedCompetitionProtocol>>().LifestylePerWcfOperation());
  1789. container.Register(Component.For<IDoubleStagedCompetitionValidationService>()
  1790. .ImplementedBy<DoubleStagedCompetitionValidationService>().LifestylePerWcfOperation());
  1791.  
  1792. container.Register(Component.For<IApplicationBuildDirector<DoubleStagedCompetitionApplicationDetailedDto>>()
  1793. .ImplementedBy<ApplicationBuildDirector<DoubleStagedCompetitionApplicationDetailedDto>>().LifestylePerWcfOperation());
  1794.  
  1795.  
  1796. container.Register(Component.For<IInitialApplicationBuilder<DoubleStagedCompetitionApplicationDetailedDto>>()
  1797. .ImplementedBy<DoubleStagedCompetitionInitialApplicationBuilder>().LifestylePerWcfOperation());
  1798. container.Register(Component.For<IExistingApplicationBuilder<DoubleStagedCompetitionApplicationDetailedDto>>()
  1799. .ImplementedBy<DoubleStagedCompetitionExistingApplicationBuilder>().LifestylePerWcfOperation());
  1800.  
  1801.  
  1802. container.Register(Component.For<IProtocolBuilder<DoubleStagedCompetitionProtocol, ProtocolViewData<DoubleStagedCompetitionProtocol>>>()
  1803. .ImplementedBy<DoubleStagedCompetitionProtocolBuilder<ProtocolViewData<DoubleStagedCompetitionProtocol>>>().LifestylePerWcfOperation());
  1804. container.Register(Component.For<IProtocolBuilder<DoubleStagedCompetitionProtocol, ProtocolPrintViewData<DoubleStagedCompetitionProtocol>>>()
  1805. .ImplementedBy<DoubleStagedCompetitionProtocolBuilder<ProtocolPrintViewData<DoubleStagedCompetitionProtocol>>>().LifestylePerWcfOperation());
  1806. container.Register(Component.For<IFirstPartsProtocolBuilder<DoubleStagedCompetitionProtocol, ProtocolViewData<DoubleStagedCompetitionProtocol>>>()
  1807. .ImplementedBy<DoubleStagedCompetitionFirstPartsProtocolBuilder<ProtocolViewData<DoubleStagedCompetitionProtocol>>>().LifestylePerWcfOperation());
  1808. container.Register(Component.For<IFirstPartsProtocolBuilder<DoubleStagedCompetitionProtocol, ProtocolPrintViewData<DoubleStagedCompetitionProtocol>>>()
  1809. .ImplementedBy<DoubleStagedCompetitionFirstPartsProtocolBuilder<ProtocolPrintViewData<DoubleStagedCompetitionProtocol>>>().LifestylePerWcfOperation());
  1810. container.Register(Component.For<ISecondPartsProtocolBuilder<DoubleStagedCompetitionProtocol, ProtocolViewData<DoubleStagedCompetitionProtocol>>>()
  1811. .ImplementedBy<DoubleStagedCompetitionSecondPartsProtocolBuilder<ProtocolViewData<DoubleStagedCompetitionProtocol>>>().LifestylePerWcfOperation());
  1812. container.Register(Component.For<ISecondPartsProtocolBuilder<DoubleStagedCompetitionProtocol, ProtocolPrintViewData<DoubleStagedCompetitionProtocol>>>()
  1813. .ImplementedBy<DoubleStagedCompetitionSecondPartsProtocolBuilder<ProtocolPrintViewData<DoubleStagedCompetitionProtocol>>>().LifestylePerWcfOperation());
  1814. container.Register(Component.For<ISingleApplicationProtocolBuilder<DoubleStagedCompetitionProtocol, ProtocolViewData<DoubleStagedCompetitionProtocol>>>()
  1815. .ImplementedBy<DoubleStagedCompetitionSingleApplicationProtocolBuilder<ProtocolViewData<DoubleStagedCompetitionProtocol>>>().LifestylePerWcfOperation());
  1816. container.Register(Component.For<ISingleApplicationProtocolBuilder<DoubleStagedCompetitionProtocol, ProtocolPrintViewData<DoubleStagedCompetitionProtocol>>> ()
  1817. .ImplementedBy<DoubleStagedCompetitionSingleApplicationProtocolBuilder< ProtocolPrintViewData<DoubleStagedCompetitionProtocol>>> ().LifestylePerWcfOperation());
  1818. container.Register(Component.For<IResultProtocolBuilder<DoubleStagedCompetitionProtocol, ProtocolViewData<DoubleStagedCompetitionProtocol>>>()
  1819. .ImplementedBy<DoubleStagedCompetitionResultProtocolBuilder<ProtocolViewData<DoubleStagedCompetitionProtocol>>>().LifestylePerWcfOperation());
  1820. container.Register(Component.For<IResultProtocolBuilder<DoubleStagedCompetitionProtocol, ProtocolPrintViewData<DoubleStagedCompetitionProtocol>>> ()
  1821. .ImplementedBy<DoubleStagedCompetitionResultProtocolBuilder<ProtocolPrintViewData<DoubleStagedCompetitionProtocol>>> ().LifestylePerWcfOperation());
  1822. container.Register(Component.For<IFirstStageProtocolBuilder<DoubleStagedCompetitionProtocol, ProtocolViewData<DoubleStagedCompetitionProtocol>>>()
  1823. .ImplementedBy<DoubleStagedCompetitionFirstStageProtocolBuilder<ProtocolViewData<DoubleStagedCompetitionProtocol>>>().LifestylePerWcfOperation());
  1824. container.Register(Component.For<IFirstStageProtocolBuilder<DoubleStagedCompetitionProtocol, ProtocolPrintViewData<DoubleStagedCompetitionProtocol>>>()
  1825. .ImplementedBy<DoubleStagedCompetitionFirstStageProtocolBuilder<ProtocolPrintViewData<DoubleStagedCompetitionProtocol>>>().LifestylePerWcfOperation());
  1826. container.Register(Component.For<IZeroApplicationsProtocolBuilder<DoubleStagedCompetitionProtocol, ProtocolViewData<DoubleStagedCompetitionProtocol>>>()
  1827. .ImplementedBy<DoubleStagedCompetitionZeroApplicationsProtocolBuilder<ProtocolViewData<DoubleStagedCompetitionProtocol>>>().LifestylePerWcfOperation());
  1828. container.Register(Component.For<IZeroApplicationsProtocolBuilder<DoubleStagedCompetitionProtocol, ProtocolPrintViewData<DoubleStagedCompetitionProtocol>>>()
  1829. .ImplementedBy<DoubleStagedCompetitionZeroApplicationsProtocolBuilder<ProtocolPrintViewData<DoubleStagedCompetitionProtocol>>>().LifestylePerWcfOperation());
  1830. container.Register(Component.For<IFirstStageProtocolBuilder<DoubleStagedCompetitionProtocol, ProtocolViewData<DoubleStagedCompetitionProtocol>>>()
  1831. .IsDefault()
  1832. .Named(CreateTypeNameWithGenericForRegister(typeof(IFirstStageProtocolBuilder<DoubleStagedCompetitionProtocol, ProtocolViewData<DoubleStagedCompetitionProtocol>>)))
  1833. .ImplementedBy<DoubleStagedCompetitionFirstStageProtocolBuilder<ProtocolViewData<DoubleStagedCompetitionProtocol>>>()
  1834. .LifestylePerWcfOperation());
  1835. container.Register(Component.For<IFirstStageProtocolFactory<DoubleStagedCompetitionProtocol>>()
  1836. .IsDefault()
  1837. .Named(CreateTypeNameWithGenericForRegister(typeof(IFirstStageProtocolFactory<DoubleStagedCompetitionProtocol>)))
  1838. .ImplementedBy<DoubleStagedCompetitionFirstStageProtocolFactory>().LifestylePerWcfOperation());
  1839.  
  1840. container.Register(Component.For<IFirstPartsProtocolPrintFormBuilder<DoubleStagedCompetitionProtocol>>()
  1841. .ImplementedBy<DoubleStagedCompetitionFirstPartsProtocolPrintFormBuilder>().LifestylePerWcfOperation());
  1842. container.Register(Component.For<ISecondPartsProtocolPrintFormBuilder<DoubleStagedCompetitionProtocol>>()
  1843. .ImplementedBy<DoubleStagedCompetitionSecondPartsProtocolPrintFormBuilder>().LifestylePerWcfOperation());
  1844. container.Register(Component.For<ISingleApplicationProtocolPrintFormBuilder<DoubleStagedCompetitionProtocol>>()
  1845. .ImplementedBy<DoubleStagedCompetitionSingleApplicationProtocolPrintFormBuilder>().LifestylePerWcfOperation());
  1846. container.Register(Component.For<IResultProtocolPrintFormBuilder<DoubleStagedCompetitionProtocol>>()
  1847. .ImplementedBy<DoubleStagedCompetitionResultProtocolPrintFormBuilder>().LifestylePerWcfOperation());
  1848. container.Register(Component.For<ITradingProtocolPrintFormBuilder<DoubleStagedCompetitionProtocol>>()
  1849. .ImplementedBy<NotImpementedProtocolPrintFormBuilder<DoubleStagedCompetitionProtocol>>().LifestylePerWcfOperation());
  1850.  
  1851. container.Register(Component.For<IFirstPartsProtocolFactory<DoubleStagedCompetitionProtocol>>()
  1852. .ImplementedBy<DoubleStagedCompetitionFirstPartsProtocolFactory>().LifestylePerWcfOperation());
  1853. container.Register(Component.For<ISecondPartsProtocolFactory<DoubleStagedCompetitionProtocol>>()
  1854. .ImplementedBy<DoubleStagedCompetitionSecondPartsProtocolFactory>().LifestylePerWcfOperation());
  1855. container.Register(Component.For<ISingleApplicationProtocolFactory<DoubleStagedCompetitionProtocol>>()
  1856. .ImplementedBy<DoubleStagedCompetitionSingleApplicationProtocolFactory>().LifestylePerWcfOperation());
  1857. container.Register(Component.For<IResultProtocolFactory<DoubleStagedCompetitionProtocol>>()
  1858. .ImplementedBy<DoubleStagedCompetitionResultProtocolFactory>().LifestylePerWcfOperation());
  1859. container.Register(Component.For<IZeroApplicationsProtocolFactory<DoubleStagedCompetitionProtocol>>()
  1860. .ImplementedBy<DoubleStagedCompetitionZeroApplicationsProtocolFactory>().LifestylePerWcfOperation());
  1861. container.Register(Component.For<IZeroApplicationsProtocolPrintFormBuilder<DoubleStagedCompetitionProtocol>>()
  1862. .ImplementedBy<DoubleStagedCompetitionZeroApplicationsProtocolPrintFormBuilder>().LifestylePerWcfOperation());
  1863. container.Register(Component.For<IFirstStageProtocolPrintFormBuilder<DoubleStagedCompetitionProtocol>>()
  1864. .IsDefault()
  1865. .Named(nameof(DoubleStagedCompetitionFirstStageProtocolPrintFormBuilder))
  1866. .ImplementedBy<DoubleStagedCompetitionFirstStageProtocolPrintFormBuilder>()
  1867. .LifestylePerWcfOperation());
  1868.  
  1869.  
  1870. container.Register(Component.For<IProtocolDataService<DoubleStagedCompetitionProtocol>>()
  1871. .ImplementedBy<DoubleStagedCompetitionProtocolDataService>().LifestylePerWcfOperation());
  1872.  
  1873. container
  1874. .Register(Component
  1875. .For<IExistingApplicationBuilder<DoubleStagedCompetitionApplicationDetailedDto>>()
  1876. .IsDefault()
  1877. .Named(nameof(DoubleStagedCompetitionExistingApplicationBuilder))
  1878. .ImplementedBy<DoubleStagedCompetitionExistingApplicationBuilder>()
  1879. .LifestylePerWcfOperation());
  1880.  
  1881. container.Register(Component.For<IProtocolValidationService<DoubleStagedCompetitionProtocol>>()
  1882. .IsDefault()
  1883. .Named(nameof(DoubleStagedCompetitionValidationService))
  1884. .ImplementedBy<DoubleStagedCompetitionValidationService>().LifestylePerWcfOperation());
  1885.  
  1886. container.Register(Component.For<IProcedureProtocolPublishService<DoubleStagedCompetitionProtocol>>()
  1887. .IsDefault()
  1888. .Named(nameof(DoubleStagedCompetitionProtocolPublishService))
  1889. .ImplementedBy<DoubleStagedCompetitionProtocolPublishService>().LifestylePerWcfOperation());
  1890.  
  1891. container.Register(Component.For<IDoubleStagedCompetitionProtocolHelper>()
  1892. .IsDefault()
  1893. .Named(nameof(DoubleStagedCompetitionProtocolHelper))
  1894. .ImplementedBy<DoubleStagedCompetitionProtocolHelper>().LifestylePerWcfOperation());
  1895.  
  1896. container.Register(Component.For<IProcedureProtocolShortcutsBuilder<CustomerDoubleStagedCompetitionDetailedDto>>()
  1897. .IsDefault()
  1898. .Named(nameof(CustomerDoubleStagedCompetitionProtocolShortcutsBuilder))
  1899. .ImplementedBy<CustomerDoubleStagedCompetitionProtocolShortcutsBuilder>().LifestylePerWcfOperation());
  1900.  
  1901. container.Register(Component.For<IBaseProtocolService<DoubleStagedCompetitionProtocol>>()
  1902. .IsDefault()
  1903. .Named(nameof(DoubleStagedCompetitionProtocolService))
  1904. .ImplementedBy<DoubleStagedCompetitionProtocolService>().LifestylePerWcfOperation());
  1905.  
  1906. container.Register(Component.For<IProtocolTypeDirector<DoubleStagedCompetitionProtocol>>()
  1907. .IsDefault()
  1908. .Named(nameof(DoubleStagedCompetitionProtocolTypeDirector))
  1909. .ImplementedBy<DoubleStagedCompetitionProtocolTypeDirector>().LifestylePerWcfOperation());
  1910.  
  1911. container.Register(Component.For<ICustomerProcedureService<CustomerDoubleStagedCompetitionDetailedDto>>()
  1912. .IsDefault()
  1913. .Named(nameof(CustomerDoubleStagedCompetitionService))
  1914. .ImplementedBy<CustomerDoubleStagedCompetitionService>().LifestylePerWcfOperation());
  1915.  
  1916. container.Register(Component.For<ISupplierProcedureService<SupplierDoubleStagedCompetitionDetailedDto>>()
  1917. .IsDefault()
  1918. .Named(nameof(SupplierDoubleStagedCompetitionService))
  1919. .ImplementedBy<SupplierDoubleStagedCompetitionService>().LifestylePerWcfOperation());
  1920.  
  1921. container.Register(Component.For<CustomerProcedureBuilder<CustomerDoubleStagedCompetitionDetailedDto>>()
  1922. .IsDefault()
  1923. .Named(nameof(CustomerDoubleStagedCompetitionBuilder))
  1924. .ImplementedBy<CustomerDoubleStagedCompetitionBuilder>().LifestylePerWcfOperation());
  1925.  
  1926. container.Register(Component.For<SupplierProcedureBuilder<SupplierDoubleStagedCompetitionDetailedDto>>()
  1927. .IsDefault()
  1928. .Named(nameof(SupplierDoubleStagedCompetitionBuilder))
  1929. .ImplementedBy<SupplierDoubleStagedCompetitionBuilder>().LifestylePerWcfOperation());
  1930.  
  1931. container.Register(Component.For<IDoubleStagedCompetitionStateMachine>()
  1932. .IsDefault()
  1933. .Named(nameof(DoubleStagedCompetitionStateMachine))
  1934. .ImplementedBy<DoubleStagedCompetitionStateMachine>().LifestylePerWcfOperation());
  1935.  
  1936. container.Register(Component.For<IDoubleStagedCompetitionStateFactory>()
  1937. .IsDefault()
  1938. .Named(nameof(DoubleStagedCompetitionStateFactory))
  1939. .ImplementedBy<DoubleStagedCompetitionStateFactory>().LifestylePerWcfOperation());
  1940.  
  1941. container.Register(Component.For<DoubleStagedCompetitionPublishedState>()
  1942. .ImplementedBy<DoubleStagedCompetitionPublishedState>().LifestylePerWcfOperation());
  1943.  
  1944. container.Register(Component.For<IDoubleStagedCompetitionActionExecutor<WithdrawAction>>()
  1945. .ImplementedBy<DoubleStagedCompetitionWithdrawActionExecutor>().LifestylePerWcfOperation());
  1946. container.Register(Component.For<IDoubleStagedCompetitionActionExecutor<RestoreWithdrawnAction>>()
  1947. .ImplementedBy<DoubleStagedCompetitionRestoreWithdrawnActionExecutor>().LifestylePerWcfOperation());
  1948. container.Register(Component.For<IDoubleStagedCompetitionActionExecutor<ModifyAction>>()
  1949. .ImplementedBy<DoubleStagedCompetitionModifyActionExecutor>().LifestylePerWcfOperation());
  1950. container.Register(Component.For<IDoubleStagedCompetitionActionExecutor<ProlongAction>>()
  1951. .ImplementedBy<DoubleStagedCompetitionProlongActionExecutor>().LifestylePerWcfOperation());
  1952. container.Register(
  1953. Classes
  1954. .FromAssembly(typeof(DoubleStagedCompetitionPublishedState).Assembly)
  1955. .BasedOn<ProcedureStateBase>()
  1956. .WithServiceDefaultInterfaces()
  1957. .Configure(c => c.LifestylePerWcfOperation()));
  1958.  
  1959. container.Register(Component.For<IDoubleStagedCompetitionApplicationStateMachine>()
  1960. .ImplementedBy<DoubleStagedCompetitionApplicationStateMachine>().LifestylePerWcfOperation());
  1961.  
  1962. container.Register(Component.For<IDoubleStagedCompetitionApplicationStateFactory>()
  1963. .ImplementedBy<DoubleStagedCompetitionApplicationStateFactory>().LifestylePerWcfOperation());
  1964.  
  1965. container.Register(Component.For<IApplicationPrintFormService<DoubleStagedCompetitionApplicationDetailedDto>>()
  1966. .ImplementedBy<DoubleStagedCompetitionApplicationPrintFormService>().LifestylePerWcfOperation());
  1967.  
  1968. container.Register(Component.For<ITradeLotApplicationBuilder<DoubleStagedCompetitionApplicationDetailedDto>>()
  1969. .ImplementedBy<DoubleStagedCompetitionTradeLotApplicationBuilder>()
  1970. .IsDefault()
  1971. .Named(nameof(DoubleStagedCompetitionTradeLotApplicationBuilder))
  1972. .LifestylePerWcfOperation());
  1973.  
  1974. container.Register(Component.For<IApplicationPrintFormService<DoubleStagedCompetitionApplicationDetailedDto>>()
  1975. .ImplementedBy<DoubleStagedCompetitionApplicationPrintFormService>()
  1976. .IsDefault()
  1977. .Named(nameof(DoubleStagedCompetitionApplicationPrintFormService))
  1978. .LifestylePerWcfOperation());
  1979.  
  1980. container.Register(Component.For<IApplicationPrintFormBuilderFactory<DoubleStagedCompetitionApplicationDetailedDto>>()
  1981. .ImplementedBy<DoubleStagedCompetitionApplicationPrintFormBuilderFactory>().LifestylePerWcfOperation());
  1982.  
  1983. container
  1984. .Register(Component.For<
  1985. IApplicationPrintFormBuilder<
  1986. DoubleStagedCompetitionApplicationDetailedDto,
  1987. DoubleStagedCompetitionApplicationPrintFormFirstPart,
  1988. DoubleStagedCompetitionApplicationFirstPartPrintFormReportData>>()
  1989. .ImplementedBy<DoubleStagedCompetitionApplicationFirstPartPrintFormBuilder>()
  1990. .LifestylePerWcfOperation());
  1991.  
  1992. container
  1993. .Register(Component.For<
  1994. IApplicationPrintFormBuilder<
  1995. DoubleStagedCompetitionApplicationDetailedDto,
  1996. DoubleStagedCompetitionApplicationPrintFormSecondPart,
  1997. DoubleStagedCompetitionApplicationSPPrintFormReportData>>()
  1998. .ImplementedBy<DoubleStagedCompetitionApplicationSecondPartPrintFormBuilder>()
  1999. .LifestylePerWcfOperation());
  2000.  
  2001. container
  2002. .Register(Component.For<
  2003. IApplicationPrintFormBuilder<
  2004. DoubleStagedCompetitionApplicationDetailedDto,
  2005. DoubleStagedCompetitionApplicationPrintFormPurchaserInfo,
  2006. DoubleStagedCompetitionApplicationPurchaserPrintFormReportData>>()
  2007. .ImplementedBy<DoubleStagedCompetitionApplicationPurchaserPrintFormBuilder>()
  2008. .LifestylePerWcfOperation());
  2009.  
  2010. container.Register(
  2011. Component
  2012. .For<IApplicationPublishValidationService<DoubleStagedCompetitionApplicationDetailedDto>>()
  2013. .ImplementedBy<DoubleStagedCompetitionApplicationPublishValidationService>()
  2014. .IsDefault()
  2015. .Named(nameof(DoubleStagedCompetitionApplicationPublishValidationService))
  2016. .LifestylePerWcfOperation());
  2017.  
  2018. #endregion
  2019. }
  2020.  
  2021. private static void AddWcfServicesTo(IWindsorContainer container, HostingType hostingType)
  2022. {
  2023. container.AddFacility<WcfFacility>(f => f.CloseTimeout = TimeSpan.Zero);
  2024. switch (hostingType)
  2025. {
  2026. case HostingType.Normal:
  2027. container
  2028. .AddWcfServicesTo<IAccreditationService, AccreditationService>()
  2029. .AddWcfServicesTo<ITradingService, TradingService>()
  2030. .AddWcfServicesTo<IProcedureService, ProcedureService>()
  2031. .AddWcfServicesTo<IDictionaryService, DictionaryService>()
  2032. .AddWcfServicesTo<IDealingCallbackService, DealingCallbackService>()
  2033. .AddWcfServicesTo<IOos94FZCallbackService, Oos94FZCallbackService>()
  2034. .AddWcfServicesTo<IBiddingImpotExportCallbackService, BiddingImportExportCallbackService>()
  2035. .AddWcfServicesTo<ITradeProcedureExportService, TradeProcedureExportService>()
  2036. .AddWcfServicesTo<ITradingInfoProviderService, TradingInfoProviderService>()
  2037. .AddWcfServicesTo<IPurchaseInfoService, PurchaseInfoService>()
  2038. .AddWcfServicesTo<ITradeRegistryPullService, TradeRegistryPullService>()
  2039. .AddWcfServicesTo<ITradeRegistryPushService, TradeRegistryPushService>()
  2040. .AddWcfServicesTo<ITradeHistoryService, TradeHistoryService>()
  2041. .AddWcfServicesTo<ICheckSecurityService, CheckSecurityService>()
  2042. .AddWcfServicesTo<ICreditService, CreditService>()
  2043. .AddWcfServicesTo<IReportingService, ReportingServiceClient>();
  2044. break;
  2045. case HostingType.Public:
  2046. break;
  2047. case HostingType.Task:
  2048. container.AddWcfServicesTo<ITaskService, TaskService>()
  2049. .AddWcfServicesTo<IReportingService, ReportingServiceClient>();
  2050. break;
  2051. default:
  2052. throw new NotImplementedException();
  2053. }
  2054. }
  2055.  
  2056. private static IWindsorContainer AddWcfServicesTo<TI, TO>(this IWindsorContainer @container)
  2057. where TI : class
  2058. where TO : TI
  2059. {
  2060. return
  2061. @container.Register(
  2062. Component.For<TI>().ImplementedBy<TO>().Named(typeof(TO).FullName).LifestylePerWcfOperation());
  2063. }
  2064.  
  2065. /// <summary>
  2066. /// Создаёт имя типа для регистрации зависимостей учитывая дженерики типа.
  2067. /// </summary>
  2068. /// <param name="type">Тип на основе которого создаётся имя.</param>
  2069. /// <returns>Созданное имя типа с учётом дженерика.</returns>
  2070. private static string CreateTypeNameWithGenericForRegister(Type type)
  2071. {
  2072. var typeName = type.Name;
  2073. var genericTypeArguments = type.GenericTypeArguments;
  2074. if (genericTypeArguments.Any())
  2075. {
  2076. string genericArgumentNames = "";
  2077. foreach (var argument in genericTypeArguments)
  2078. {
  2079. if(genericArgumentNames.IsNullOrEmpty())
  2080. genericArgumentNames += argument.Name;
  2081. else
  2082. {
  2083. genericArgumentNames += $", {argument.Name}";
  2084. }
  2085. }
  2086.  
  2087. typeName = $"{typeName}<{genericArgumentNames}>";
  2088. }
  2089.  
  2090. return typeName;
  2091. }
  2092. }
  2093. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement