コード例 #1
0
        /// <summary>
        /// Robert Forbes
        /// 2017/04/13
        ///
        /// Retrieves all routes with assigned dates for today or after
        /// </summary>
        /// <param name="driverId"></param>
        /// <returns></returns>
        public List <Route> RetrieveFutureRoutesForDriver(int?driverId)
        {
            List <Route> routes = new List <Route>();

            try
            {
                List <Route> routesToRemove = new List <Route>();
                //Getting all the routes
                routes = RouteAccessor.RetrieveFutureRoutesForDriver(driverId);
                foreach (Route r in routes)
                {
                    //Getting all the deliveries for each route
                    List <Delivery> deliveriesToRemove = new List <Delivery>();
                    r.Deliveries = DeliveryAccessor.RetrieveDeliveriesForRoute(r.RouteId);
                    foreach (Delivery d in r.Deliveries)
                    {
                        if (d.StatusId == "Delivered")
                        {
                            deliveriesToRemove.Add(d);
                        }
                        //Getting the address for each delivery
                        d.Address = DeliveryAccessor.RetrieveUserAddressForDelivery(d.DeliveryId);
                        //Getting the packages for each delivery
                        d.PackageList = PackageAccessor.RetrieveAllPackagesInDelivery(d.DeliveryId);
                        foreach (Package p in d.PackageList)
                        {
                            //Getting all the lines for each package
                            p.PackageLineList = PackageLineAccessor.RetrievePackageLinesInPackage(p.PackageId);
                            foreach (PackageLine line in p.PackageLineList)
                            {
                                //Getting the name of each product for each package line
                                line.ProductName = ProductAccessor.RetrieveProductNameFromProductLotId(line.ProductLotId);
                            }
                        }
                    }
                    foreach (Delivery d in deliveriesToRemove)
                    {
                        r.Deliveries.Remove(d);
                    }
                    if (r.Deliveries.Count == 0)
                    {
                        routesToRemove.Add(r);
                    }
                }

                foreach (Route r in routesToRemove)
                {
                    routes.Remove(r);
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(routes);
        }
コード例 #2
0
        /// <summary>
        /// Robert Forbes
        ///
        /// Created:
        /// 2017/05/04
        /// </summary>
        /// <returns>A list of all routes in the database</returns>
        public List <Route> RetrieveAllRoutes()
        {
            List <Route> routes = null;

            try
            {
                routes = RouteAccessor.RetrieveAllRoutes();
            }
            catch
            {
                throw new ApplicationException("Failed To Retrieve Routes");
            }

            return(routes);
        }
コード例 #3
0
        /// <summary>
        /// Robert Forbes
        ///
        /// Created:
        /// 2017/05/04
        /// </summary>
        /// <returns>The ID of the newly created route</returns>
        public int CreateRouteAndRetrieveRouteId(Route route)
        {
            int result = 0;

            try
            {
                result = RouteAccessor.CreateRouteAndRetrieveRouteId(route);
            }
            catch
            {
                throw new ApplicationException("Failed To Create Route");
            }

            return(result);
        }
コード例 #4
0
        /// <summary>
        /// Aaron Usher
        /// Created: 2017/05/04
        ///
        /// Assigns a delivery to a random valid route.
        /// so a random one is picked.
        /// </summary>
        /// <param name="deliveryId">The id of the delivery to be updated.</param>
        /// <returns>Whether or not the delivery could be assigned.</returns>
        public bool AssignDeliveryToRoute(int deliveryId)
        {
            bool result = false;

            try
            {
                List <Route> routes = RouteAccessor.RetrieveRoutes();
                if (routes.Count == 0)
                {
                    throw new ApplicationException("Couldn't assign delivery to a route, as no routes exist!");
                }
                Random rand = new Random();
                int    i    = rand.Next(0, routes.Count);
                result = 1 == DeliveryAccessor.AssignDeliveryToRoute(deliveryId, routes[i].RouteId.Value);
            }
            catch (Exception)
            {
                throw;
            }
            return(result);
        }
コード例 #5
0
 public DynamicPageBusiness(RouteAccessor _routeAccessor)
 {
     routeAccessor = _routeAccessor;
 }