public List <Dienst> GenereerDiensten(int roosterID, List <int> dienstProfielen)
        {
            Rooster rooster = _context.Roosters
                              .Include(r => r.Diensten).ThenInclude(d => d.DienstProfiel)
                              .Where(r => r.RoosterID == roosterID)
                              .SingleOrDefault();

            RoosterDTO dto = new RoosterDTO(rooster);

            List <Dienst> huidigeDiensten = rooster.Diensten.ToList();
            List <Dienst> nieuweDiensten  = VerwijderDienstenVanNietBestaandeProfielen(huidigeDiensten, dienstProfielen);

            foreach (int dienstProfielID in dienstProfielen)
            {
                if (!ZijnDienstenVoorProfielAangemaakt(nieuweDiensten, dienstProfielID))
                {
                    DienstProfiel profiel = _context.DienstProfielen.Where(dp => dp.DienstProfielID == dienstProfielID).SingleOrDefault();

                    for (DateTime datum = dto.StartDatum; datum.Date <= dto.EindDatum.Date; datum = datum.AddDays(1))
                    {
                        Dienst dienst = new Dienst()
                        {
                            DienstProfiel = profiel,
                            Datum         = datum
                        };

                        nieuweDiensten.Add(dienst);
                        _context.Diensten.Add(dienst);
                    }
                }
            }

            return(nieuweDiensten);
        }
        // GET: Rooster/Details/5
        public async Task <IActionResult> Details(int?id)
        {
            RoosterDTO roosterDTO = null;

            if (id.HasValue)
            {
                roosterDTO = await _roosterRepository.GetByIdAsync(id.Value);
            }
            else
            {
                return(NotFound());
            }

            return(View(roosterDTO));
        }
        public async Task <RoosterDTO> GetByIdAsync(int id)
        {
            Rooster rooster = await _context.Roosters
                              .Include(r => r.RoosterDienstProfielen)
                              .Include(r => r.Diensten).ThenInclude(d => d.DienstProfiel)
                              .Where(r => r.RoosterID == id)
                              .SingleOrDefaultAsync();

            RoosterDTO roosterDTO = new RoosterDTO(rooster)
            {
                AantalDiensten        = rooster.Diensten.Count(),
                AantalDienstProfielen = rooster.RoosterDienstProfielen.Count(),
                Diensten = from dienst in rooster.Diensten select new DienstDTO(dienst)
            };

            List <DienstDTO> diensten = roosterDTO.Diensten.OrderBy(d => d.Datum).ThenBy(d => d.Begintijd).ToList();

            roosterDTO.Diensten = diensten;

            return(roosterDTO);
        }