protected override async Task <EntityPagedResult <LogEventModel> > Process(LogEventQuery request, CancellationToken cancellationToken) { int page = request.Page == 0 ? 1 : request.Page; int pageSize = request.PageSize == 0 ? 100 : request.PageSize; int offset = Math.Max(pageSize * (page - 1), 0); long total = 0; var rows = await _dataSession .StoredProcedure("[Log].[SearchLogs]") .Parameter("@Date", request.Date) .Parameter("@Level", request.Level) .Parameter("@Search", request.Search) .Parameter("@Offset", offset) .Parameter("@Size", pageSize) .ParameterOut("@Total", (Action <long>)(v => total = v)) .QueryAsync(r => { return(new LogEventModel { TimeStamp = r.GetDateTime("TimeStamp"), Level = r.GetString("Level"), Message = r.GetString("Message"), Exception = r.GetString("Exception"), Properties = GetJson(r, "LogEvent") }); }); return(new EntityPagedResult <LogEventModel> { Total = total, Data = rows.ToList() }); }
public async Task <IActionResult> OnGetAsync() { var query = new LogEventQuery(User) { Date = Date.Date, Level = Level.IsNullOrWhiteSpace() ? null : Level, Search = Query.IsNullOrWhiteSpace() ? null : $"%{Query}%", Page = PageNumber, PageSize = PageSize }; var result = await Mediator.Send(query); Total = result.Total; Logs = result.Data ?? new List <LogEventModel>(); return(Page()); }