Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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);
        }