public async Task <ActionResult <PagedResponse <List <Thing> > > > GetThing([FromQuery] ThingPaginationFilter filter) { var userId = HttpContext.User .Claims .Where(claim => claim.Type.Equals(ClaimTypes.NameIdentifier)) .First() .Value; if (filter.Owner.HasValue) { if (filter.Owner.Value.ToString() != userId & !HttpContext.User.IsInRole("Admin")) { return(Forbid()); } } var things = Thing.Filter(_context.Thing, new Guid(userId)); (var pagedData, var totalCount) = await filter.Process(things); var pagedReponse = PaginationHelper.CreatePagedReponse( await pagedData.ToListAsync(), filter, totalCount, _uriService, Request ); return(Ok(pagedReponse)); }
protected override async Task OnInitializedAsync() { ThingPaginationFilter paginationFilter = new ThingPaginationFilter(); paginationFilter.Type = ThingType.EnergyMonitor; var result = await IoTSuiteService.GetThings(paginationFilter); things = result.Data; thingsPlaceholder = "Choose a Thing"; await InvokeAsync(StateHasChanged); hubConnection = new HubConnectionBuilder() .WithUrl(UriHelper.ToAbsoluteUri("/Hub/SignalR"), options => { options.AccessTokenProvider = async() => { var tokenResult = await TokenProvider.RequestAccessToken(); if (tokenResult.TryGetToken(out var token)) { return(await Task.FromResult(token.Value)); } else { return(await Task.FromResult(string.Empty)); } };
public async Task <PagedResponse <List <Thing> > > GetThings(ThingPaginationFilter paginationFilter) { try { return(await httpClient.GetFromJsonAsync <PagedResponse <List <Thing> > >($"Things?{paginationFilter.ToQueryString()}", jsonSerializerOptions)); } catch (AccessTokenNotAvailableException exception) { exception.Redirect(); return(null); } }