public TOut RunBizActionDbAndInstance <TOut>(DbContext db, TBizInterface bizInstance, IMapper mapper, object inputData)
        {
            var toBizCopier   = DtoAccessGenerator.BuildCopier(inputData.GetType(), typeof(TBizIn), true, false, Config);
            var fromBizCopier = DtoAccessGenerator.BuildCopier(typeof(TBizOut), typeof(TOut), false, false, Config);
            var bizStatus     = (IBizActionStatus)bizInstance;

            //The SetupSecondaryData produced errors
            if (bizStatus.HasErrors)
            {
                return(default(TOut));
            }

            var inData = toBizCopier.DoCopyToBiz <TBizIn>(db, mapper, inputData);

            var result = ((IGenericAction <TBizIn, TBizOut>)bizInstance).BizAction(inData);

            //This handles optional call of save changes
            SaveChangedIfRequiredAndNoErrors(db, bizStatus);
            if (bizStatus.HasErrors)
            {
                return(default(TOut));
            }

            var data = fromBizCopier.DoCopyFromBiz <TOut>(db, mapper, result);

            return(data);
        }
        public async Task <TOut> RunBizActionDbAndInstanceAsync <TOut>(object repository, TBizInterface bizInstance,
                                                                       object inputData)
        {
            var toBizCopier   = DtoAccessGenerator.BuildCopier(inputData.GetType(), typeof(TBizIn), true, true, WrappedConfig.Config.TurnOffCaching);
            var fromBizCopier = DtoAccessGenerator.BuildCopier(typeof(TBizOut), typeof(TOut), false, true, WrappedConfig.Config.TurnOffCaching);
            var bizStatus     = (IBizActionStatus)bizInstance;

            //The SetupSecondaryData produced errors
            if (bizStatus.HasErrors)
            {
                return(default(TOut));
            }

            var inData = await toBizCopier.DoCopyToBizAsync <TBizIn>(repository, WrappedConfig.ToBizIMapper, inputData).ConfigureAwait(false);

            var result = await((IGenericActionAsync <TBizIn, TBizOut>)bizInstance).BizActionAsync(inData).ConfigureAwait(false);

            //This handles optional call of save changes. Only be used if type of DbContext is being used and supplied via IRepository.
            await SaveChangedIfRequiredAndNoErrorsAsync(repository, bizStatus).ConfigureAwait(false);

            if (bizStatus.HasErrors)
            {
                return(default(TOut));
            }

            var data = await fromBizCopier.DoCopyFromBizAsync <TOut>(repository, WrappedConfig.FromBizIMapper, result).ConfigureAwait(false);

            return(data);
        }
        public void TestCreateDataWithPossibleSetupDirectOk()
        {
            //SETUP
            var copier = DtoAccessGenerator.BuildCopier(typeof(BizDataIn), typeof(BizDataIn), true, false, _noCachingConfig);
            var status = new TestBizActionStatus();

            //ATTEMPT
            var data = copier.CreateDataWithPossibleSetup <BizDataIn>(null, status, null);

            //VERIFY
            //Should not fail
        }
        public async Task TestCreateDataWithPossibleSetupDirectOk()
        {
            //SETUP
            var copier = DtoAccessGenerator.BuildCopier(typeof(BizDataIn), typeof(BizDataIn), true, true, true);
            var status = new TestBizActionStatus();

            //ATTEMPT
            await copier.CreateDataWithPossibleSetupAsync <BizDataIn>(null, status, null);

            //VERIFY
            //Should work with no exceptions
        }
        public async Task TestCreateDataWithPossibleSetupSyncDtoWithActionOk()
        {
            //SETUP
            var copier = DtoAccessGenerator.BuildCopier(typeof(ServiceLayerBizInDto), typeof(BizDataIn), true, true, true);
            var status = new TestBizActionStatus();

            //ATTEMPT
            var data = await copier.CreateDataWithPossibleSetupAsync <ServiceLayerBizInDto>(null, status, x => { x.Num = 2; });

            //VERIFY
            data.SetupSecondaryDataCalled.ShouldBeTrue();
            data.Num.ShouldEqual(2);
        }
        public void TestCreateDataWithPossibleSetupDtoWithActionOk()
        {
            //SETUP
            var copier = DtoAccessGenerator.BuildCopier(typeof(ServiceLayerBizInDto), typeof(BizDataIn), true, false, _noCachingConfig);
            var status = new TestBizActionStatus();

            //ATTEMPT
            var data = copier.CreateDataWithPossibleSetup <ServiceLayerBizInDto>(null, status, x => { x.Num = 2; });

            //VERIFY
            data.SetupSecondaryDataCalled.ShouldBeTrue();
            data.Num.ShouldEqual(2);
        }
        public void Test01DirectCopyOk()
        {
            //SETUP
            var copier = DtoAccessGenerator.BuildCopier(typeof(BizDataIn), typeof(BizDataIn), true, false, _noCachingConfig);
            var input  = new BizDataIn {
                Num = 234
            };

            //ATTEMPT
            var data = copier.DoCopyToBiz <BizDataIn>(null, null, input);

            //VERIFY
            data.Num.ShouldEqual(234);
        }
        public async Task TestBizOutCopyAsyncDirectOk()
        {
            //SETUP
            var copier = DtoAccessGenerator.BuildCopier(typeof(BizDataOut), typeof(BizDataOut), false, true, true);
            var input  = new BizDataOut {
                Output = "test copy"
            };

            //ATTEMPT
            var data = await copier.DoCopyFromBizAsync <BizDataOut>(null, null, input);

            //VERIFY
            data.Output.ShouldEqual("test copy");
        }
        public async Task TestBizInCopyAsyncMethodDirectOk()
        {
            //SETUP
            var copier = DtoAccessGenerator.BuildCopier(typeof(BizDataIn), typeof(BizDataIn), true, true, true);
            var input  = new BizDataIn {
                Num = 234
            };

            //ATTEMPT
            var data = await copier.DoCopyToBizAsync <BizDataIn>(null, null, input);

            //VERIFY
            data.Num.ShouldEqual(234);
        }
        public void TestBizOutDirectOk()
        {
            //SETUP
            var copier = DtoAccessGenerator.BuildCopier(typeof(BizDataOut), typeof(BizDataOut), false, false, _noCachingConfig);
            var input  = new BizDataOut {
                Output = "test copy"
            };

            //ATTEMPT
            var data = copier.DoCopyFromBiz <BizDataOut>(null, null, input);

            //VERIFY
            data.Output.ShouldEqual("test copy");
        }
        public void TestSetupSecondaryDataDtoOk()
        {
            //SETUP
            var copier = DtoAccessGenerator.BuildCopier(typeof(ServiceLayerBizInDto), typeof(BizDataIn), true, false, _noCachingConfig);
            var input  = new ServiceLayerBizInDto {
                Num = 234
            };
            var status = new TestBizActionStatus();

            //ATTEMPT
            copier.SetupSecondaryDataIfRequired(null, status, input);

            //VERIFY
            input.SetupSecondaryDataCalled.ShouldBeTrue();
        }
        public async Task TestSetupSecondaryAsyncDataDirectOk()
        {
            //SETUP
            var copier = DtoAccessGenerator.BuildCopier(typeof(BizDataIn), typeof(BizDataIn), true, true, true);
            var input  = new BizDataIn {
                Num = 234
            };
            var status = new TestBizActionStatus();

            //ATTEMPT
            await copier.SetupSecondaryDataIfRequiredAsync(null, status, input);

            //VERIFY
            //Should work with no expections
        }
        public async Task TestSetupSecondaryDataSyncDtoOk()
        {
            //SETUP
            var copier = DtoAccessGenerator.BuildCopier(typeof(ServiceLayerBizInDto), typeof(BizDataIn), true, true, true);
            var input  = new ServiceLayerBizInDto {
                Num = 234
            };
            var status = new TestBizActionStatus();

            //ATTEMPT
            await copier.SetupSecondaryDataIfRequiredAsync(null, status, input);

            //VERIFY
            input.SetupSecondaryDataCalled.ShouldBeTrue();
        }
        public async Task TestBizInCopyAsyncSyncDtoOk()
        {
            //SETUP
            var utData = NonDiBizSetup.SetupDtoMapping <ServiceLayerBizInDto>();
            var copier = DtoAccessGenerator.BuildCopier(typeof(ServiceLayerBizInDto), typeof(BizDataIn), true, true, true);
            var input  = new ServiceLayerBizInDto {
                Num = 234
            };

            //ATTEMPT
            var data = await copier.DoCopyToBizAsync <BizDataIn>(null, utData.WrappedConfig.ToBizIMapper, input);

            //VERIFY
            data.Num.ShouldEqual(234);
        }
        public void TestSetupSecondaryDataDirectOk()
        {
            //SETUP
            var copier = DtoAccessGenerator.BuildCopier(typeof(BizDataIn), typeof(BizDataIn), true, false, _noCachingConfig);
            var input  = new BizDataIn {
                Num = 234
            };
            var status = new TestBizActionStatus();

            //ATTEMPT
            copier.SetupSecondaryDataIfRequired(null, status, input);

            //VERIFY
            //Should not do anything, but musn't fail
        }
