public IActionResult Index() { List <ProjectListViewModel> projecten = new List <ProjectListViewModel>(); IEnumerable <Project> projectenFromDatabase = _context.GetProjecten(); foreach (var project in projectenFromDatabase) { projecten.Add(new ProjectListViewModel() { Id = project.Id, Titel = project.Titel, Beschrijving = project.Beschrijving, ImageFile = project.Image, Status = project.Status.Naam, Tags = project.TagProjects.Select(tagprojects => tagprojects.Tag).Select(tag => tag.Naam).ToList() //Tags = _context.TagProject.Where(x => project.Id == x.Project.Id).Select(t => t.Tag.Naam.ToLower().Trim()).ToList(), }); } ProjectFilterListViewModel vm = new ProjectFilterListViewModel { Projecten = projecten }; return(View(vm)); }
public IActionResult Index(int statusId, string tags) { List <ProjectListViewModel> projecten = new List <ProjectListViewModel>(); //IEnumerable<Project> projectenFromDatabase = _context.GetProjecten(); string[] tagArray = new string[0]; if (!string.IsNullOrEmpty(tags)) { tagArray = tags.Split(" "); } IQueryable <Project> query = _context.Projecten.Include(x => x.Status) .Include(x => x.TagProjects).ThenInclude(x => x.Tag); if (statusId == 0 && string.IsNullOrEmpty(tags)) { ; } else if (statusId != 0 && string.IsNullOrEmpty(tags)) { query = query.Where(x => x.Status.Id == statusId); } else if (!string.IsNullOrEmpty(tags) && statusId == 0) { query = query.Where(p => tagArray.All(x => p.TagProjects.Select(tagP => tagP.Tag).Select(tag => tag.Naam.ToLower()).Contains(x.ToLower()))); } else { query = query.Where(p => p.Status.Id == statusId && tagArray.All(t => p.TagProjects.Select(tagP => tagP.Tag).Select(tag => tag.Naam.ToLower()).Contains(t.ToLower()))); } var projectenFromQuery = query.ToList(); foreach (var project in projectenFromQuery) { projecten.Add(new ProjectListViewModel { Id = project.Id, Titel = project.Titel, Beschrijving = project.Beschrijving, ImageFile = project.Image, Status = project.Status.Naam, Tags = project.TagProjects.Select(tagprojects => tagprojects.Tag).Select(tag => tag.Naam).ToList() }); } ProjectFilterListViewModel vm = new ProjectFilterListViewModel { Projecten = projecten }; return(View(vm)); }