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); }
/// <summary> /// Method checks params of routing operation and show warning message with details if parameters are invalid /// </summary> /// <param name="schedule"></param> /// <param name="orders"></param> /// <param name="routes"></param> /// <returns></returns> private bool _CheckRoutingParams(Schedule schedule, ICollection <Order> orders, ICollection <Route> routes) { bool isValid = false; List <DataObject> invalidObjects = new List <DataObject>(); invalidObjects.AddRange(RoutingCmdHelpers.ValidateObjects <Order>(orders)); invalidObjects.AddRange(RoutingCmdHelpers.ValidateObjects <Route>(routes)); if (invalidObjects.Count > 0) { RoutingSolveValidator validator = new RoutingSolveValidator(); ICollection <MessageDetail> details = validator.GetValidateMessageDetail(invalidObjects.ToArray()); string invalidOperationTitle = ((string)App.Current.FindResource("SolveValidationOperationInvalid")); App.Current.Messenger.AddMessage(MessageType.Error, invalidOperationTitle, details); } else { isValid = true; } return(isValid); }