public IActionResult GetLocalLogsAsync([FromQuery] HealthCheckLocalLogFileFilterViewModel filter) { if (filter == null) { filter = new HealthCheckLocalLogFileFilterViewModel { Page = 0, ItensPerPage = 10 } } ; if (filter.ItensPerPage < 1 || filter.ItensPerPage > 10) { filter.ItensPerPage = 10; } if (filter.Page < 0) { filter.Page = 0; } var dir = new System.IO.DirectoryInfo(logOptions.DirectoryToLogErrorsOnFail); if (!dir.Exists) { return(GetIActionResult(new Result().SetBusinessMessage("Log directory not found."))); } System.IO.FileInfo[] files = dir.GetFiles(); if (files == null || files.Length == 0) { return(GetIActionResult(new Result <PagedList <HealthCheckLocalLogFileViewModel> > { Value = new PagedList <HealthCheckLocalLogFileViewModel>(new List <HealthCheckLocalLogFileViewModel>(), filter.Page, 0, filter.ItensPerPage) })); } var pagging = new PaggingCalculation(filter.Page, files.Length, filter.ItensPerPage); var result = new Result <PagedList <HealthCheckLocalLogFileViewModel> > { Value = new PagedList <HealthCheckLocalLogFileViewModel>(new List <HealthCheckLocalLogFileViewModel>(), pagging.Page, pagging.TotalItens, pagging.ItensPerPage) }; var filesPaged = files.Skip(pagging.Page * pagging.ItensPerPage).Take(pagging.ItensPerPage).ToList(); foreach (System.IO.FileInfo file in filesPaged) { result.Value.Itens.Add( new HealthCheckLocalLogFileViewModel { CreateDate = file.CreationTime, Content = System.IO.File.ReadAllText(file.FullName) }); } return(GetIActionResult(result)); }
public void Pagination(int page, int totalItems, int itensPerPage, int totalPages) { var pagination = new PaggingCalculation(page, totalItems, itensPerPage); Assert.Equal(page, pagination.Page); Assert.Equal(itensPerPage, pagination.ItensPerPage); Assert.Equal(totalItems, pagination.TotalItens); Assert.Equal(totalPages, pagination.TotalPages); }