示例#1
0
        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);
            }
        }