public async Task <FilterResponseModel <ProjectLineTableViewModel> > GetProjectsFilterdAsync(FilterProjectLinesModel filter, string userId) { var result = new FilterResponseModel <ProjectLineTableViewModel>(); var userRole = _context.Users .Include(x => x.UserRoles) .First(x => x.Id == userId) .UserRoles .FirstOrDefault(); var query = _context.ProjectLines .Include(x => x.Project) .Include(x => x.Status) .ProjectTo <ProjectLineTableViewModel>(_mapper.ConfigurationProvider) .AsQueryable(); query = FilterProjects(query, filter); var allRecordsCount = await query.CountAsync(); // for pagination query = query.FilterByParams(filter); var resultData = await query.ToListAsync(); if (userRole != null) { resultData = await SetToNullNotAllowedPropertiesAsync(resultData, userRole.RoleId); } result.Data = resultData; result.Total = allRecordsCount; return(result); }
private IQueryable <ProjectLineTableViewModel> FilterProjects(IQueryable <ProjectLineTableViewModel> query, FilterProjectLinesModel filter) { if (!string.IsNullOrEmpty(filter.ProjectName)) { var name = filter.ProjectName.ToLower(); query = query .Where(x => x.ProjectName.ToLower().Contains(name)); } ; if (filter.LineNumber != null) { query = query .Where(x => x.Number == filter.LineNumber); } ; if (!string.IsNullOrEmpty(filter.Barcode)) { var name = filter.Barcode.ToLower(); query = query .Where(x => x.Barcode.ToLower().Contains(name)); } ; if (!string.IsNullOrEmpty(filter.Nickname)) { var name = filter.Nickname.ToLower(); query = query .Where(x => x.NickNameAustralia.ToLower().Contains(name) || x.NickNameIndia.ToLower().Contains(name)); } ; if (filter.StatusId != null && filter.StatusId != Guid.Empty) { query = query .Where(x => x.StatusId == filter.StatusId); } ; return(query); }
public async Task <FilterResponseModel <ProjectLineTableViewModel> > GetProjectLines(FilterProjectLinesModel model) { var userId = User.GetClaim(OpenIdConnectConstants.Claims.Subject); return(await _projectLineService.GetProjectsFilterdAsync(model, userId)); }