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); } } }
public ICollection <IValidationErrorMessage> Merge(ICollection <IValidationErrorMessage> errors) { var mergedError = new MergedError(); MergeInto(errors, mergedError); return(mergedError.ToErrorMessages()); }