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);
        }