Beispiel #1
0
        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
            });
        }
Beispiel #2
0
 public async Task <IActionResult> GetDeviceStatusHistory([FromQuery] GetDeviceStatusHistoryQuery query)
 {
     return(Ok(await _mediator.Send(query)));
 }