예제 #1
0
        protected override async Task <Paging <LogEntryDto> > HandleEx(
            GetLogsQuery query, CancellationToken cancellationToken = default)
        {
            var(logEntries, total) = await _logReadonlyRepository
                                     .GetAsync(d => true, d => d.Id, query.Limit, query.Offset);

            return(new Paging <LogEntryDto>(Mapper.Map <List <LogEntryDto> >(logEntries), query.Limit, query.Offset, total));
        }
 /// <inheritdoc />
 public async Task <PagedList <LogDto> > Handle(GetLogsQuery request, CancellationToken cancellationToken)
 {
     try
     {
         return(await _logService.GetLogs(request.Filter, cancellationToken));
     }
     catch (Exception ex)
     {
         throw new WebSshServiceException(_localizer[LogsConstants.GettingLogsError], ex);
     }
 }
        public async Task <ResponseInfo <List <LogDto> > > Handle(GetLogsQuery request, CancellationToken cancellationToken)
        {
            string path = request.FilePath + "\\Logs\\log" + request.Level + request.Date.ToString("yyyyMMdd") + ".txt";

            ResponseInfo <List <LogDto> > result = new ResponseInfo <List <LogDto> >
            {
                Data = new List <LogDto>()
            };

            if (!File.Exists(path))
            {
                result.ErrorMessage = path + " log dosyası bulunamadı.";
                return(result);
            }

            using (FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read))
            {
                using (StreamReader streamReader = new StreamReader(fileStream, Encoding.UTF8, false))
                {
                    string row = await streamReader.ReadLineAsync();

                    while (row != null)
                    {
                        result.Data.Add(JsonConvert.DeserializeObject <LogDto>(row));

                        row = await streamReader.ReadLineAsync();
                    }
                }
            }

            if (result.Data.Count == 0)
            {
                return(result);
            }

            result.TotalCount = result.Data.Count;

            if (request.Page != 0 && request.PageSize != 0)
            {
                result.Data = result.Data.Skip((request.Page - 1) * request.PageSize).Take(request.PageSize).ToList();
            }

            return(result);
        }
예제 #4
0
        public async Task <IActionResult> GetLogs([FromBody] GetLogsQuery request)
        {
            request.FilePath = Startup.ContentRootPath;

            return(Ok(await _mediator.Send(request)));
        }
예제 #5
0
        public async Task <IEnumerable <GetLogsDTO> > Handle(GetLogsQuery request, CancellationToken cancellationToken)
        {
            var results = await _logRepository.GetLogs();

            return(_mapper.Map <IEnumerable <GetLogsDTO> >(results));
        }