public void GetEstimatedDeliveryTime(int productId, out int unitsAvailable, out int estimatedDeliveryTimeInDays) { OrderBusinessComponent orderBC = DependencyInjectionHelper.GetOrderBusinessComponent(); SupplierBusinessComponent supplierBC = DependencyInjectionHelper.GetSupplierBusinessComponent(); Product product = rep.GetById(productId); int unitsOrdered = orderBC.GetAllOrderDetails() .Where(od => od.Product.ProductId == product.ProductId) .Sum(od => od.QuantityInUnits); unitsAvailable = product.UnitsOnStock - unitsOrdered; if ((unitsAvailable) < 0) { unitsAvailable = 0; } estimatedDeliveryTimeInDays = -1; IQueryable <Supplier> defaultSuppliers = supplierBC.GetSuppliersByCriteria(SupplierSearchType.None, null, 0); foreach (Supplier supplier in defaultSuppliers) { if (supplier.ActiveFlag && supplier.PreferredSupplierFlag) { Supplier supplierWithCondition = supplierBC.GetSupplierById(supplier.SupplierId); SupplierProduct supProd = supplierWithCondition.SupplierProduct.FirstOrDefault(c => c.Product.ProductId == productId); if (supProd != null) { estimatedDeliveryTimeInDays = supProd.AverageLeadTimeInDays; return; } } } }
public void OrderShippedNotification(OrderShippedDTO order) { OrderBusinessComponent bc = DependencyInjectionHelper.GetOrderBusinessComponent(); bc.SetOrderShipped(order.Id, order.ShippedDate); Console.WriteLine(string.Format("Status of Order with ID {0} updated!", order.Id)); }
public DeleteOrderResponse DeleteOrder(DeleteOrderRequest request) { DeleteOrderResponse response = new DeleteOrderResponse(); OrderBusinessComponent bc = DependencyInjectionHelper.GetOrderBusinessComponent(); bc.DeleteOrder(request.Id); return(response); }
public GetOrderResponse GetOrderById(GetOrderRequest request) { GetOrderResponse response = new GetOrderResponse(); OrderBusinessComponent bc = DependencyInjectionHelper.GetOrderBusinessComponent(); response.Order = OrderAdapter.OrderToDto(bc.GetOrderById(request.Id)); return(response); }
public GetOrdersResponse GetOrdersByCriteria(GetOrdersRequest request) { GetOrdersResponse response = new GetOrdersResponse(); OrderBusinessComponent bc = DependencyInjectionHelper.GetOrderBusinessComponent(); IQueryable <Order> orders = bc.GetOrdersByCriteria(request.SearchType, request.CustomerId); response.Orders = OrderAdapter.OrdersToListDtos(orders); return(response); }
public StoreOrderResponse StoreOrder(StoreOrderRequest request) { StoreOrderResponse response = new StoreOrderResponse(); OrderBusinessComponent bc = DependencyInjectionHelper.GetOrderBusinessComponent(); Order order = OrderAdapter.DtoToOrder(request.Order); IEnumerable <ChangeItem> changeItems = OrderAdapter.GetChangeItems(request.Order, order); response.Id = bc.StoreOrder(order, changeItems); return(response); }
public GetOrderResponse GetOrderById(GetOrderRequest request) { if (!HttpContext.Current.User.Identity.IsAuthenticated) { throw new FaultException <NotAuthenticatedFault>(new NotAuthenticatedFault()); } GetOrderResponse response = new GetOrderResponse(); OrderBusinessComponent bc = DependencyInjectionHelper.GetOrderBusinessComponent(); response.Order = OrderAdapter.OrderToDto(bc.GetOrderById(request.Id)); return(response); }
public GetOrdersResponse GetOrdersByCriteria(GetOrdersRequest request) { if (!HttpContext.Current.User.Identity.IsAuthenticated) { throw new FaultException <NotAuthenticatedFault>(new NotAuthenticatedFault()); } GetOrdersResponse response = new GetOrdersResponse(); OrderBusinessComponent bc = DependencyInjectionHelper.GetOrderBusinessComponent(); IQueryable <Order> orders = bc.GetOrdersByCriteria(request.SearchType, request.CustomerId); response.Orders = OrderAdapter.OrdersToListDtos(orders); return(response);; }
public void GetEstimatedDeliveryTime(int productId, out int unitsAvailable, out int estimatedDeliveryTimeInDays) { OrderBusinessComponent orderBC = DependencyInjectionHelper.GetOrderBusinessComponent(); Product product = this.repository.GetById(productId); int unitsOrdered = orderBC.GetAllOrderDetails().Where(od => od.Product.ProductId == product.ProductId).Sum(od => od.QuantityInUnits); unitsAvailable = product.UnitsOnStock - unitsOrdered; if ((unitsAvailable) < 0) { unitsAvailable = 0; } estimatedDeliveryTimeInDays = -1; // Todo: Implement the logic to calculate the estimatedDelivertyTimeInDays (see SupplierCondition) }