public RequiredMedicamentAmountDTO(RequiredMedicamentAmount requiredAmount) { Id = requiredAmount.Id; Amount = requiredAmount.Amount; Pharmacy = requiredAmount.Pharmacy; Medicament = requiredAmount.Medicament; }
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(); } }
private async Task <CreateOrderDTO> CreateOrderDTO(RequiredMedicamentAmount requiredAmount, ProductBalance productInPharmacy) { var warehouse = await Context.Warehouses .Where(w => w.Id == 1) .Include(w => w.Products) .FirstOrDefaultAsync(); var productsToOrder = new TransactionProductDTO { Amount = requiredAmount.Amount - productInPharmacy.Amount, ProductBalanceId = warehouse.GetProductId(productInPharmacy.MedicamentId) }; var orderDto = new CreateOrderDTO { WarehouseId = warehouse.Id, Products = new List <TransactionProductDTO> { productsToOrder } }; return(orderDto); }
private static bool IsRestockRequired(RequiredMedicamentAmount requiredAmount, ProductBalance productInPharmacy) { return(requiredAmount != null && requiredAmount.Amount > productInPharmacy.Amount); }