Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        public async Task <FilterResponseModel <ProjectLineTableViewModel> > GetProjectLines(FilterProjectLinesModel model)
        {
            var userId = User.GetClaim(OpenIdConnectConstants.Claims.Subject);

            return(await _projectLineService.GetProjectsFilterdAsync(model, userId));
        }