public async Task <IActionResult> Search([FromBody] SearchScopesRequest request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } var parameter = request.ToSearchScopesParameter(); var result = await _scopeActions.Search(parameter); return(new OkObjectResult(result.ToDto())); }
/// <inheritdoc /> public async Task <PagedResult <Scope> > Search(SearchScopesRequest parameter, CancellationToken cancellationToken = default) { await using var session = this._sessionFactory(); var results = await session.Query <Scope>() .Where(x => x.Name.IsOneOf(parameter.ScopeNames) && x.Type.IsOneOf(parameter.ScopeTypes)) .ToPagedListAsync(parameter.StartIndex + 1, parameter.NbResults, cancellationToken) .ConfigureAwait(false); return(new PagedResult <Scope> { Content = results.ToArray(), StartIndex = parameter.StartIndex, TotalResults = results.TotalItemCount }); }
public static SearchScopesParameter ToSearchScopesParameter(this SearchScopesRequest parameter) { if (parameter == null) { throw new ArgumentNullException(nameof(parameter)); } return(new SearchScopesParameter { Count = parameter.NbResults, ScopeNames = parameter.ScopeNames, StartIndex = parameter.StartIndex, Types = parameter.ScopeTypes, Order = parameter.Order == null ? null : parameter.Order.ToParameter() }); }
public async Task <PagedResult <ScopeResponse> > ExecuteAsync(Uri clientsUri, SearchScopesRequest parameter, string authorizationHeaderValue = null) { if (clientsUri == null) { throw new ArgumentNullException(nameof(clientsUri)); } var httpClient = _httpClientFactory.GetHttpClient(); var serializedPostPermission = JsonConvert.SerializeObject(parameter); var body = new StringContent(serializedPostPermission, Encoding.UTF8, "application/json"); var request = new HttpRequestMessage { Method = HttpMethod.Post, RequestUri = clientsUri, Content = body }; if (!string.IsNullOrWhiteSpace(authorizationHeaderValue)) { request.Headers.Add("Authorization", "Bearer " + authorizationHeaderValue); } var httpResult = await httpClient.SendAsync(request); var content = await httpResult.Content.ReadAsStringAsync().ConfigureAwait(false); var rec = JObject.Parse(content); try { httpResult.EnsureSuccessStatusCode(); } catch (Exception) { return(new PagedResult <ScopeResponse> { ContainsError = true, Error = JsonConvert.DeserializeObject <ErrorResponse>(content), HttpStatus = httpResult.StatusCode }); } return(new PagedResult <ScopeResponse> { Content = JsonConvert.DeserializeObject <PagedResponse <ScopeResponse> >(content) }); }
public async Task <PagedResult <ScopeResponse> > ResolveSearch(Uri wellKnownConfigurationUri, SearchScopesRequest searchScopesParameter, string authorizationHeaderValue = null) { var configuration = await _configurationClient.GetConfiguration(wellKnownConfigurationUri).ConfigureAwait(false); return(await _searchScopesOperation.ExecuteAsync(new Uri(configuration.Content.ScopesEndpoint + "/.search"), searchScopesParameter, authorizationHeaderValue).ConfigureAwait(false)); }