Beispiel #1
0
        public IActionResult Post([FromBody] FavorietViewModel nieuweFavoriet)
        {
            if (User.FindFirst("gebruikersId")?.Value != null && User.FindFirst("rol")?.Value == "klant")
            {
                if (ModelState.IsValid)
                {
                    try
                    {
                        Klant klant = _klantRepository.GetById(int.Parse(User.FindFirst("gebruikersId")?.Value));
                        Lunch lunch = _lunchRespository.GetById(nieuweFavoriet.LunchId);

                        if (klant != null && lunch != null)
                        {
                            Favoriet favoriet = new Favoriet
                            {
                                Lunch           = lunch,
                                DatumToegevoegd = DateTime.Now,
                            };

                            klant.Favorieten.Add(favoriet);
                            _favorietRepository.SaveChanges();

                            return(Ok(new { bericht = "De favoriet werd succesvol aangemaakt." }));
                        }
                        return(BadRequest(new { error = "De opgegeven lunch of klant kon niet worden teruggevonden." }));
                    }
                    catch
                    {
                        return(BadRequest(new { error = "Er is iets fout gegaan tijdens het aanmaken van de favoriet." }));
                    }
                }
                return(BadRequest(new { error = "De opgestuurde gegevens zijn onvolledig of incorrect." }));
            }
            return(Unauthorized(new { error = "U bent niet aangemeld als klant." }));
        }
Beispiel #2
0
        public ActionResult <Klant> GetKlant(int id)
        {
            Klant klant = _klantenRepository.GetById(id);

            if (klant == null)
            {
                return(NotFound());
            }
            return(klant);
        }
Beispiel #3
0
 public IEnumerable <Lunch> Get([FromQuery] double latitude, [FromQuery] double longitude)
 {
     // Als de locatie meegegeven wordt, wordt gezocht op locatie
     if (latitude != 0 && longitude != 0)
     {
         if (User.FindFirst("gebruikersId")?.Value != null && User.FindFirst("rol")?.Value == "klant")
         {
             Klant klant = _klantRepository.GetById(int.Parse(User.FindFirst("gebruikersId")?.Value));
             if (klant.Allergies.Count > 0)
             {
                 List <Lunch> lunches = new List <Lunch>();
                 foreach (Lunch lunch in _lunchRespository.GetAllFromLocation(latitude, longitude))
                 {
                     if (!ContainsAllergy(klant.Allergies, lunch.LunchIngredienten, lunch.LunchTags))
                     {
                         lunches.Add(lunch);
                     }
                 }
                 return(lunches.AsEnumerable());
             }
             else
             {
                 return(_lunchRespository.GetAllFromLocation(latitude, longitude));
             }
         }
     }
     // Zonder locatie worden alle geldige lunches meegegeven in omgekeerde volgorde(van nieuw naar oud)
     else
     if (User.FindFirst("gebruikersId")?.Value != null && User.FindFirst("rol")?.Value == "klant")
     {
         Klant klant = _klantRepository.GetById(int.Parse(User.FindFirst("gebruikersId")?.Value));
         if (klant.Allergies.Count > 0)
         {
             List <Lunch> lunches = new List <Lunch>();
             foreach (Lunch lunch in _lunchRespository.GetAll())
             {
                 if (!ContainsAllergy(klant.Allergies, lunch.LunchIngredienten, lunch.LunchTags))
                 {
                     lunches.Add(lunch);
                 }
             }
             return(lunches.AsEnumerable().Reverse());
         }
     }
     return(_lunchRespository.GetAll().Reverse());
 }
Beispiel #4
0
 public IActionResult Get()
 {
     if (User.FindFirst("gebruikersId")?.Value != null && User.FindFirst("rol")?.Value == "klant")
     {
         Klant klant = _klantRepository.GetById(int.Parse(User.FindFirst("gebruikersId")?.Value));
         return(Ok(klant.Allergies));
     }
     else if (User.FindFirst("gebruikersId")?.Value != null && User.FindFirst("rol")?.Value == "handelaar")
     {
         return(Unauthorized(new { error = "U bent niet aangemeld als gebruiker." }));
     }
     else if (User.FindFirst("gebruikersId")?.Value != null && User.FindFirst("rol")?.Value == "admin")
     {
         return(Unauthorized(new { error = "U bent niet aangemeld als gebruiker." }));
     }
     return(Unauthorized(new { error = "U bent niet aangemeld." }));
 }
        public IActionResult Post([FromBody] ReservatieViewModel nieuweReservatie)
        {
            if (User.FindFirst("gebruikersId")?.Value != null && User.FindFirst("rol")?.Value == "klant")
            {
                if (ModelState.IsValid)
                {
                    try
                    {
                        Klant klant = _klantRepository.GetById(int.Parse(User.FindFirst("gebruikersId")?.Value));
                        Lunch lunch = _lunchRespository.GetById(nieuweReservatie.LunchId);

                        if (klant != null && lunch != null)
                        {
                            if (nieuweReservatie.Datum >= lunch.BeginDatum && nieuweReservatie.Datum <= lunch.EindDatum)
                            {
                                Reservatie reservatie = new Reservatie
                                {
                                    Lunch     = lunch,
                                    Aantal    = nieuweReservatie.Aantal,
                                    Datum     = nieuweReservatie.Datum,
                                    Opmerking = nieuweReservatie.Opmerking,
                                    Status    = Status.InAfwachting
                                };

                                klant.Reservaties.Add(reservatie);
                                _reservatieRepository.SaveChanges();

                                //mail service
                                var message = new MailMessage();
                                message.From = new MailAddress(klant.Email);
                                message.To.Add(lunch.Handelaar.Email);
                                message.ReplyToList.Add(klant.Email);
                                message.Subject = "Er werd een reservatie geplaatst.";
                                message.Body    = string.Format("Beste {3} \n\nEr werd een nieuwe reservatie geplaatst voor {0} op {1} om {2}.\n\nMet volgende opmerking: \n\n{4}\n\nGegevens van de klant: \nNaam: {5} {6} \nTelefoonnummer: {8}\nEmail: {7}\n\nU kan de reservatie goedkeuren op de website van Lunchers.\n\nMet vriedelijke groeten,\nHet Lunchers team ",
                                                                lunch.Naam,
                                                                reservatie.Datum.ToString("d", CultureInfo.CreateSpecificCulture("pt-BR")),
                                                                reservatie.Datum.ToString("t", CultureInfo.CreateSpecificCulture("es-ES")),
                                                                lunch.Handelaar.HandelsNaam,
                                                                reservatie.Opmerking,
                                                                klant.Voornaam,
                                                                klant.Achternaam,
                                                                klant.Email,
                                                                klant.Telefoonnummer);

                                //smpt server
                                var SmtpServer = new SmtpClient("smtp.gmail.com");
                                SmtpServer.Port        = 587;
                                SmtpServer.Credentials = new System.Net.NetworkCredential("*****@*****.**", "reallyStrongPwd123");
                                SmtpServer.EnableSsl   = true;

                                //message sent
                                SmtpServer.Send(message);

                                return(Ok(new { bericht = "De reservatie werd succesvol aangemaakt." }));
                            }
                            return(BadRequest(new { error = "De gekozen lunch is niet beschikbaar op de opgegeven datum." }));
                        }
                        return(BadRequest(new { error = "De opgegeven lunch of klant kon niet worden teruggevonden." }));
                    }
                    catch
                    {
                        return(BadRequest(new { error = "Er is iets fout gegaan tijdens het aanmaken van de reservatie." }));
                    }
                }
                return(BadRequest(new { error = ModelState }));
            }
            return(Unauthorized(new { error = "U bent niet aangemeld als klant." }));
        }