public bool DoTheTransfer(string TransferId) { ShopService ShopS = new ShopService(); WarehouseService WarehouseS = new WarehouseService(); TransferRequest TargetedRequest = GetTransferRequest(TransferId); if (TargetedRequest == null) { return(false); } if (!WarehouseS.WarehouseExists(TargetedRequest.StorageId) || !ShopS.ShopExists(TargetedRequest.ShopId)) { return(false); } if (!TargetedRequest.ProductList.All(SingleProduct => WarehouseS.CheckProductQuantity(TargetedRequest.StorageId, SingleProduct.ProductId, SingleProduct.ProductQuantity))) { return(false); } foreach (ProductListElement SingleProduct in TargetedRequest.ProductList) { WarehouseS.DeleteProduct(TargetedRequest.StorageId, SingleProduct.ProductId, SingleProduct.ProductQuantity); ShopS.AddProduct(TargetedRequest.ShopId, SingleProduct.ProductId, SingleProduct.ProductQuantity); } try { TargetedRequest.State = StateEnum.Delivered; UpdateDefinition <TransferRequest> UpdateTransferRequest = Builders <TransferRequest> .Update .Set("State", TargetedRequest.State); _transferRequestCollection.UpdateOne(Builders <TransferRequest> .Filter.Eq("Id", TargetedRequest.Id), UpdateTransferRequest); return(true); } catch { return(false); } }
public bool ProcessOrder(string OrderId) { WarehouseService WarehouseS = new WarehouseService(); Order TargetedOrder = GetOrder(OrderId); if (TargetedOrder == null) { return(false); } if (!WarehouseS.WarehouseExists(TargetedOrder.StorageId)) { return(false); } if (!TargetedOrder.ProductList.All(SingleProduct => WarehouseS.CheckProductQuantity(TargetedOrder.StorageId, SingleProduct.ProductId, SingleProduct.ProductQuantity))) { return(false); } foreach (ProductListElement SingleProduct in TargetedOrder.ProductList) { WarehouseS.DeleteProduct(TargetedOrder.StorageId, SingleProduct.ProductId, SingleProduct.ProductQuantity); } try { TargetedOrder.State = StateEnum.Shipped; UpdateDefinition <Order> UpdateOrderRequest = Builders <Order> .Update .Set("State", TargetedOrder.State); _orderCollection.UpdateOne(Builders <Order> .Filter.Eq("Id", TargetedOrder.Id), UpdateOrderRequest); return(true); } catch { return(false); } }