public static bool Validate(List <Tuple <string, string, ValidationType> > input, ref ObservableDictionary <string, string> errors) { errors.Clear(); bool ok = true; foreach (var pair in input) { var res = Validate(pair.Item1, pair.Item3); if (!res.Equals(ValidationStatus.Ok)) { FillErrors(res, pair.Item2, pair.Item3, ref errors); ok = false; } } return(ok); }
/// <summary> /// Sets error messages into observable dictionary. /// </summary> /// <param name="status">Result of validation</param> /// <param name="errors">Dictionary containing error messages.</param> private static void FillErrors(ValidationStatus status, string key, ValidationType type, ref ObservableDictionary <string, string> errors) { if (status.Equals(ValidationStatus.Ok)) { return; } if (status.HasFlag(ValidationStatus.Empty)) { errors[key] = Constants.FieldIsRequired; } else if (status.HasFlag(ValidationStatus.LoginInvalid)) { errors[key] = Constants.LoginInvalid; } else if (status.HasFlag(ValidationStatus.PasswordShort)) { errors[key] = Constants.PasswordShort; } else if (status.HasFlag(ValidationStatus.PhoneInvalid)) { errors[key] = Constants.PhoneInvalid; } else if (status.HasFlag(ValidationStatus.EmailInvalid)) { errors[key] = Constants.EmailInvalid; } else if (status.HasFlag(ValidationStatus.VkLinkInvalid)) { errors[key] = Constants.VkLinkInvalid; } else if (status.HasFlag(ValidationStatus.CategoryInvalid)) { errors[key] = Constants.CategoryEmpty; } }