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));
        }
Esempio n. 2
0
        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);
        }