예제 #16
0
        public async Task TestBizInCopyAsyncSyncDtoOk()
        {
            //SETUP
            var mapper = SetupHelpers.CreateMapper <ServiceLayerBizInDto>();
            var copier = DtoAccessGenerator.BuildCopier(typeof(ServiceLayerBizInDto), typeof(BizDataIn), true, true, _noCachingConfig);
            var input  = new ServiceLayerBizInDto {
                Num = 234
            };

            //ATTEMPT
            var data = await copier.DoCopyToBizAsync <BizDataIn>(null, mapper, input);

            //VERIFY
            data.Num.ShouldEqual(234);
        }
        public void TestBizInCopyOk()
        {
            //SETUP
            var utData = NonDiBizSetup.SetupDtoMapping <ServiceLayerBizInDto>();
            var copier = DtoAccessGenerator.BuildCopier(typeof(ServiceLayerBizInDto), typeof(BizDataIn), true, false, true);
            var input  = new ServiceLayerBizInDto {
                Num = 234
            };

            //ATTEMPT
            var data = copier.DoCopyToBiz <BizDataIn>(null, utData.WrappedConfig.ToBizIMapper, input);

            //VERIFY
            data.Num.ShouldEqual(234);
            input.CopyToBizDataCalled.ShouldBeTrue();
            input.SetupSecondaryDataCalled.ShouldBeFalse();
        }
