public async Task <HttpResponseMessage> Search([FromBody] IdentitySearchRequest[] criteria) { try { if ((_identitySubsystemAsync.IdentityServiceCapabilities & IdentityServiceCapabilities.Search) != 0) { var result = await _identitySubsystemAsync.Search(criteria); switch (result.StatusCode) { case IdentityStatusCode.Success: var response = Request.CreateResponse(HttpStatusCode.Accepted); var route = Url.Link( "IdentitiesSearchResult", new { id = result.Data }); response.Headers.Location = new Uri(route); return(response); case IdentityStatusCode.Incomplete: return(Request.CreateErrorResponse(HttpStatusCode.BadGateway, InvalidServerResponse + "Incomplete")); case IdentityStatusCode.InvalidProperties: return(Request.CreateErrorResponse(HttpStatusCode.BadGateway, InvalidServerResponse + "Invalid Properties")); case IdentityStatusCode.NotFound: return(Request.CreateErrorResponse(HttpStatusCode.BadGateway, InvalidServerResponse + "Not Found")); default: return(Request.CreateErrorResponse(HttpStatusCode.BadGateway, InvalidServerResponse + "Unknown")); } } if ((_identitySubsystem.IdentityServiceCapabilities & IdentityServiceCapabilities.Search) != 0) { var result = await _identitySubsystem.Search(criteria); var response = Request.CreateResponse(HttpStatusCode.OK, result.Data); return(response); } return(NotImplemented()); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.BadGateway, ex)); } }
public async Task <IActionResult> Search([FromBody] IdentitySearchRequest[] criteria) { try { if ((_identitySubsystemAsync.IdentityServiceCapabilities & IdentityServiceCapabilities.Search) != 0) { var result = await _identitySubsystemAsync.Search(criteria); switch (result.StatusCode) { case IdentityStatusCode.Success: var route = Url.Link("IdentitiesSearchResult", new { id = result.Data }); return(Accepted(route)); case IdentityStatusCode.Incomplete: return(StatusCode((int)HttpStatusCode.BadGateway, InvalidServerResponse + "Incomplete")); case IdentityStatusCode.InvalidProperties: return(StatusCode((int)HttpStatusCode.BadGateway, InvalidServerResponse + "Invalid Properties")); case IdentityStatusCode.NotFound: return(NotFound(InvalidServerResponse + "Not Found")); default: return(StatusCode((int)HttpStatusCode.BadGateway, InvalidServerResponse + "Unknown")); } } if ((_identitySubsystem.IdentityServiceCapabilities & IdentityServiceCapabilities.Search) != 0) { return(Ok((await _identitySubsystem.Search(criteria)).Data)); } return(NotImplemented()); } catch (Exception ex) { return(StatusCode((int)HttpStatusCode.BadGateway, ex)); } }