Ejemplo n.º 1
0
        private void MergeInto(ICollection <IValidationErrorMessage> errors, MergedError mergedErrorToFill)
        {
            foreach (var errorMessage in errors)
            {
                if (errorMessage.Code.EqualsOrdinalIgnoreCase(BuiltInValidationCodes.Member))
                {
                    var memberErrorMessage = (MemberValidationErrorMessage)errorMessage;
                    var memberError        = mergedErrorToFill.GetMemberError(memberErrorMessage.MemberName);
                    MergeInto(memberErrorMessage.Errors, memberError);
                }
                else if (errorMessage.Code.EqualsOrdinalIgnoreCase(BuiltInValidationCodes.Collection))
                {
                    var collectionErrorMessage = (CollectionValidationErrorMessage)errorMessage;

                    foreach (var indexToItemErrorMessage in collectionErrorMessage.Errors)
                    {
                        var itemError = mergedErrorToFill.GetItemError(indexToItemErrorMessage.Key);
                        MergeInto(indexToItemErrorMessage.Value, itemError);
                    }
                } // TODO: Dictionary
                else
                {
                    mergedErrorToFill.Add(errorMessage);
                }
            }
        }
Ejemplo n.º 2
0
        public ICollection <IValidationErrorMessage> Merge(ICollection <IValidationErrorMessage> errors)
        {
            var mergedError = new MergedError();

            MergeInto(errors, mergedError);

            return(mergedError.ToErrorMessages());
        }