[AcceptVerbs("Get", "Post")] //REMOTE public IActionResult CheckAskedAmountOfTickets(int aantalTickets, Vereniging vereniging) { McEditie editie = _editieRepository.GetNextOrCurrentEditie(); Verkoopmoment verkoopmoment = editie.GetCurrentOrNextVerkoopMoment(); int maxTicketsVereniging = verkoopmoment.GetMaxTicketsVereniging(vereniging); int maxTicketsLeft = verkoopmoment.Editie.GetAmountTicketsRemaining(); if (aantalTickets <= 0) { return(Json("Sorry, u moet een positief aantal tickets bestellen")); } if (aantalTickets > maxTicketsLeft) { return(Json($"Sorry, er zijn slechts {maxTicketsLeft} tickets meer beschikbaar")); } if (aantalTickets > maxTicketsVereniging) { return(Json($"Sorry, u kan maximaal maar {maxTicketsVereniging} tickets bestellen")); } //check if vereniging has an exception amount, limits stay the same if (vereniging.MaxTicketsException != null) { int amountAlreadyOrdered = editie.GetAmountTicketsOrderedByVereniging(vereniging); if (aantalTickets + amountAlreadyOrdered > vereniging.MaxTicketsException.Value) { int ticketsLeft = vereniging.MaxTicketsException.Value - amountAlreadyOrdered; return(Json($"Sorry, u kan nog maximaal maar {ticketsLeft} tickets bestellen")); } } return(Json(true)); }
public VerkoopIndexViewModel(McEditie editie, Vereniging vereniging) { HasNextVerkoopmoment = false; if (editie != null) { EditieNaam = editie.Naam; Verkoopmoment verkoopmoment = editie.GetCurrentOrNextVerkoopMoment(); if (verkoopmoment != null) { HasNextVerkoopmoment = true; BuyingPossible = false; //enkel bij statuscode 0 op true latenkomen if (vereniging.IsGroot) { MaxTickets = verkoopmoment.MaxTicketsGroot; Grootte = "Groot"; } else { MaxTickets = verkoopmoment.MaxTicketsKlein; Grootte = "Klein"; } KostPrijs = editie.TicketPrijs; MedewerkersTax = editie.KostPerMedewerker; StartVerkoopmoment = verkoopmoment.StartDatum; EindVerkoopmoment = verkoopmoment.EindDatum; int status = verkoopmoment.CanVerenigingBuy(vereniging); switch (status) { case 0: Message = "Joepie! Momenteel kunt u tickets bestellen!"; BuyingPossible = true; break; case 1: Message = "Sorry, er zijn geen tickets meer beschikbaar voor deze editie :-("; break; case 2: Message = "Gelieve later terug te keren, momenteel is er geen verkoopmoment bezig"; break; case 3: Message = "Sorry, u kunt slechts 1 keer per verkoopmoment tickets kopen..."; break; default: Message = $"Er liep iets fout, gelieve contact op te nemen met de webmaster als het probleem zich blijft voordoen (status code {status})"; break; } } } }