예제 #18
0
        public async Task TestBizOutCopyAsyncAsyncDtoOk()
        {
            //SETUP
            var mapper = SetupHelpers.CreateMapper <ServiceLayerBizOutDtoAsync>();
            var copier = DtoAccessGenerator.BuildCopier(typeof(BizDataOut), typeof(ServiceLayerBizOutDtoAsync), false, true, _noCachingConfig);
            var input  = new BizDataOut {
                Output = "test copy"
            };

            //ATTEMPT
            var data = await copier.DoCopyFromBizAsync <ServiceLayerBizOutDtoAsync>(null, mapper, input);

            //VERIFY
            data.Output.ShouldEqual("test copy");
            data.CopyFromBizDataCalled.ShouldBeTrue();
            data.SetupSecondaryOutputDataCalled.ShouldBeTrue();
        }
        public async Task TestBizOutCopyAsyncAsyncDtoOk()
        {
            //SETUP
            var utData = NonDiBizSetup.SetupDtoMapping <ServiceLayerBizOutDtoAsync>();
            var copier = DtoAccessGenerator.BuildCopier(typeof(BizDataOut), typeof(ServiceLayerBizOutDtoAsync), false, true, true);
            var input  = new BizDataOut {
                Output = "test copy"
            };

            //ATTEMPT
            var data = await copier.DoCopyFromBizAsync <ServiceLayerBizOutDtoAsync>(null, utData.WrappedConfig.FromBizIMapper, input);

            //VERIFY
            data.Output.ShouldEqual("test copy");
            data.CopyFromBizDataCalled.ShouldBeTrue();
            data.SetupSecondaryOutputDataCalled.ShouldBeTrue();
        }
예제 #20
0
        public TOut RunBizActionDbAndInstance <TOut>(DbContext db, TBizInterface bizInstance, IMapper mapper)
        {
            var fromBizCopier = DtoAccessGenerator.BuildCopier(typeof(TBizOut), typeof(TOut), false, false, Config);
            var bizStatus     = (IBizActionStatus)bizInstance;

            var result = ((IGenericActionOutOnly <TBizOut>)bizInstance).BizAction();

            //This handles optional call of save changes
            SaveChangedIfRequiredAndNoErrors(db, bizStatus);
            if (bizStatus.HasErrors)
            {
                return(default(TOut));
            }

            var data = fromBizCopier.DoCopyFromBiz <TOut>(db, mapper, result);

            return(data);
        }
예제 #21
0
        public TOut RunBizActionDbAndInstance <TOut>(object repository, TBizInterface bizInstance)
        {
            var fromBizCopier = DtoAccessGenerator.BuildCopier(typeof(TBizOut), typeof(TOut), false, false, WrappedConfig.Config.TurnOffCaching);
            var bizStatus     = (IBizActionStatus)bizInstance;

            var result = ((IGenericActionOutOnly <TBizOut>)bizInstance).BizAction();

            //This handles optional call of save changes. Only be used if type of DbContext is being used and supplied via IRepository.
            SaveChangedIfRequiredAndNoErrors(repository, bizStatus);
            if (bizStatus.HasErrors)
            {
                return(default(TOut));
            }

            var data = fromBizCopier.DoCopyFromBiz <TOut>(repository, WrappedConfig.FromBizIMapper, result);

            return(data);
        }
