Beispiel #1
0
        public async Task Should_Success_Update_Data()
        {
            GarmentFinanceMemorialService service = new GarmentFinanceMemorialService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));


            GarmentFinanceMemorialModel model = await _dataUtil(service, GetCurrentMethod()).GetTestData();

            var newModel = await service.ReadByIdAsync(model.Id);

            //newModel.BGCheckNumber = "newBG";
            var Response1 = await service.UpdateAsync(newModel.Id, newModel);

            Assert.NotEqual(0, Response1);

            GarmentFinanceMemorialModel model2 = await _dataUtil(service, GetCurrentMethod()).GetTestData();

            //var newModel2 = await service.ReadByIdAsync(model.Id);
            GarmentFinanceMemorialModel newModel2 = new GarmentFinanceMemorialModel();

            newModel2.Id    = model2.Id;
            newModel2.Items = new List <GarmentFinanceMemorialItemModel> {
                model2.Items.First()
            };
            newModel2.Items.First().Credit = 100;
            newModel2.Items.First().Debit  = 100;
            var Response = await service.UpdateAsync(model2.Id, newModel2);

            Assert.NotEqual(0, Response);

            GarmentFinanceMemorialItemModel newItem = new GarmentFinanceMemorialItemModel
            {
                COAId   = 3,
                COACode = "no3",
                COAName = "Name",
                Debit   = 3,
                Credit  = 0
            };

            GarmentFinanceMemorialItemModel newItem2 = new GarmentFinanceMemorialItemModel
            {
                COAId   = 3,
                COACode = "no3",
                COAName = "Name",
                Credit  = 3,
                Debit   = 0
            };

            newModel2.Items.Add(newItem);
            newModel2.Items.Add(newItem2);
            var Response3 = await service.UpdateAsync(model2.Id, newModel2);

            Assert.NotEqual(0, Response);
        }
Beispiel #2
0
        public async Task <int> UpdateAsync(int id, GarmentFinanceMemorialModel model)
        {
            var exist = DbSet
                        .Include(d => d.Items)
                        .Single(o => o.Id == id && !o.IsDeleted);

            if (exist.Date != model.Date)
            {
                exist.Date = model.Date;
            }
            if (exist.Remark != model.Remark)
            {
                exist.Remark = model.Remark;
            }
            if (exist.GarmentCurrencyRate != model.GarmentCurrencyRate)
            {
                exist.GarmentCurrencyRate = model.GarmentCurrencyRate;
            }

            foreach (var item in exist.Items)
            {
                GarmentFinanceMemorialItemModel itemModel = model.Items.FirstOrDefault(prop => prop.Id.Equals(item.Id));

                if (itemModel == null)
                {
                    EntityExtension.FlagForDelete(item, IdentityService.Username, UserAgent, true);
                }
                else
                {
                    if (item.Debit != itemModel.Debit)
                    {
                        item.Debit = itemModel.Debit;
                    }
                    if (item.Credit != itemModel.Credit)
                    {
                        item.Credit = itemModel.Credit;
                    }
                    EntityExtension.FlagForUpdate(item, IdentityService.Username, UserAgent);
                }
            }
            foreach (var newItem in model.Items)
            {
                if (newItem.Id <= 0)
                {
                    EntityExtension.FlagForCreate(newItem, IdentityService.Username, UserAgent);
                    exist.Items.Add(newItem);
                }
            }

            EntityExtension.FlagForUpdate(exist, IdentityService.Username, UserAgent);
            return(await DbContext.SaveChangesAsync());
        }