public string ValidateZipCodes(string zipCodes) { if (!string.IsNullOrEmpty(zipCodes)) { var delimeter = ","; var predictedZipCodes = zipCodes.Split(new[] { delimeter }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).ToArray(); var isAllZipValid = predictedZipCodes.All(x => x.Length == 5); if (!isAllZipValid) { return(string.Join(", ", predictedZipCodes.Where(x => x.Length != 5)) + " Zip code(s) are invalid."); } var result = 0; isAllZipValid = predictedZipCodes.All(x => int.TryParse(x, out result)); if (!isAllZipValid) { return(string.Join(", ", predictedZipCodes.Where(x => !int.TryParse(x, out result))) + " Zip code(s) are invalid."); } var existingZipCodes = _zipCodeRepository.GetZipCodesByZipCode(predictedZipCodes); if (existingZipCodes.IsNullOrEmpty()) { return(string.Join(", ", predictedZipCodes) + " Zip code(s) are invalid."); } var notVaidZipList = predictedZipCodes.Except(existingZipCodes.Select(x => x.Zip).Distinct()); if (notVaidZipList.Any()) { return(string.Join(", ", notVaidZipList) + " Zip code(s) are invalid."); } } return(string.Empty); }