Пример #1
0
        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()
            });
        }
Пример #2
0
        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());
        }