Esempio n. 1
0
        public async Task InitializeData()
        {
            _dbContext.Database.EnsureDeleted();

            if (_dbContext.Database.EnsureCreated())
            {
                BusChauffeur bc = new BusChauffeur()
                {
                    Voornaam      = "Tom",
                    Achternaam    = "De Bakker",
                    Uurloon       = 11,
                    GeboorteDatum = DateTime.Now,
                    Email         = "*****@*****.**"
                };

                _dbContext.BusChauffeurs.Add(bc);
                _dbContext.SaveChanges();

                Dienst d = new Dienst()
                {
                    Naam         = "dienst1",
                    StartUur     = DateTime.Now,
                    EindUur      = DateTime.Now.AddHours(-3),
                    StartDag     = DateTime.Now.DayOfWeek,
                    EindDag      = DateTime.Now.AddDays(1).DayOfWeek,
                    BusChauffeur = bc,
                    TotaalAantalMinutenStationnement = 45
                };

                Onderbreking o = new Onderbreking()
                {
                    StartDag = DateTime.Now.DayOfWeek,
                    EindDag  = DateTime.Now.DayOfWeek,
                    StartUur = DateTime.Now.AddHours(2),
                    EindUur  = DateTime.Now.AddHours(3),
                };
                d.Onderbrekingen.Add(o);

                bc.Diensten.Add(d);

                Dienst d2 = new Dienst()
                {
                    Naam         = "dienst2",
                    StartUur     = DateTime.Now.AddHours(-2),
                    EindUur      = DateTime.Now,
                    StartDag     = DateTime.Now.AddDays(2).DayOfWeek,
                    EindDag      = DateTime.Now.AddDays(2).DayOfWeek,
                    BusChauffeur = bc,
                };
                _dbContext.Diensten.Add(d2);
                bc.Diensten.Add(d2);
                _dbContext.SaveChanges();
            }
        }
Esempio n. 2
0
        public String ValidateOnderbrekingMetEffectieveDienst(EffectieveDienst d, Onderbreking o)
        {
            if (o.EffectieveStart > o.EffectiefEinde)
            {
                return("Het einde van de onderbreking die start op " + o.EffectieveStart + " van dienst \"" + d.Naam + "\" ligt voor de start.");
            }
            else if (d.Start > o.EffectieveStart)
            {
                return("De start van de onderbreking die start op " + o.EffectieveStart + " van dienst \"" + d.Naam + "\" ligt voor de start van de dienst!");
            }
            else if ((d.GerelateerdeDienst == null && d.Einde < o.EffectiefEinde) || (d.GerelateerdeDienst != null && d.GerelateerdeDienst.Einde < o.EffectiefEinde))
            {
                return("Het einde van de onderbreking die start op " + o.EffectieveStart + " van dienst \"" + d.Naam + "\" ligt na het einde van de dienst!");
            }

            return(null);
        }
Esempio n. 3
0
        public String ValidateOnderbrekingMetDienst(Dienst d, Onderbreking o)
        {
            if (!(o.StartDag == d.StartDag || o.StartDag == d.EindDag))
            {
                return("Start dag van de onderbreking die start op " + o.StartDag + " om " + o.StartUur.TimeOfDay + " komt niet overeen met dienst!");
            }
            else if (!(o.EindDag == d.StartDag || o.EindDag == d.EindDag))
            {
                return("Eind dag van onderbreking die start op " + o.StartDag + " om " + o.StartUur.TimeOfDay + " komt niet overeen met dienst!");
            }
            else if (o.EindDag.GetHashCode() - o.StartDag.GetHashCode() != 1 && o.EindDag.GetHashCode() - o.StartDag.GetHashCode() != 0)
            {
                return("De data van de onderbreking die start op " + o.StartDag + " om " + o.StartUur.TimeOfDay + " zijn fout!");
                //dienst op zelfde dag
            }
            else if (d.StartDag.GetHashCode() == d.EindDag.GetHashCode())
            {
                if (o.StartUur < d.StartUur)
                {
                    return("Het start uur van de onderbreking die start op " + o.StartDag + " om " + o.StartUur.TimeOfDay + " valt voor het start uur van de dienst.");
                }
                else if (o.EindUur > d.EindUur)
                {
                    return("Het eind uur van de onderbreking die start op " + o.StartDag + " om " + o.StartUur.TimeOfDay + " valt na het eind uur van de dienst.");
                }
                //dienst op 2 dagen
            }
            else if (d.StartDag.GetHashCode() != d.EindDag.GetHashCode())
            {
                if (o.StartDag.GetHashCode() == o.EindDag.GetHashCode() && o.StartUur > o.EindUur)
                {
                    return("De tijdstippen van de onderbreking die start op " + o.StartDag + " om " + o.StartUur.TimeOfDay + " zijn fout!");
                }
            }
            if (d.StartDag.GetHashCode() == o.StartDag.GetHashCode() && o.StartUur < d.StartUur)
            {
                return("Het start uur van de onderbreking die start op " + o.StartDag + " om " + o.StartUur.TimeOfDay + " valt voor het start uur van de dienst.");
            }
            else if (d.EindDag.GetHashCode() == o.EindDag.GetHashCode() && o.EindUur > d.EindUur)
            {
                return("Het eind uur van de onderbreking die start op " + o.StartDag + " om " + o.StartUur.TimeOfDay + " valt na het eind uur van de dienst.");
            }

            return(null);
        }
 public void Update(Onderbreking ond)
 {
     _context.Update(ond);
 }
 public void Delete(Onderbreking ond)
 {
     _onderbrekingen.Remove(ond);
 }
 public void Add(Onderbreking ond)
 {
     _onderbrekingen.Add(ond);
 }
Esempio n. 7
0
        public ActionResult <IEnumerable <EffectieveDienst> > GetEffectievieDienstenNullZetDienstenNaarEffectieveDienstenOm(string jaar, string week, string busChauffeurId)
        {
            //eerste dag van week berekenen
            DateTime jan1          = new DateTime(Int32.Parse(jaar), 1, 1);
            int      daysOffset    = DayOfWeek.Thursday - jan1.DayOfWeek;
            DateTime firstThursday = jan1.AddDays(daysOffset);
            var      cal           = CultureInfo.CurrentCulture.Calendar;
            int      firstWeek     = cal.GetWeekOfYear(firstThursday, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
            var      weekNum       = Int32.Parse(week);

            if (firstWeek == 1)
            {
                weekNum -= 1;
            }
            var result           = firstThursday.AddDays(weekNum * 7);
            var eersteDagVanWeek = result.AddDays(-3);

            BusChauffeur bc = _busChauffeurRepository.GetBy(busChauffeurId);

            if (bc == null)
            {
                return(BadRequest("De buschauffeur met opgegeven id kon niet worden gevonden."));
            }
            List <EffectieveDienst> i = _effectieveDienstRepository.GetAllVan(bc, jaar, week).ToList();

            if (i.Count == 0)
            {
                bc.Diensten.ForEach(dienst =>
                {
                    if (dienst.StartDag == dienst.EindDag)
                    {
                        EffectieveDienst ed = new EffectieveDienst();
                        ed.BusChauffeur     = bc;
                        ed.Naam             = dienst.Naam;
                        ed.AndereMinuten    = 0;
                        dienst.Onderbrekingen.ForEach(ondTemplate =>
                        {
                            Onderbreking ondEffectief = new Onderbreking()
                            {
                                Id = null,
                                EffectieveStart = eersteDagVanWeek.AddDays(ondTemplate.StartDag.GetHashCode() == 0 ? 6 : ondTemplate.StartDag.GetHashCode() - 1).AddHours(ondTemplate.StartUur.Hour).AddMinutes(ondTemplate.StartUur.Minute),
                                EffectiefEinde  = eersteDagVanWeek.AddDays(ondTemplate.EindDag.GetHashCode() == 0 ? 6 : ondTemplate.EindDag.GetHashCode() - 1).AddHours(ondTemplate.EindUur.Hour).AddMinutes(ondTemplate.EindUur.Minute)
                            };
                            ed.Onderbrekingen.Add(ondEffectief);
                        });
                        ed.TotaalAantalMinutenStationnement = dienst.TotaalAantalMinutenStationnement;
                        ed.Start = eersteDagVanWeek.AddDays(dienst.StartDag.GetHashCode() == 0 ? 6 : dienst.StartDag.GetHashCode() - 1).AddHours(dienst.StartUur.Hour).AddMinutes(dienst.StartUur.Minute);
                        ed.Einde = eersteDagVanWeek.AddDays(dienst.EindDag.GetHashCode() == 0 ? 6 : dienst.EindDag.GetHashCode() - 1).AddHours(dienst.EindUur.Hour).AddMinutes(dienst.EindUur.Minute);
                        _effectieveDienstRepository.Add(ed);
                    }
                    else
                    {
                        EffectieveDienst edStart = new EffectieveDienst();
                        EffectieveDienst edEind  = new EffectieveDienst();
                        edStart.BusChauffeur     = bc;
                        edStart.Naam             = dienst.Naam;
                        edStart.AndereMinuten    = 0;
                        dienst.Onderbrekingen.ForEach(ondTemplate =>
                        {
                            Onderbreking ondEffectief = new Onderbreking()
                            {
                                Id = null,
                                EffectieveStart = eersteDagVanWeek.AddDays(ondTemplate.StartDag.GetHashCode() == 0 ? 6 : ondTemplate.StartDag.GetHashCode() - 1).AddHours(ondTemplate.StartUur.Hour).AddMinutes(ondTemplate.StartUur.Minute),
                                EffectiefEinde  = eersteDagVanWeek.AddDays(ondTemplate.EindDag.GetHashCode() == 0 ? 6 : ondTemplate.EindDag.GetHashCode() - 1).AddHours(ondTemplate.EindUur.Hour).AddMinutes(ondTemplate.EindUur.Minute)
                            };
                            edStart.Onderbrekingen.Add(ondEffectief);
                            edEind.Onderbrekingen.Add(ondEffectief);
                        });

                        edStart.TotaalAantalMinutenStationnement = dienst.TotaalAantalMinutenStationnement;
                        var startDag = dienst.StartDag.GetHashCode();
                        var eindDag  = dienst.EindDag.GetHashCode();
                        if (startDag == 0)
                        {
                            eindDag  = 7;
                            startDag = 6;
                        }
                        else if (startDag == 6)
                        {
                            eindDag  = 6;
                            startDag = startDag - 1;
                        }

                        else
                        {
                            startDag = startDag - 1;
                            eindDag  = eindDag - 1;
                        }
                        edStart.Start = eersteDagVanWeek.AddDays(startDag).AddHours(dienst.StartUur.Hour).AddMinutes(dienst.StartUur.Minute);
                        edStart.Einde = eersteDagVanWeek.AddDays(startDag).AddDays(1);

                        edEind.BusChauffeur = bc;
                        edEind.Naam         = dienst.Naam;

                        edEind.Start = eersteDagVanWeek.AddDays(eindDag);
                        edEind.Einde = eersteDagVanWeek.AddDays(eindDag).AddHours(dienst.EindUur.Hour).AddMinutes(dienst.EindUur.Minute);
                        _effectieveDienstRepository.Add(edEind);
                        edStart.GerelateerdeDienst = edEind;
                        _effectieveDienstRepository.Add(edStart);
                        _effectieveDienstRepository.SaveChanges();
                        edEind.GerelateerdeDienst = edStart;
                        _effectieveDienstRepository.Update(edEind);
                    }
                });
                _effectieveDienstRepository.SaveChanges();
                var uitvoer = _effectieveDienstRepository.GetAllVan(bc, jaar, week).ToList();
                return(uitvoer);
            }
            else
            {
                return(i);
            }
        }