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." })); }
public ActionResult <Klant> GetKlant(int id) { Klant klant = _klantenRepository.GetById(id); if (klant == null) { return(NotFound()); } return(klant); }
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()); }
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." })); }