/// <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);
        }
        /// <summary>
        /// Shows solve validation dialog
        /// </summary>
        /// <param name="invalidObjects"></param>
        protected void _ShowSolveValidationResult(ESRI.ArcLogistics.Data.DataObject[] invalidObjects)
        {
            RoutingSolveValidator validator = new RoutingSolveValidator();

            validator.Validate(invalidObjects);
        }