コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }