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); }