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