public async Task <PaginationResult <DeviceStatusHistoryVm> > Handle(GetDeviceStatusHistoryQuery request, CancellationToken cancellationToken) { var query = _applicationDbContext.DeviceStatuses .Where(x => x.Device.DeviceId == request.DeviceId) .Where(x => !x.Device.IsDeleted); int count = await query.CountAsync(cancellationToken); var result = await query .OrderByDescending(x => x.Timestamp) .AddPagination(request.PageNumber, request.PageSize) .Select(x => new DeviceStatusHistoryVm { GatewayIp = x.GatewayIp, FreeHeapMemory = x.FreeHeapMemory, Rssi = x.Rssi, Ip = x.Ip, Ssid = x.Ssid, Timestamp = x.Timestamp, DeviceId = x.Device.DeviceId }) .ToListAsync(cancellationToken); return(new PaginationResult <DeviceStatusHistoryVm> { PageSize = result.Count, PageNumber = request.PageNumber, ResultTotalCount = count, Result = result }); }
public async Task <IActionResult> GetDeviceStatusHistory([FromQuery] GetDeviceStatusHistoryQuery query) { return(Ok(await _mediator.Send(query))); }