Exemplo n.º 1
0
        public static void Setup(IContainer container)
        {
            var builder = new ContainerBuilder();
            var context = new IposSyncContext();
            var uof     = new UnitOfWork <Guid>(context);

            builder.RegisterInstance(uof).As <IUnitOfWork <Guid> >();
        }
Exemplo n.º 2
0
        protected override void Load(ContainerBuilder builder)
        {
            builder.Register <SyncApiClient>(s =>
            {
                return(new SyncApiClient(ConfigurationManager.AppSettings["SYNC_APP_URL"]));
            }).As <SyncApiClient>();

            var context = new IposSyncContext();
            var uof     = new UnitOfWork <Guid>(context);

            builder.RegisterInstance(uof).As <IUnitOfWork <Guid> >();
            builder.RegisterInstance(context).As <IContext>();
            builder.RegisterType <TransactionSyncService>().As <TransactionSyncService>();
            builder.RegisterType <SpoilSyncService>().As <SpoilSyncService>();

            builder.Register <IposMssqlProvider>(c =>
            {
                return(new IposMssqlProvider(ConfigurationManager.AppSettings["DATA.CONNECTIONSTRING"]
                                             , ConfigurationManager.AppSettings["DATA.PROVIDER"]));
            }).As <IStoreDataProvider>();

            builder.Register <IposMssqlProvider>(c =>
            {
                return(new IposMssqlProvider(ConfigurationManager.AppSettings["SYNC_STORE.CONNECTIONSTRING"]
                                             , ConfigurationManager.AppSettings["DATA.PROVIDER"]));
            }).As <ISyncStoreDataProvider>();

            builder.Register <ProcessFreshTransactionWorkflow>(c =>
            {
                var transSvc              = c.Resolve <TransactionSyncService>();
                var storeDataProvider     = c.Resolve <IStoreDataProvider>();
                var syncStoreDataProvider = c.Resolve <ISyncStoreDataProvider>();

                return(new ProcessFreshTransactionWorkflow(transSvc, storeDataProvider, syncStoreDataProvider));
            }).As <ProcessFreshTransactionWorkflow>();

            builder.Register <ProcessSpoilWorkflow>(c =>
            {
                var transSvc              = c.Resolve <SpoilSyncService>();
                var storeDataProvider     = c.Resolve <IStoreDataProvider>();
                var syncStoreDataProvider = c.Resolve <ISyncStoreDataProvider>();

                return(new ProcessSpoilWorkflow(storeDataProvider, transSvc, syncStoreDataProvider));
            }).As <ProcessSpoilWorkflow>();

            base.Load(builder);
        }