예제 #22
0
        public async Task <TOut> RunBizActionDbAndInstanceAsync <TOut>(DbContext db, TBizInterface bizInstance, IMapper mapper)
        {
            var fromBizCopier = DtoAccessGenerator.BuildCopier(typeof(TBizOut), typeof(TOut), false, true, Config);
            var bizStatus     = (IBizActionStatus)bizInstance;

            var result = await((IGenericActionOutOnlyAsync <TBizOut>)bizInstance).BizActionAsync().ConfigureAwait(false);

            //This handles optional call of save changes
            await SaveChangedIfRequiredAndNoErrorsAsync(db, bizStatus).ConfigureAwait(false);

            if (bizStatus.HasErrors)
            {
                return(default(TOut));
            }

            var data = await fromBizCopier.DoCopyFromBizAsync <TOut>(db, mapper, result).ConfigureAwait(false);

            return(data);
        }
        public void TestBizOutCopyOk()
        {
            //SETUP
            var config = new MapperConfiguration(cfg =>
            {
                cfg.AddProfile(new ServiceLayerBizOutDto());
            });
            var mapper = config.CreateMapper();
            var copier = DtoAccessGenerator.BuildCopier(typeof(BizDataOut), typeof(ServiceLayerBizOutDto), false, false, _noCachingConfig);
            var input  = new BizDataOut {
                Output = "test copy"
            };

            //ATTEMPT
            var data = copier.DoCopyFromBiz <ServiceLayerBizOutDto>(null, mapper, input);

            //VERIFY
            data.Output.ShouldEqual("test copy");
            data.CopyFromBizDataCalled.ShouldBeTrue();
            data.SetupSecondaryOutputDataCalled.ShouldBeTrue();
        }
        public void TestBizInCopyOk()
        {
            //SETUP
            var config = new MapperConfiguration(cfg =>
            {
                cfg.AddProfile(new ServiceLayerBizInDto());
            });
            var mapper = config.CreateMapper();
            var copier = DtoAccessGenerator.BuildCopier(typeof(ServiceLayerBizInDto), typeof(BizDataIn), true, false, _noCachingConfig);
            var input  = new ServiceLayerBizInDto {
                Num = 234
            };

            //ATTEMPT
            var data = copier.DoCopyToBiz <BizDataIn>(null, mapper, input);

            //VERIFY
            data.Num.ShouldEqual(234);
            input.CopyToBizDataCalled.ShouldBeTrue();
            input.SetupSecondaryDataCalled.ShouldBeFalse();
        }
        public void RunBizActionDbAndInstance(DbContext db, TBizInterface bizInstance, object inputData)
        {
            var toBizCopier = DtoAccessGenerator.BuildCopier(inputData.GetType(), typeof(TBizIn), true, false, WrappedConfig.Config.TurnOffCaching);
            var bizStatus   = (IBizActionStatus)bizInstance;

            //The SetupSecondaryData produced errors
            if (bizStatus.HasErrors)
            {
                return;
            }

            var inData = toBizCopier.DoCopyToBiz <TBizIn>(db, WrappedConfig.ToBizIMapper, inputData);

            ((IGenericActionInOnly <TBizIn>)bizInstance).BizAction(inData);

            //This handles optional call of save changes
            SaveChangedIfRequiredAndNoErrors(db, bizStatus);
            if (bizStatus.HasErrors)
            {
                toBizCopier.SetupSecondaryDataIfRequired(db, bizStatus, inputData);
            }
        }
예제 #26
0
        public async Task RunBizActionDbAndInstanceAsync(DbContext db, TBizInterface bizInstance, IMapper mapper, object inputData)
        {
            var toBizCopier = DtoAccessGenerator.BuildCopier(inputData.GetType(), typeof(TBizIn), true, true, Config);
            var bizStatus   = (IBizActionStatus)bizInstance;

            //The SetupSecondaryData produced errors
            if (bizStatus.HasErrors)
            {
                return;
            }

            var inData = await toBizCopier.DoCopyToBizAsync <TBizIn>(db, mapper, inputData).ConfigureAwait(false);

            await((IGenericActionInOnlyAsync <TBizIn>)bizInstance).BizActionAsync(inData).ConfigureAwait(false);

            //This handles optional call of save changes
            await SaveChangedIfRequiredAndNoErrorsAsync(db, bizStatus).ConfigureAwait(false);

            if (bizStatus.HasErrors)
            {
                await toBizCopier.SetupSecondaryDataIfRequiredAsync(db, bizStatus, inputData).ConfigureAwait(false);
            }
        }