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