コード例 #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>
        /// Aaron Usher
        /// Created: 2017/02/17
        ///
        /// Retrieves every delivery from the database.
        /// </summary>
        /// <remarks>
        /// Robert Forbes
        ///
        /// Updated:
        /// 2017/05/05
        ///
        /// Now pulls address for each delivery
        /// </remarks>
        /// <returns>The deliveries.</returns>
        public List <Delivery> RetrieveDeliveries()
        {
            var list = new List <Delivery>();

            try
            {
                list = DeliveryAccessor.RetrieveDeliveries();
                foreach (var d in list)
                {
                    d.Address = DeliveryAccessor.RetrieveUserAddressForDelivery(d.DeliveryId);
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(list);
        }