Exemplo n.º 1
0
        public static void GetComplexListItemValidationErrors(
            ManagedItemValidationType validationType,
            Dictionary<string /* Term Name */, List<string> /* Error Messages */ > allTermTypeErrors,
            Business.ComplexListItem item,
            List<string> validationResultsAllTermAlert,
            bool includeTab,
            int itemIndex,
            bool includeName,
            string currentStatus,
            string complexListName)
        {
            string tabMessage = GetTabMessage(complexListName, itemIndex);

            foreach (ComplexListItemValue itemValue in item.ItemValues)
            {
                Term term = itemValue.Term;
                string termName = itemValue.FieldName;
                term.ReportName = termName;
                term.Runtime.Clear(true, term.Required ?? false);
                //Note - It is expected that 'itemValue.FieldFilterTerm.Runtime.Clear' has been called prior to this method...
                string testValueError = term.TestValue(termName, tabMessage, itemValue.FieldValue);
                term.SetValue(itemValue.FieldValue);

                List<string> validationResultsTermAlert = new List<string>();
                List<string> termValidate = term.Validate(includeTab, tabMessage);

                if (!string.IsNullOrEmpty(testValueError))
                {
                    if (!termValidate.Contains(testValueError))
                        termValidate.Add(testValueError);
                }

                if (validationType == ManagedItemValidationType.FullValidation || (validationType == ManagedItemValidationType.ValidateOnSave && term.ValidationStatuses.Contains(currentStatus)))
                {
                    if (termValidate.Count > 0)
                    {
                        itemValue.FieldFilterTerm.Runtime.HasError = true;
                        if (termValidate.Count > 1)
                            itemValue.FieldFilterTerm.Runtime.ErrorMessage = string.Join("\\n", termValidate.ToArray());
                        else
                            itemValue.FieldFilterTerm.Runtime.ErrorMessage = termValidate[0];
                        validationResultsTermAlert.AddRange(termValidate);
                    }
                }
                ConsolidateErrors(termName, allTermTypeErrors, validationResultsTermAlert, validationResultsAllTermAlert);
            }
        }
        /// <summary>
        /// Gets the validation errors.
        /// </summary>
        /// <param name="fullValidation">if set to <c>true</c> [full validation].
        /// True when changing state to a state that requires validation
        /// False otherwise (on a Save)
        /// </param>
        /// <returns>List of validation errors</returns>
        /// Created by Larry Richardson LRR 4/14/2008
        protected List<string> GetValidationErrors(ManagedItemValidationType validationType,
            Dictionary<string /* Term Name */, List<string> /* Error Messages */ > allTermTypeErrors,
            Dictionary<Guid /*TermGroupID*/, bool /*CanEdit*/> canEditTermGroup)
        {
            List<string> validationResultsAllTermAlert = new List<string>();

            bool includeTab = _managedItem.SecurityModel == SecurityModel.Advanced;

            foreach (Term term in _managedItem.BasicTerms)
            {
                if (!canEditTermGroup[term.TermGroupID])
                    continue;

                List<string> validationResultsTermAlert = new List<string>();
                List<string> validationResultsTermHover = new List<string>();

                switch (validationType)
                {
                    case ManagedItemValidationType.ValidateOnSave:
                        if (term.ValidationStatuses.Contains(_managedItem.State.Status))
                        {
                            if (term.Runtime.Enabled)
                            {
                                validationResultsTermAlert = term.Validate(includeTab, null);
                                validationResultsTermHover = includeTab ? term.Validate(false, null) : validationResultsTermAlert;
                            }
                        }
                        break;

                    case ManagedItemValidationType.FullValidation:
                        if (term.Runtime.Enabled)
                        {
                            validationResultsTermAlert = term.Validate(includeTab, null);
                            validationResultsTermHover = includeTab ? term.Validate(false, null) : validationResultsTermAlert;
                        }
                        break;

                    case ManagedItemValidationType.None:
                    default:
                        break;
                }

                List<string> termTypeErrors = null;
                if (allTermTypeErrors != null && allTermTypeErrors.ContainsKey(term.Name))
                    termTypeErrors = allTermTypeErrors[term.Name];
                if (termTypeErrors != null && termTypeErrors.Count > 0)
                {
                    if (validationResultsTermAlert == null)
                        validationResultsTermAlert = new List<string>();
                    foreach (string sMessage in termTypeErrors)
                    {
                        if (!validationResultsTermAlert.Contains(sMessage))
                            validationResultsTermAlert.Add(sMessage);
                    }
                }

                if (validationResultsTermAlert != null)
                {
                    validationResultsAllTermAlert.AddRange(validationResultsTermAlert);
                    term.Runtime.HasError = (validationResultsTermAlert.Count > 0);
                    System.Text.StringBuilder sbMsg = new System.Text.StringBuilder();
                    foreach (string msg in validationResultsTermHover)
                    {
                        sbMsg.Append(msg);
                        sbMsg.Append(@"\n");
                    }
                    term.Runtime.ErrorMessage = sbMsg.ToString();
                }
                else
                {
                    term.Runtime.HasError = false;
                    term.Runtime.ErrorMessage = string.Empty;
                }
            }

            return validationResultsAllTermAlert;
        }
Exemplo n.º 3
0
        public static List<string> GetComplexListValidationErrors(
            Dictionary<Guid /*TermGroupID*/, bool /*CanEdit*/> canEditTermGroup,
            ManagedItemValidationType validationType,
            Dictionary<string /* Term Name */, List<string> /* Error Messages */ > allTermTypeErrors,
            List<Business.ComplexListItem> items,
            bool includeName,
            Business.SecurityModel securityModel,
            string currentStatus,
            Guid? termGroupID,
            string complexListName)
        {
            List<string> validationResultsAllTermAlert = new List<string>();

            if (canEditTermGroup == null || (termGroupID.HasValue && canEditTermGroup[termGroupID.Value]))
            {
                bool includeTab = securityModel == SecurityModel.Advanced;
                for (int itemIndex = 0; itemIndex < items.Count; itemIndex++)
                {
                    GetComplexListItemValidationErrors(validationType, allTermTypeErrors, items[itemIndex], validationResultsAllTermAlert, includeTab, itemIndex, includeName, currentStatus, complexListName);
                }
            }
            return validationResultsAllTermAlert;
        }