public override async Task DeleteAsync(long id) { var model = await DbSet.Include(d => d.Items).FirstOrDefaultAsync(d => d.Id == id); EntityExtension.FlagForDelete(model, IdentityService.Username, "sales-service", true); GarmentBookingOrder booking = DbContext.GarmentBookingOrders.FirstOrDefault(b => b.Id == model.BookingOrderId); if (booking != null) { booking.IsBlockingPlan = false; } foreach (var item in model.Items) { GarmentWeeklyPlanItem week = DbContext.GarmentWeeklyPlanItems.FirstOrDefault(a => a.Id == item.WeeklyPlanItemId); week.UsedEH -= (int)item.EHBooking; week.RemainingEH += (int)item.EHBooking; if (item.IsConfirm) { week.WHConfirm -= Math.Round((item.EHBooking / (week.Operator * week.Efficiency)), 2); } EntityExtension.FlagForDelete(item, IdentityService.Username, "sales-service", true); } }
public override void UpdateAsync(long id, GarmentSewingBlockingPlan newModel) { var model = DbSet.AsNoTracking().Include(d => d.Items).FirstOrDefault(d => d.Id == id); if (model.Status == "Booking Ada Perubahan") { newModel.Status = "Booking"; } foreach (var item in model.Items) { GarmentWeeklyPlanItem week = DbContext.GarmentWeeklyPlanItems.FirstOrDefault(a => a.Id == item.WeeklyPlanItemId); week.UsedEH -= (int)item.EHBooking; week.RemainingEH += (int)item.EHBooking; } foreach (var newPlan in newModel.Items) { GarmentWeeklyPlanItem week = DbContext.GarmentWeeklyPlanItems.FirstOrDefault(a => a.Id == newPlan.WeeklyPlanItemId); //var oldItem = model.Items.FirstOrDefault(i => i.Id == newPlan.Id); if (newPlan.Id == 0) { week.UsedEH += (int)newPlan.EHBooking; week.RemainingEH -= (int)newPlan.EHBooking; EntityExtension.FlagForCreate(newPlan, IdentityService.Username, "sales-service"); } else { week.UsedEH += (int)newPlan.EHBooking; week.RemainingEH -= (int)newPlan.EHBooking; EntityExtension.FlagForUpdate(newPlan, IdentityService.Username, "sales-service"); } } DbSet.Update(newModel); foreach (var oldItem in model.Items) { var newItem = newModel.Items.FirstOrDefault(i => i.Id == oldItem.Id); if (newItem == null) { EntityExtension.FlagForDelete(oldItem, IdentityService.Username, "sales-service"); DbContext.GarmentSewingBlockingPlanItems.Update(oldItem); } } //DbSet.Update(model); EntityExtension.FlagForUpdate(newModel, IdentityService.Username, "sales-service"); }
public async Task GetWeekById_Return_Success() { //Settup var dbContext = DbContext(GetCurrentMethod()); var serviceProvider = GetServiceProviderMock(dbContext).Object; WeeklyPlanFacade facade = new WeeklyPlanFacade(serviceProvider, dbContext); var data = await DataUtil(facade, dbContext).GetTestData(); //Act GarmentWeeklyPlanItem response = facade.GetWeekById((int)data.Id); //Assert Assert.NotNull(response); Assert.NotEqual(0, response.Id); }
public override void Create(GarmentSewingBlockingPlan model) { EntityExtension.FlagForCreate(model, IdentityService.Username, "sales-service"); model.Status = "Booking"; GarmentBookingOrder booking = DbContext.GarmentBookingOrders.FirstOrDefault(b => b.Id == model.BookingOrderId); booking.IsBlockingPlan = true; foreach (var item in model.Items) { GarmentWeeklyPlanItem week = DbContext.GarmentWeeklyPlanItems.FirstOrDefault(a => a.Id == item.WeeklyPlanItemId); week.UsedEH += (int)item.EHBooking; week.RemainingEH -= (int)item.EHBooking; EntityExtension.FlagForCreate(item, IdentityService.Username, "sales-service"); } base.Create(model); }