public BlacklistQueryResult Search(SearchPersonBlacklistRequest model) { Establish.For(model, nameof(model)).IsNotNull() .Property(x => x.Name, nameof(model.Name), e => e.IsNotNullOrEmpty()) .Property(x => x.CountryCode, nameof(model.CountryCode), e => e.IsNotNullOrEmpty().HasExactLength(2)); // name and country are manditory var query = new DplSearch(); query.AddClause(DplFields.Name, DplSearchMatchType.Similar, model.Name); query.AddClause(DplFields.CountryCode, DplSearchMatchType.Exact, model.CountryCode); if (!string.IsNullOrEmpty(model.City)) { query.AddClause(DplFields.City, DplSearchMatchType.Exact, model.City); } if (!string.IsNullOrEmpty(model.Email)) { query.AddClause(DplFields.Notes, DplSearchMatchType.Contains, model.Email); } if (!string.IsNullOrEmpty(model.StateCode)) { query.AddClause(DplFields.StateCode, DplSearchMatchType.Exact, model.StateCode); } var dplResult = CSDenialService.SearchDpl(query); var result = new BlacklistQueryResult(dplResult.Hits.Select(x => x.Id)); return(result); }
public IActionResult SearchPerson([HttpTrigger(AuthorizationLevel.Function, "post", Route = "search/person")] SearchPersonBlacklistRequest model, ILogger logger) { try { var result = BlacklistManager.Search(model); return(new OkObjectResult(result)); } catch (Exception ex) { return(new BadRequestObjectResult(new ExceptionResult(ex))); } }