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;
                    }
                }
            }
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        public DeleteOrderResponse DeleteOrder(DeleteOrderRequest request)
        {
            DeleteOrderResponse    response = new DeleteOrderResponse();
            OrderBusinessComponent bc       = DependencyInjectionHelper.GetOrderBusinessComponent();

            bc.DeleteOrder(request.Id);

            return(response);
        }
Exemplo n.º 4
0
        public GetOrderResponse GetOrderById(GetOrderRequest request)
        {
            GetOrderResponse       response = new GetOrderResponse();
            OrderBusinessComponent bc       = DependencyInjectionHelper.GetOrderBusinessComponent();

            response.Order = OrderAdapter.OrderToDto(bc.GetOrderById(request.Id));

            return(response);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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)
        }