public IActionResult GedeeltelijkeUpdateInschrijving(Guid inschrijvingsId, [FromBody] JsonPatchDocument <InschrijvingVoorUpdateDto> patchDocument) { var inschrijvingVanRepo = _inschrijvingRepository.GetInschrijving(inschrijvingsId); if (inschrijvingVanRepo == null) { return(NotFound($"Inschrijving '{inschrijvingsId}' niet gevonden.")); } Guid inschrijvingsStatusVoorPatch = inschrijvingVanRepo.InschrijvingsstatusId.Value; var inschrijvingTePatchen = _mapper.Map <InschrijvingVoorUpdateDto>(inschrijvingVanRepo); patchDocument.ApplyTo(inschrijvingTePatchen, ModelState); if (!TryValidateModel(inschrijvingTePatchen)) { return(ValidationProblem(ModelState)); } _mapper.Map(inschrijvingTePatchen, inschrijvingVanRepo); // === START Controle voor manipulatie === // // === EINDE Controle voor manipulatie === // if (!_betaalmethodeRepository.BestaatBetaalmethode(inschrijvingVanRepo.BetaalmethodeId.Value)) { return(NotFound($"Betaalmethode '{inschrijvingVanRepo.BetaalmethodeId.Value}' niet gevonden.")); } if (!_inschrijvingsstatusRepository.BestaatInschrijvingsstatus(inschrijvingVanRepo.InschrijvingsstatusId.Value)) { return(NotFound($"Inschrijvingsstatus '{inschrijvingVanRepo.InschrijvingsstatusId.Value}' niet gevonden.")); } if (!_evenementRepository.BestaatEvenement(inschrijvingVanRepo.EvenementId.Value)) { return(NotFound($"Evenement '{inschrijvingVanRepo.EvenementId.Value}' niet gevonden.")); } if (inschrijvingVanRepo.LidId.HasValue) { if (!_lidRepository.BestaatLid(inschrijvingVanRepo.LidId.Value)) { return(NotFound($"Lid '{inschrijvingVanRepo.LidId.Value}' niet gevonden.")); } } if (inschrijvingVanRepo.InschrijvingsstatusId.Value == _inschrijvingsstatusRepository.GetInschrijvingsstatus_Gepland().Id) { if (string.IsNullOrWhiteSpace(inschrijvingVanRepo.Standnummer)) { return(Conflict($"Bij het plannen van een inschrijving moet een standnummer worden opgegeven.")); } } if (inschrijvingVanRepo.InschrijvingsstatusId.Value == _inschrijvingsstatusRepository.GetInschrijvingsstatus_Afgekeurd().Id) { if (string.IsNullOrWhiteSpace(inschrijvingVanRepo.RedenAfkeuring)) { return(Conflict($"Bij het afkeuren van een inschrijving moet een reden tot afkeuring worden opgegeven.")); } } if (inschrijvingVanRepo.InschrijvingsstatusId.Value == _inschrijvingsstatusRepository.GetInschrijvingsstatus_Goedgekeurd().Id | inschrijvingVanRepo.InschrijvingsstatusId.Value == _inschrijvingsstatusRepository.GetInschrijvingsstatus_Gepland().Id) { if (inschrijvingVanRepo.BetaalmethodeId.Value == _betaalmethodeRepository.GetBetaalmethode_Overschrijving().Id) { if (string.IsNullOrWhiteSpace(inschrijvingVanRepo.GestructureerdeMededeling)) { inschrijvingVanRepo.GestructureerdeMededeling = GestructureerdeMededeling.GetNieuweGestructureerdeMededeling(_inschrijvingRepository); } } if (string.IsNullOrWhiteSpace(inschrijvingVanRepo.QRCode)) { inschrijvingVanRepo.QRCode = QRCode.GetNieuweQRCode(); } } // === EINDE Controle voor manipulatie === // // === START null waarden wegwerken === // if (!inschrijvingVanRepo.AantalWagens.HasValue) { inschrijvingVanRepo.AantalWagens = 0; } if (!inschrijvingVanRepo.AantalAanhangwagens.HasValue) { inschrijvingVanRepo.AantalAanhangwagens = 0; } if (!inschrijvingVanRepo.AantalMobilhomes.HasValue) { inschrijvingVanRepo.AantalMobilhomes = 0; } // === EINDE null waarden wegwerken === // _inschrijvingRepository.UpdatenInschrijving(inschrijvingVanRepo); _inschrijvingRepository.Opslaan(); if (inschrijvingVanRepo.InschrijvingsstatusId.Value == _inschrijvingsstatusRepository.GetInschrijvingsstatus_Goedgekeurd().Id) { if (inschrijvingsStatusVoorPatch == _inschrijvingsstatusRepository.GetInschrijvingsstatus_Aangevraagd().Id) { _mailing.VerstuurMail_AanvraagGoedgekeurd(inschrijvingVanRepo); } } if (inschrijvingVanRepo.InschrijvingsstatusId.Value == _inschrijvingsstatusRepository.GetInschrijvingsstatus_Afgekeurd().Id) { if (inschrijvingsStatusVoorPatch == _inschrijvingsstatusRepository.GetInschrijvingsstatus_Aangevraagd().Id) { _mailing.VerstuurMail_AanvraagAfgekeurd(inschrijvingVanRepo); } } //return NoContent(); var inschrijvingTeRetourneren = _mapper.Map <InschrijvingVoorRaadpleegDto>(inschrijvingVanRepo); return(CreatedAtRoute("GetInschrijving", new { inschrijvingsId = inschrijvingTeRetourneren.Id }, inschrijvingTeRetourneren)); }
public ActionResult <InschrijvingVoorRaadpleegDto> ToevoegenInschrijving([FromBody] InschrijvingVoorAanmaakDto inschrijving) { var inschrijvingEntity = _mapper.Map <Entities.Inschrijving>(inschrijving); inschrijvingEntity.DatumInschrijving = DateTime.UtcNow.AddHours(2); // === START Controle voor manipulatie === // // === EINDE Controle voor manipulatie === // if (!_betaalmethodeRepository.BestaatBetaalmethode(inschrijvingEntity.BetaalmethodeId.Value)) { return(NotFound($"Betaalmethode '{inschrijvingEntity.BetaalmethodeId.Value}' niet gevonden.")); } if (!_inschrijvingsstatusRepository.BestaatInschrijvingsstatus(inschrijvingEntity.InschrijvingsstatusId.Value)) { return(NotFound($"Inschrijvingsstatus '{inschrijvingEntity.InschrijvingsstatusId.Value}' niet gevonden.")); } if (!_evenementRepository.BestaatEvenement(inschrijvingEntity.EvenementId.Value)) { return(NotFound($"Evenement '{inschrijvingEntity.EvenementId.Value}' niet gevonden.")); } if (inschrijvingEntity.LidId.HasValue) { if (!_lidRepository.BestaatLid(inschrijvingEntity.LidId.Value)) { return(NotFound($"Lid '{inschrijvingEntity.LidId.Value}' niet gevonden.")); } } if (inschrijvingEntity.InschrijvingsstatusId.Value == _inschrijvingsstatusRepository.GetInschrijvingsstatus_Gepland().Id) { if (string.IsNullOrWhiteSpace(inschrijvingEntity.Standnummer)) { return(Conflict($"Bij het plannen van een inschrijving moet een standnummer worden opgegeven.")); } } if (inschrijvingEntity.InschrijvingsstatusId.Value == _inschrijvingsstatusRepository.GetInschrijvingsstatus_Afgekeurd().Id) { if (string.IsNullOrWhiteSpace(inschrijvingEntity.RedenAfkeuring)) { return(Conflict($"Bij het afkeuren van een inschrijving moet een reden tot afkeuring worden opgegeven.")); } } if (inschrijvingEntity.InschrijvingsstatusId.Value == _inschrijvingsstatusRepository.GetInschrijvingsstatus_Goedgekeurd().Id | inschrijvingEntity.InschrijvingsstatusId.Value == _inschrijvingsstatusRepository.GetInschrijvingsstatus_Gepland().Id) { if (inschrijvingEntity.BetaalmethodeId.Value == _betaalmethodeRepository.GetBetaalmethode_Overschrijving().Id) { if (string.IsNullOrWhiteSpace(inschrijvingEntity.GestructureerdeMededeling)) { inschrijvingEntity.GestructureerdeMededeling = GestructureerdeMededeling.GetNieuweGestructureerdeMededeling(_inschrijvingRepository); } } if (string.IsNullOrWhiteSpace(inschrijvingEntity.QRCode)) { inschrijvingEntity.QRCode = QRCode.GetNieuweQRCode(); } } // === EINDE Controle voor manipulatie === // // === START null waarden wegwerken === // if (!inschrijvingEntity.AantalWagens.HasValue) { inschrijvingEntity.AantalWagens = 0; } if (!inschrijvingEntity.AantalAanhangwagens.HasValue) { inschrijvingEntity.AantalAanhangwagens = 0; } if (!inschrijvingEntity.AantalMobilhomes.HasValue) { inschrijvingEntity.AantalMobilhomes = 0; } // === EINDE null waarden wegwerken === // _inschrijvingRepository.ToevoegenInschrijving(inschrijvingEntity); _inschrijvingRepository.Opslaan(); if (inschrijvingEntity.InschrijvingsstatusId.Value == _inschrijvingsstatusRepository.GetInschrijvingsstatus_Aangevraagd().Id) { _mailing.VerstuurMail_NieuweAanvraag(inschrijvingEntity); } var inschrijvingTeRetourneren = _mapper.Map <InschrijvingVoorRaadpleegDto>(inschrijvingEntity); return(CreatedAtRoute("GetInschrijving", new { inschrijvingsId = inschrijvingTeRetourneren.Id }, inschrijvingTeRetourneren)); }
public void VerstuurMail_AanvraagGoedgekeurd(Entities.Inschrijving inschrijving) { if (_versturenVanAutomatischeMails) { KeyValuePair <string, string> verzender = new KeyValuePair <string, string>(_email, "De Lozerkermis vrienden"); ICollection <KeyValuePair <string, string> > ontvangers = new List <KeyValuePair <string, string> >(); ontvangers.Add(new KeyValuePair <string, string>(inschrijving.Email, $"{inschrijving.Voornaam} {inschrijving.Achternaam}")); string onderwerp = "Uw aanvraag tot inschrijving is goedgekeurd"; ICollection <string> inhoudDeel1 = new List <string>(); inhoudDeel1.Add($"Beste"); inhoudDeel1.Add($"Wij hebben het genoegen u mede te delen dat uw aanvraag werd goedgekeurd."); if (inschrijving.BetaalmethodeId.Value == _betaalmethodeRepository.GetBetaalmethode_Contant().Id) { inhoudDeel1.Add($"Graag herinneren wij u eraan dat u als betaalmethode <<contant>> had aangeduid."); inhoudDeel1.Add($"Mogen wij u vragen <<het gepaste bedrag ({(inschrijving.AantalMeter * inschrijving.Meterprijs).ToString("N", new CultureInfo("nl-BE"))} EUR)>> mee te brengen en ter plaatse te betalen bij de inschrijvingspost op de dag van het evenement?"); } else if (inschrijving.BetaalmethodeId.Value == _betaalmethodeRepository.GetBetaalmethode_Overschrijving().Id) { inhoudDeel1.Add($"Graag herinneren wij u eraan dat u als betaalmethode <<overschrijving>> had aangeduid."); inhoudDeel1.Add($"Mogen wij u vragen het gepaste bedrag ({(inschrijving.AantalMeter * inschrijving.Meterprijs).ToString("N", new CultureInfo("nl-BE"))} EUR) zo snel mogelijk over te schrijven op het rekeningnummer {_rekeningnummer}, met volgende gestructureerde mededeling: {GestructureerdeMededeling.GetGeformatteerdeGestructureerdeMededeling(inschrijving.GestructureerdeMededeling)}. De overschrijving dient <<ten laatste 5 dagen voor het evenement>> te gebeuren."); inhoudDeel1.Add($"Indien wij geen overschrijving van u ontvangen hebben, gelieve op de dag van het evenement <<het gepaste bedrag>> dan cash mee te brengen en ter plaatse te betalen bij de inschrijvingspost."); } inhoudDeel1.Add($"Wij danken u alvast voor uw medewerking!"); // Link naar opvolgen status ICollection <string> inhoudDeel2 = new List <string>(); inhoudDeel2.Add($"Hieronder vindt u nogmaals alle informatie die u reeds ingevuld hebt:"); // Details inschrijving ICollection <string> inhoudDeel3 = new List <string>(); inhoudDeel3.Add($"Tot dan!"); inhoudDeel3.Add($"Met vriendelijke groeten"); inhoudDeel3.Add($"De Lozerkermis vrienden"); string formaat = "html"; StringBuilder inhoudHtml = new StringBuilder(); inhoudHtml = GetInhoudVolgensFormaat(inhoudDeel1, inhoudHtml, formaat); inhoudHtml.AppendLine($"Via deze <a href='https://delozerkermisvrienden-organizer-ui.azurewebsites.net/inschrijvingen/{inschrijving.Id}/status'>link</a> kan u een QR-code raadplegen. Bied deze QR-code aan bij het inchecken, dit zal het proces vlotter laten verlopen."); inhoudHtml = GetInhoudVolgensFormaat(inhoudDeel2, inhoudHtml, formaat); inhoudHtml = DetailsInschrijvingHtmlAanvullen(inschrijving, inhoudHtml); inhoudHtml = GetInhoudVolgensFormaat(inhoudDeel3, inhoudHtml, formaat); formaat = "txt"; StringBuilder inhoudTxt = new StringBuilder(); inhoudTxt = GetInhoudVolgensFormaat(inhoudDeel1, inhoudTxt, formaat); inhoudTxt.AppendLine($"Via deze link (https://delozerkermisvrienden-organizer-ui.azurewebsites.net/inschrijvingen/{inschrijving.Id}/status) kan u een QR-code raadplegen. Bied deze QR-code aan bij het inchecken, dit zal het proces vlotter laten verlopen."); inhoudTxt = GetInhoudVolgensFormaat(inhoudDeel2, inhoudTxt, formaat); inhoudTxt = DetailsInschrijvingTxtAanvullen(inschrijving, inhoudTxt); inhoudTxt = GetInhoudVolgensFormaat(inhoudDeel3, inhoudTxt, formaat); SendGridMessage bericht = MaakNieuwSendGridBericht(verzender, ontvangers, onderwerp, inhoudTxt.ToString(), inhoudHtml.ToString()); VerstuurMail(bericht).Wait(); } }