protected bool _CheckRoutingParams(Schedule schedule, ICollection <Route> routes, ICollection <Order> orders)
        {
            bool isValid = false;

            // check orders count
            if (orders.Count < 1)
            {
                App.Current.Messenger.AddError((string)App.Current.FindResource("Error_InvalidOrdersNum"));
            }
            // check routes count
            else if (routes.Count < 1)
            {
                App.Current.Messenger.AddError((string)App.Current.FindResource("Error_InvalidRoutesNum"));
            }
            // validate objects
            else
            {
                List <DataObject> invalidObjects = new List <DataObject>();
                invalidObjects.AddRange(RoutingCmdHelpers.ValidateObjects <Order>(orders));
                invalidObjects.AddRange(RoutingCmdHelpers.ValidateObjects <Route>(routes));
                if (invalidObjects.Count > 0)
                {
                    _ShowSolveValidationResult(invalidObjects.ToArray());
                }
                else
                {
                    isValid = true;
                }
            }

            return((isValid) ? ConstraintViolationsChecker.Check(schedule, routes, orders) : false);
        }
示例#2
0
        /// <summary>
        /// Gets build routes operation parameters for the specified schedule.
        /// </summary>
        /// <param name="schedule">The schedule to get build routes operation
        /// parameters for.</param>
        /// <returns>Build routes operation parameters.</returns>
        private BuildRoutesParameters _GetBuildRoutesParameters(Schedule schedule)
        {
            var routes = ViolationsHelper.GetBuildRoutes(schedule);

            // get orders planned on schedule's date
            var day = (DateTime)schedule.PlannedDate;

            var orders =
                from order in App.Current.Project.Orders.Search(day)
                where !ConstraintViolationsChecker.IsOrderRouteLocked(order, schedule)
                select order;

            var parameters = new BuildRoutesParameters()
            {
                TargetRoutes   = routes,
                OrdersToAssign = orders.ToList()
            };

            return(parameters);
        }