public async Task <IActionResult> Result([FromRoute(Name = "id")] string searchToken) { try { if ((_identitySubsystem.IdentityServiceCapabilities & IdentityServiceCapabilities.Results) == 0) { return(NotImplemented()); } var result = await _identitySubsystemAsync.Response(searchToken); switch (result.StatusCode) { case IdentityStatusCode.Success: return(Ok(result.Data)); case IdentityStatusCode.Incomplete: Response.GetTypedHeaders().Location = new Uri(Request.GetDisplayUrl()); return(Ok(result.Data)); case IdentityStatusCode.NotFound: return(NotFound("No identity search matching the provided search token was found.")); case IdentityStatusCode.InvalidProperties: return(StatusCode((int)HttpStatusCode.BadGateway, InvalidServerResponse + "Invalid Properties")); default: return(StatusCode((int)HttpStatusCode.BadGateway, InvalidServerResponse + "Unknown")); } } catch (Exception ex) { return(StatusCode((int)HttpStatusCode.BadGateway, ex)); } }
public async Task <HttpResponseMessage> Result([FromUri(Name = "id")] string searchToken) { try { if ((_identitySubsystem.IdentityServiceCapabilities & IdentityServiceCapabilities.Results) == 0) { return(NotImplemented()); } var result = await _identitySubsystemAsync.Response(searchToken); switch (result.StatusCode) { case IdentityStatusCode.Success: return(Request.CreateResponse(HttpStatusCode.OK, result.Data)); case IdentityStatusCode.Incomplete: var response = Request.CreateResponse(HttpStatusCode.OK, result.Data); response.Headers.Location = Request.RequestUri; return(response); case IdentityStatusCode.NotFound: return(Request.CreateErrorResponse( HttpStatusCode.NotFound, "No identity search matching the provided search token was found.")); case IdentityStatusCode.InvalidProperties: return(Request.CreateErrorResponse(HttpStatusCode.BadGateway, InvalidServerResponse + "Invalid Properties")); default: return(Request.CreateErrorResponse(HttpStatusCode.BadGateway, InvalidServerResponse + "Unknown")); } } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.BadGateway, ex)); } }