public async Task <PagedResultDto <ReportTemplateOutputDto> > GetReportList(ReportListInputDto input)
        {
            var templateEntities = await _ReportTemplateManager.GetAllReportTemplatesAsync();

            var categoryEntity = await _ReportCategoryManager.GetCategoryByIdAsync(input.CategoryId);

            var entities = await Task.FromResult(templateEntities.Where(t => t.Category_Id == input.CategoryId &&
                                                                        _PermissionChecker.IsGranted("Pages.ReportManager.Reports." + categoryEntity.CategoryName + "." + t.TemplateName)
                                                                        ));


            if (string.IsNullOrEmpty(input.Sorting))
            {
                input.Sorting = "Id";
            }
            var orderEntities = await Task.FromResult(entities.OrderBy(input.Sorting));

            var pageEntities = await Task.FromResult(orderEntities.Skip(input.SkipCount).Take(input.MaxResultCount));

            var listDto = pageEntities.MapTo <List <ReportTemplateOutputDto> >();

            return(new PagedResultDto <ReportTemplateOutputDto>(
                       orderEntities.Count(),
                       listDto.ToList()
                       ));
        }
        public async Task <ReportCategoryOutputDto> GetCategoryById(long id)
        {
            var entity = await _CategoryManager.GetCategoryByIdAsync(id);

            return(entity.MapTo <ReportCategoryOutputDto>());
        }