Пример #1
0
        public ActionResult <IEnumerable <EffectieveDienst> > GetEffectievieDienstenVanChauffeur(string jaar, string week, string busChauffeurId)
        {
            BusChauffeur bc = _busChauffeurRepository.GetBy(busChauffeurId);

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

            return(uitvoer);
        }
Пример #2
0
        public IEnumerable <EffectieveDienst> GetAllVan(BusChauffeur bc, String jaar, String week)
        {
            //get weeknummer
            CultureInfo      myCI       = new CultureInfo("nl-BE");
            Calendar         myCal      = myCI.Calendar;
            CalendarWeekRule myCWR      = myCI.DateTimeFormat.CalendarWeekRule;
            DayOfWeek        myFirstDOW = myCI.DateTimeFormat.FirstDayOfWeek;

            int jaartal    = Int32.Parse(jaar);
            int weekNummer = Int32.Parse(week);
            var uitvoer    = this.GetAllVan(bc);

            uitvoer = uitvoer.Where(t => myCal.GetWeekOfYear(t.Start, myCWR, myFirstDOW) == weekNummer && t.Start.Year == jaartal).ToList();
            return(uitvoer);
        }
Пример #3
0
        public ActionResult <Dienst> VoegDienstToe(DienstDTO dto)
        {
            Dienst dienst = new Dienst();

            dienst.StartUur = dto.StartUur;
            dienst.EindUur  = dto.EindUur;
            dienst.Naam     = dto.Naam;

            dienst.StartDag = dto.StartDag;
            dienst.EindDag  = dto.EindDag;
            dienst.TotaalAantalMinutenStationnement = dto.TotaalAantalMinutenStationnement;
            BusChauffeur bc = _busChauffeurRepository.GetBy(dto.BusChauffeurId);

            if (bc == null)
            {
                BadRequest("De bus chauffeur met opgegeven id kon niet worden gevonden.");
            }
            dienst.BusChauffeur = bc;
            string validatie = _dienstRepository.ValidateDienst(dienst);

            if (validatie != null)
            {
                return(BadRequest(validatie));
            }
            string request = null;

            dto.Onderbrekingen.ForEach(onderbreking =>
            {
                request = this._dienstRepository.ValidateOnderbrekingMetDienst(dienst, onderbreking);
                if (request != null)
                {
                    return;
                }
            });
            if (request != null)
            {
                return(BadRequest(request));
            }
            dienst.Onderbrekingen.ForEach(t => t.Id = null);
            dienst.Onderbrekingen.AddRange(dto.Onderbrekingen);
            dienst.Onderbrekingen = dto.Onderbrekingen;
            _dienstRepository.Add(dienst);
            bc.Diensten.Add(dienst);
            _busChauffeurRepository.Update(bc);
            _dienstRepository.SaveChanges();
            return(dienst);
        }
Пример #4
0
 public ActionResult <BusChauffeur> VoegBusChauffeurToe(BusChauffeurDTO dto)
 {
     try
     {
         BusChauffeur bc = new BusChauffeur();
         bc.Voornaam      = dto.Voornaam;
         bc.Achternaam    = dto.Achternaam;
         bc.Uurloon       = dto.Uurloon;
         bc.GeboorteDatum = dto.GeboorteDatum;
         bc.Email         = dto.Email;
         _busChauffeurRepository.Add(bc);
         _busChauffeurRepository.SaveChanges();
         return(bc);
     }
     catch (Exception e)
     {
         return(BadRequest(e.Message));
     }
 }
Пример #5
0
        public IEnumerable <EffectieveDienst> DeleteAllVan(BusChauffeur bc, String jaar, String week)
        {
            var toDelete = this.GetAllVan(bc, jaar, week).ToList();

            toDelete.ForEach(t =>
            {
                if (this.GetBy(t.Id) != null)
                {
                    var gerelateerd      = t.GerelateerdeDienst;
                    t.GerelateerdeDienst = null;
                    this.Update(t);
                    this.SaveChanges();
                    this.Delete(t);
                    this.SaveChanges();
                    if (gerelateerd != null)
                    {
                        this.Delete(gerelateerd);
                        this.SaveChanges();
                    }
                }
            });

            return(toDelete);
        }
Пример #6
0
        public ActionResult <BusChauffeur> PutItem(string id, BusChauffeurDTO dto)
        {
            try
            {
                if (!dto.Id.Equals(id))
                {
                    return(BadRequest("Id's komen niet overeen!"));
                }

                BusChauffeur bc = _busChauffeurRepository.GetBy(id);
                bc.Voornaam      = dto.Voornaam;
                bc.Achternaam    = dto.Achternaam;
                bc.Uurloon       = dto.Uurloon;
                bc.GeboorteDatum = dto.GeboorteDatum;
                bc.Email         = dto.Email;
                _busChauffeurRepository.Update(bc);
                _busChauffeurRepository.SaveChanges();
                return(bc);
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
Пример #7
0
        public ActionResult <Dienst> PutItem(string id, DienstDTO dto)
        {
            var that = this;

            if (!dto.Id.Equals(id))
            {
                return(BadRequest("id's komen niet overeen!"));
            }
            Dienst dienst = _dienstRepository.GetBy(id);

            dienst.StartUur = dto.StartUur;
            dienst.EindUur  = dto.EindUur;
            dienst.Naam     = dto.Naam;
            dienst.StartDag = dto.StartDag;
            dienst.EindDag  = dto.EindDag;
            dienst.TotaalAantalMinutenStationnement = dto.TotaalAantalMinutenStationnement;
            if (dienst.BusChauffeur != null)
            {
                if (dienst.BusChauffeur.Id != dto.BusChauffeurId)
                {
                    BusChauffeur OudeBc = _busChauffeurRepository.GetBy(dienst.BusChauffeur.Id);
                    OudeBc.Diensten.Remove(OudeBc.Diensten.SingleOrDefault(d => d.Id == dienst.Id));
                    _busChauffeurRepository.Update(dienst.BusChauffeur);
                    _dienstRepository.SaveChanges();
                    BusChauffeur NieuweBc = _busChauffeurRepository.GetBy(dto.BusChauffeurId);
                    dienst.BusChauffeur = NieuweBc;
                    NieuweBc.Diensten.Add(dienst);
                    _busChauffeurRepository.Update(NieuweBc);
                }
            }
            else
            {
                BusChauffeur NieuweBc = _busChauffeurRepository.GetBy(dto.BusChauffeurId);
                dienst.BusChauffeur = NieuweBc;
                NieuweBc.Diensten.Add(dienst);
                _busChauffeurRepository.Update(NieuweBc);
            }
            string validatie = _dienstRepository.ValidateDienst(dienst);

            if (validatie != null)
            {
                return(BadRequest(validatie));
            }
            string request = null;

            dto.Onderbrekingen.ForEach(onderbreking =>
            {
                request = this._dienstRepository.ValidateOnderbrekingMetDienst(dienst, onderbreking);
                if (request != null)
                {
                    return;
                }
            });
            if (request != null)
            {
                return(BadRequest(request));
            }
            _onderbrekingRepository.DeleteRange(dienst.Onderbrekingen);
            _onderbrekingRepository.SaveChanges();
            _onderbrekingRepository.AddRange(dto.Onderbrekingen);
            _onderbrekingRepository.SaveChanges();
            dienst.Onderbrekingen = dto.Onderbrekingen;
            _dienstRepository.Update(dienst);
            _dienstRepository.SaveChanges();
            return(dienst);
        }
Пример #8
0
 public void Update(BusChauffeur bc)
 {
     _context.Update(bc);
 }
Пример #9
0
 public void Delete(BusChauffeur bc)
 {
     //_GebruikerItems.RemoveRange(_GebruikerItems.Where(t => t.Item.Id == Item.Id).ToList());
     _busChauffeurs.Remove(bc);
 }
Пример #10
0
 public void Add(BusChauffeur bc)
 {
     _busChauffeurs.Add(bc);
 }
Пример #11
0
 public IEnumerable <EffectieveDienst> GetAllVan(BusChauffeur bc)
 {
     return(_effectieveDiensten.OrderBy(t => t.DagVanToevoegen).Where(t => t.BusChauffeur == bc).Include(t => t.BusChauffeur).Include(t => t.Onderbrekingen).Include(t => t.GerelateerdeDienst).ToList());
 }
Пример #12
0
        public ActionResult <IEnumerable <EffectieveDienst> > PostEffectieveDiensten(List <EffectieveDienstDTO> ed, string jaar, string week, string busChauffeurId)
        {
            string       request = null;
            BusChauffeur bc      = _busChauffeurRepository.GetBy(busChauffeurId);

            if (bc == null)
            {
                return(BadRequest("De buschauffeur met opgegeven id kon niet worden gevonden."));
            }
            string   req  = "";
            TimeSpan span = new TimeSpan(1, 0, 0, 0);

            ed.ForEach(d =>
            {
                if (d.Start > d.Einde)
                {
                    req = "De start van de dienst '" + d.Naam + "' valt voor het einde!";
                }
                if ((d.Einde - d.Start) > span)
                {
                    req = "De dienst '" + d.Naam + "' duurt te lang!";
                }
            });
            if (req != "")
            {
                return(BadRequest(req));
            }
            _effectieveDienstRepository.DeleteAllVan(bc, jaar, week).ToList();
            var effectieveDienstenToUpload = new List <EffectieveDienst>();

            ed.ForEach(dienst =>
            {
                EffectieveDienst hoofdDienst = new EffectieveDienst();
                hoofdDienst.BusChauffeur     = bc;
                hoofdDienst.TotaalAantalMinutenStationnement = dienst.TotaalAantalMinutenStationnement;
                hoofdDienst.Naam          = dienst.Naam;
                hoofdDienst.AndereMinuten = dienst.AndereMinuten;
                if (dienst.Start.DayOfWeek == dienst.Einde.DayOfWeek)
                {
                    hoofdDienst.Start = dienst.Start;
                    hoofdDienst.Einde = dienst.Einde;
                    effectieveDienstenToUpload.Add(hoofdDienst);
                }
                else
                {
                    EffectieveDienst gerelateerdeDienst = new EffectieveDienst();
                    hoofdDienst.Start        = dienst.Start;
                    hoofdDienst.Einde        = dienst.Start.AddHours(-dienst.Start.Hour).AddMinutes(-dienst.Start.Minute).AddDays(1); gerelateerdeDienst.BusChauffeur = bc;
                    gerelateerdeDienst.Naam  = dienst.Naam;
                    gerelateerdeDienst.Start = dienst.Einde.AddHours(-dienst.Einde.Hour).AddMinutes(-dienst.Einde.Minute);
                    gerelateerdeDienst.Einde = dienst.Einde;
                    _effectieveDienstRepository.Add(gerelateerdeDienst);
                    hoofdDienst.GerelateerdeDienst = gerelateerdeDienst;
                    _effectieveDienstRepository.Add(hoofdDienst);
                    _effectieveDienstRepository.SaveChanges();
                    gerelateerdeDienst.GerelateerdeDienst = hoofdDienst;
                    _effectieveDienstRepository.Update(gerelateerdeDienst);
                }
                dienst.Onderbrekingen.ForEach(onderbreking =>
                {
                    request = _effectieveDienstRepository.ValidateOnderbrekingMetEffectieveDienst(hoofdDienst, onderbreking);
                    if (request != null)
                    {
                        return;
                    }
                    var stass = _onderbrekingsRepository.GetBy(onderbreking.Id);
                    if (stass != null)
                    {
                        _onderbrekingsRepository.Delete(stass);
                    }
                    onderbreking.Id = null;
                    hoofdDienst.Onderbrekingen.Add(onderbreking);
                });
                if (request != null)
                {
                    return;
                }
                hoofdDienst.Onderbrekingen = dienst.Onderbrekingen;
            });
            if (request != null)
            {
                return(BadRequest(request));
            }
            _effectieveDienstRepository.AddRange(effectieveDienstenToUpload);
            _effectieveDienstRepository.SaveChanges();
            if (req != "")
            {
                return(BadRequest(req));
            }
            return(effectieveDienstenToUpload);
        }
Пример #13
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);
            }
        }