Esempio n. 1
0
        [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));
        }
Esempio n. 2
0
        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;
                    }
                }
            }
        }