Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        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);
        }