private bool ValidateClaimMapping(string incomingClaimType, string incomingValue, Role role, string organization, ClaimMappingRepository repository) { bool valid = true; if (string.IsNullOrEmpty(incomingClaimType)) { this.ViewData.ModelState.AddModelError("IncomingClaimType", @"The Incoming Claim Type field is required."); valid = false; } if (string.IsNullOrEmpty(incomingValue)) { this.ViewData.ModelState.AddModelError("IncomingValue", @"The Incoming Value field is required."); this.ModelState.SetModelValue("IncomingValue", new ValueProviderResult(this.ValueProvider.GetValue("IncomingValue") != null ? this.ValueProvider.GetValue("IncomingValue").AttemptedValue : string.Empty, string.Empty, CultureInfo.CurrentCulture)); valid = false; } if (role == null) { this.ViewData.ModelState.AddModelError("RoleRequired", @"The OutputRole field is required."); valid = false; } else { var existingMapping = repository.GetClaimMapping(incomingClaimType, incomingValue, role, organization); if (existingMapping != null) { this.ViewData.ModelState.AddModelError("DuplicatedMapping", @"A Claim Mapping already exists for this parameters."); valid = false; } } return(valid); }