public async Task <IEnumerable <string> > ValidateContract(Country country) { var errorMessages = new List <string>(); if (string.IsNullOrWhiteSpace(country.FullName)) { errorMessages.Add(ErrorMessages.CountryNameMissing); } if (string.IsNullOrWhiteSpace(country.Alpha2Code)) { errorMessages.Add(ErrorMessages.CountryAbbreviationMissing); } var matchingCountries = await CountriesDal.GetMatchingCountries(Mapper.Map <CountryDto>(country)); if (matchingCountries.Any()) { if (!string.IsNullOrWhiteSpace(country.FullName) && matchingCountries.Any(c => !string.IsNullOrWhiteSpace(c.FullName) && c.FullName.Equals(country.FullName, StringComparison.OrdinalIgnoreCase))) { errorMessages.Add(ErrorMessages.NonUniqueCountryName); } if (!string.IsNullOrWhiteSpace(country.Alpha2Code) && matchingCountries.Any(c => !string.IsNullOrWhiteSpace(c.Alpha2Code) && c.Alpha2Code.Equals(country.Alpha2Code, StringComparison.OrdinalIgnoreCase))) { errorMessages.Add(ErrorMessages.NonUniqueCountryAbbreviation); } } return(errorMessages); }
public async Task <IEnumerable <string> > ValidateContract(CountrySubdivision contract) { var errorMessages = new List <string>(); if (string.IsNullOrWhiteSpace(contract.Name)) { errorMessages.Add(ErrorMessages.CountrySubdivisionNameMissing); } var country = await CountriesDal.Read(contract.CountryId); if (country == null) { errorMessages.Add(ErrorMessages.InvalidCountryId); } if (contract.ParentCountrySubdivisionId.HasValue) { var parentCountrySubdivision = await CountrySubdivisionsDal.Read(contract.ParentCountrySubdivisionId.Value); if (parentCountrySubdivision == null) { errorMessages.Add(ErrorMessages.InvalidParentCountrySubdivisionId); } else if (parentCountrySubdivision.CountryId != contract.CountryId) { errorMessages.Add(ErrorMessages.MismatchedParentCountrySubdivisionId); } } var matchingCountrySubdivisions = await CountrySubdivisionsDal.GetMatchingCountrySubdivisions(Mapper.Map <CountrySubdivisionDto>(contract)); if (matchingCountrySubdivisions.Any()) { if (!string.IsNullOrWhiteSpace(contract.Name) && matchingCountrySubdivisions.Any(c => !string.IsNullOrWhiteSpace(c.Name) && c.Name.Equals(contract.Name, StringComparison.OrdinalIgnoreCase))) { errorMessages.Add(ErrorMessages.NonUniqueCountrySubdivisionName); } if (!string.IsNullOrWhiteSpace(contract.Abbreviation) && matchingCountrySubdivisions.Any(c => !string.IsNullOrWhiteSpace(c.Abbreviation) && c.Abbreviation.Equals(contract.Abbreviation, StringComparison.OrdinalIgnoreCase))) { errorMessages.Add(ErrorMessages.NonUniqueCountrySubdivisionAbbreviation); } } return(errorMessages); }