public Reservatie(Gebruiker gebruiker, Materiaal materiaal, string startDatum, int aantal) { if (materiaal == null) { throw new ArgumentNullException("U heeft nog geen items geselecteerd voor deze reservatie"); } if (gebruiker is Student) { var week = HulpMethode.GetIso8601WeekOfYear(Convert.ToDateTime(startDatum)); StartDatum = HulpMethode.FirstDateOfWeekISO8601(DateTime.Now.Year, week); EindDatum = StartDatum.AddDays(4); } if (gebruiker is Lector) { StartDatum = Convert.ToDateTime(startDatum); EindDatum = Convert.ToDateTime(HulpMethode.GetEindDatum(startDatum)); } Materiaal = materiaal; AantalGereserveerd = aantal; Gebruiker = gebruiker; GeblokkeerdeDagen = new List <Dag>(); AanmaakDatum = DateTime.Now; }
public Dictionary <DateTime, ICollection <Reservatie> > ReservatieDetails(int week) { Dictionary <DateTime, ICollection <Reservatie> > reservatieMap = new Dictionary <DateTime, ICollection <Reservatie> >(); var reservaties = Reservaties; if (week > -1) { var geselecteerdeDatum = HulpMethode.FirstDateOfWeekISO8601(DateTime.Now.Year, week); reservaties = reservaties.Where(r => r.StartDatum.Equals(geselecteerdeDatum)).ToList(); } foreach (Reservatie reservatie in reservaties) { if (week < 0 || reservatie.StartDatum.Equals(HulpMethode.FirstDateOfWeekISO8601(DateTime.Now.Year, week))) { } if (reservatie.Gebruiker is Lector) { bool overschrijft = false; //Kijken of de blokkering van de lector een reservatie van de student overschrijft. //Zoja, dan wordt deze in dezelfde week als die van de student geplaatst. foreach (var e in reservatieMap) { DateTime startStudent = Convert.ToDateTime(e.Key); DateTime eindStudent = startStudent.AddDays(4); overschrijft = reservatie.KanOverschrijvenMetReservatie(startStudent, eindStudent); if (overschrijft) { reservatieMap[e.Key].Add(reservatie); break; } } if (!overschrijft) { int wk = HulpMethode.GetIso8601WeekOfYear(reservatie.StartDatum); DateTime date = HulpMethode.FirstDateOfWeekISO8601(DateTime.Now.Year, wk); if (reservatieMap.ContainsKey(date)) { reservatieMap[date].Add(reservatie); } else { reservatieMap.Add(date, new List <Reservatie> { reservatie }); } } } else if (reservatie.Gebruiker is Student) { if (!reservatieMap.ContainsKey(reservatie.StartDatum)) { reservatieMap.Add(reservatie.StartDatum, new List <Reservatie> { reservatie }); } else { reservatieMap[reservatie.StartDatum].Add(reservatie); } } } return(reservatieMap); }