Exemplo n.º 1
0
        private async Task Restock(Pharmacy pharmacy, RequiredMedicamentAmount requiredAmount,
                                   ProductBalance productInPharmacy)
        {
            var orderDto = await CreateOrderDTO(requiredAmount, productInPharmacy);

            try
            {
                await _ordersManager.TryCreateOrder(orderDto, pharmacy.Id);
            }
            catch (DuplicateObjectException ex)
            {
                var order = await Context.Orders
                            .Where(o => o.Id == ex.Id)
                            .Include(o => o.OrderProductBalances)
                            .ThenInclude(opb => opb.ProductBalance)
                            .FirstOrDefaultAsync();

                order.UpdateFromDTO(await _ordersManager.CreateProductBalanceList(orderDto.Products));
                await Context.SaveChangesAsync();
            }
        }