public async Task <IActionResult> Get(string id) { Guid guid = Guid.Parse(id); VerifyUser(); GarmentFinishingInDto garmentFinishingInDto = _garmentFinishingInRepository.Find(o => o.Identity == guid).Select(loading => new GarmentFinishingInDto(loading) { Items = _garmentFinishingInItemRepository.Find(o => o.FinishingInId == loading.Identity).OrderBy(i => i.Color).ThenBy(i => i.SizeName).Select(loadingItem => new GarmentFinishingInItemDto(loadingItem) ).ToList() } ).FirstOrDefault(); await Task.Yield(); return(Ok(garmentFinishingInDto)); }
public async Task <GarmentFinishingIn> Handle(RemoveGarmentSubconFinishingInCommand request, CancellationToken cancellationToken) { var finIn = _garmentFinishingInRepository.Query.Where(o => o.Identity == request.Identity).Select(o => new GarmentFinishingIn(o)).Single(); Dictionary <Guid, double> subconCuttingSumQuantities = new Dictionary <Guid, double>(); var finishingInItems = _garmentFinishingInItemRepository.Find(o => o.FinishingInId == finIn.Identity); finishingInItems.ForEach(async item => { if (Guid.Empty != item.SubconCuttingId) { subconCuttingSumQuantities[item.SubconCuttingId] = subconCuttingSumQuantities.GetValueOrDefault(item.SubconCuttingId) + item.Quantity; } item.Remove(); await _garmentFinishingInItemRepository.Update(item); }); //foreach (var item in finishingInItems) //{ // if (Guid.Empty != item.SubconCuttingId) // { // subconCuttingSumQuantities[item.SubconCuttingId] = subconCuttingSumQuantities.GetValueOrDefault(item.SubconCuttingId) + item.Quantity; // } // item.Remove(); // await _garmentFinishingInItemRepository.Update(item); //} foreach (var sumQuantity in subconCuttingSumQuantities) { var subconCutting = _garmentSubconCuttingRepository.Query.Where(x => x.Identity == sumQuantity.Key).Select(s => new GarmentSubconCutting(s)).Single(); subconCutting.SetFinishingInQuantity(subconCutting.FinishingInQuantity - sumQuantity.Value); subconCutting.Modify(); await _garmentSubconCuttingRepository.Update(subconCutting); } finIn.Remove(); await _garmentFinishingInRepository.Update(finIn); _storage.Save(); return(finIn); }
public async Task <GarmentFinishingIn> Handle(RemoveGarmentFinishingInCommand request, CancellationToken cancellationToken) { var finIn = _garmentFinishingInRepository.Query.Where(o => o.Identity == request.Identity).Select(o => new GarmentFinishingIn(o)).Single(); Dictionary <Guid, double> sewingOutItemToBeUpdated = new Dictionary <Guid, double>(); _garmentFinishingInItemRepository.Find(o => o.FinishingInId == finIn.Identity).ForEach(async finishingInItem => { if (sewingOutItemToBeUpdated.ContainsKey(finishingInItem.SewingOutItemId)) { sewingOutItemToBeUpdated[finishingInItem.SewingOutItemId] += finishingInItem.Quantity; } else { sewingOutItemToBeUpdated.Add(finishingInItem.SewingOutItemId, finishingInItem.Quantity); } finishingInItem.Remove(); await _garmentFinishingInItemRepository.Update(finishingInItem); }); foreach (var sewingOutItem in sewingOutItemToBeUpdated) { var garmentSewingOutItem = _garmentSewingOutItemRepository.Query.Where(x => x.Identity == sewingOutItem.Key).Select(s => new GarmentSewingOutItem(s)).Single(); garmentSewingOutItem.SetRemainingQuantity(garmentSewingOutItem.RemainingQuantity + sewingOutItem.Value); garmentSewingOutItem.Modify(); await _garmentSewingOutItemRepository.Update(garmentSewingOutItem); } finIn.Remove(); await _garmentFinishingInRepository.Update(finIn); _storage.Save(); return(finIn); }