示例#1
0
        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));
        }
示例#2
0
        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));
        }