public object GetAllDashboard(GetAllFilterDto filter, User user) { IEnumerable <int> rels = _userDashRelRepository.GetAll().Where(x => x.User == user).Select(y => y.Dashboard.Id).ToList(); IEnumerable <Dashboard> dashboards = _dashboardRepository.GetAll() .Where(x => !x.Deleted && rels.Contains(x.Id) && (String.IsNullOrEmpty(filter.Filter) || x.Name.ToLower().Contains(filter.Filter.ToLower()) || (x.LastModifier != null && x.LastModifier.Name.ToLower().Contains(filter.Filter.ToLower())) || (x.Author != null && x.Author.Name.ToLower().Contains(filter.Filter.ToLower())))).ToList(); int count = dashboards.Count(); if (filter.Sort.Direction == Direction.Asc) { dashboards = dashboards .OrderBy(z => typeof(Dashboard).GetProperty(filter.Sort.ColumnName).GetValue(z, null)) .Skip(filter.Page > 1 ? (filter.Page - 1) * filter.Rows : 0) .Take(filter.Rows).ToList(); } else { dashboards = dashboards .OrderByDescending(z => typeof(Dashboard).GetProperty(filter.Sort.ColumnName).GetValue(z, null)) .Skip(filter.Page > 1 ? (filter.Page - 1) * filter.Rows : 0) .Take(filter.Rows).ToList(); } return(new AllDashboardDto { Dashboards = Mapper.Map <IEnumerable <DashboardForAllDto> >(dashboards).ToList(), TotalCount = count }); }
public IActionResult GetAll([FromBody] GetAllFilterDto filter) { try { if (filter == null) { throw new BasicException("Wrong structure!"); } if (!ModelState.IsValid) { BadRequest(ModelState); } User user = _userRep.GetByEmailAdd(this.User.Claims.SingleOrDefault(x => x.Type == "EmailAddress").Value); return(Ok(_manager.GetAllDashboard(filter, user))); } catch (BasicException ex) { _logger.LogError(ex.Message); return(BadRequest(ex.Message)); } catch (NotFoundException ex) { _logger.LogError(ex.Message); return(NotFound(ex.Message)); } catch (PermissionException ex) { _logger.LogError(ex.Message); return(Unauthorized()); } catch (Exception ex) { _logger.LogError(ex.Message); return(BadRequest()); } }
public AllReportDto GetAllReport(GetAllFilterDto filter, User user) { IEnumerable <int> rels = _userReportRel.GetAll().Where(x => x.User == user).Select(y => y.Report.Id).ToList(); IEnumerable <Report> reports = _reportRepository.GetAll() .Where(x => !x.Deleted && rels.Contains(x.Id) && (String.IsNullOrEmpty(filter.Filter) || x.Name.ToLower().Contains(filter.Filter.ToLower()) || (x.LastModifier != null && x.LastModifier.Name.ToLower().Contains(filter.Filter.ToLower())) || (x.Author != null && x.Author.Name.ToLower().Contains(filter.Filter.ToLower())) || x.Query.Name.ToLower().Contains(filter.Filter.ToLower()))).ToList(); int count = reports.Count(); if (filter.Sort.Direction == Direction.Asc) { reports = reports .OrderBy(z => typeof(Report).GetProperty(filter.Sort.ColumnName).GetValue(z, null)) .Skip(filter.Page > 1 ? (filter.Page - 1) * filter.Rows : 0) .Take(filter.Rows).ToList(); } else { reports = reports .OrderByDescending(z => typeof(Report).GetProperty(filter.Sort.ColumnName).GetValue(z, null)) .Skip(filter.Page > 1 ? (filter.Page - 1) * filter.Rows : 0) .Take(filter.Rows).ToList(); } return(new AllReportDto { Reports = Mapper.Map <IEnumerable <ReportForAllDto> >(reports).ToList(), TotalCount = count }); }