public IActionResult Post([FromBody] ModifySubscriptionViewModel addSubscriptionViewModel) { if (ModelState.IsValid) { if (IsMerchant()) { return(BadRequest(new { error = "Handelaars kunnen zich niet abonneren op andere handelaars." })); } if (!IsCustomer()) { return(BadRequest(new { error = "De voorziene token voldoet niet aan de eisen." })); } Establishment establishment = _establishmentRepository.getById(addSubscriptionViewModel.EstablishmentId); if (establishment == null) { return(BadRequest(new { error = "Het opgegeven vestiging bestaat niet." })); } Customer customer = _customerRepository.getById(int.Parse(User.FindFirst("userId")?.Value)); if (customer.EstablishmentSubscriptions.Any(es => es.EstablishmentId == establishment.EstablishmentId)) { return(BadRequest(new { error = "U bent reeds geabonneerd op deze vestiging." })); } EstablishmentSubscription establishmentSubscription = new EstablishmentSubscription() { Customer = customer, Establishment = establishment, DateAdded = DateTime.Now, EstablishmentId = establishment.EstablishmentId }; _customerRepository.addSubscription(customer.UserId, establishmentSubscription); return(Ok(new { message = "U bent succesvol geabonneerd op deze vestiging!" })); } //Als we hier zijn is is modelstate niet voldaan dus stuur error 400, slechte aanvraag string errorMsg = string.Join(" | ", ModelState.Values.SelectMany(v => v.Errors).Select(e => e.ErrorMessage)); return(BadRequest(new { error = "De ingevoerde waarden zijn onvolledig of voldoen niet aan de eisen voor een login. Foutboodschap: " + errorMsg })); }
public IActionResult Delete(int id) { if (ModelState.IsValid) { if (IsMerchant()) { return(BadRequest(new { error = "Handelaars kunnen zich niet abonneren op andere handelaars." })); } if (!IsCustomer()) { return(BadRequest(new { error = "De voorziene token voldoet niet aan de eisen." })); } Establishment establishment = _establishmentRepository.getById(id); if (establishment == null) { return(BadRequest(new { error = "Geen vestiging met de meegegeven id." })); } Customer customer = _customerRepository.getById(int.Parse(User.FindFirst("userId")?.Value)); EstablishmentSubscription establishmentSubscription = customer.EstablishmentSubscriptions.SingleOrDefault( es => es.EstablishmentId == establishment.EstablishmentId); if (establishmentSubscription == null) { return(BadRequest(new { error = "Deze vestiging behoord niet tot u." })); } _customerRepository.removeSubscription(customer.UserId, establishmentSubscription); return(Ok(new { message = "Verwijderd!" })); } //Als we hier zijn is is modelstate niet voldaan dus stuur error 400, slechte aanvraag string errorMsg = string.Join(" | ", ModelState.Values.SelectMany(v => v.Errors).Select(e => e.ErrorMessage)); return(BadRequest(new { error = "De ingevoerde waarden zijn onvolledig of voldoen niet aan de eisen voor een login. Foutboodschap: " + errorMsg })); }
public void removeSubscription(int userId, EstablishmentSubscription establishmentSubscription) { _customers.FirstOrDefault(c => c.UserId == userId)?.EstablishmentSubscriptions.Remove(establishmentSubscription); SaveChanges(); }