示例#1
0
        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));
            }
        }