Exemplo n.º 1
0
        private int GenerateBarcodeNumber()
        {
            Random rand    = new Random();
            int    barcode = (rand.Next(1000, 9999) * 1000) + Vereniging.GroepId;

            while (Editie.IsExistingTicket(barcode))
            {
                barcode = (rand.Next(1000, 9999) * 1000) + Vereniging.GroepId;
            }
            Console.Write(barcode);
            return(barcode);
        }
 /*
  * Returns int with status about verkoopmoment
  * 0 = can buy
  * 1 = no tickets left
  * 2 = no verkoopmoment at this moment
  * 3 = has already bought tickets
  */
 public int CanVerenigingBuy(Vereniging vereniging)
 {
     if (Editie.GetAmountTicketsRemaining() <= 0)
     {
         return(1);
     }
     if (!IsHappening())
     {
         return(2);
     }
     if (Bestellingen.Any(b => b.Vereniging == vereniging))
     {
         return(3);
     }
     return(0);
 }
        public Bestelling PlaatsBestelling(Vereniging vereniging, int aantalTickets)
        {
            int ticketsBeschikbaar = Editie.GetAmountTicketsRemaining();

            if (ticketsBeschikbaar < aantalTickets)
            {
                throw new ArgumentException($"Sorry, er zijn slechts {ticketsBeschikbaar} over. Gelieve minder tickets te bestellen.");
            }
            if (StartDatum >= DateTime.Now || EindDatum <= DateTime.Now)
            {
                throw new ArgumentException("Er kunnen nu geen bestellingen geplaatst worden, keer terug op een verkoopmoment.");
            }
            if (Bestellingen.Any(b => b.Vereniging.GroepId == vereniging.GroepId))
            {
                throw new ArgumentException("Deze vereniging heeft reeds een bestelling geplaatst");
            }
            if (vereniging.IsGroot && aantalTickets > MaxTicketsGroot)
            {
                throw new ArgumentException($"Deze vereniging kan maximaal {MaxTicketsGroot} tickets bestellen");
            }
            if (!vereniging.IsGroot && aantalTickets > MaxTicketsKlein)
            {
                throw new ArgumentException($"Deze vereniging kan maximaal {MaxTicketsKlein} tickets bestellen");
            }
            if (vereniging.MaxTicketsException != null)
            {
                int amountAlreadyOrdered = Editie.GetAmountTicketsOrderedByVereniging(vereniging);
                if (aantalTickets + amountAlreadyOrdered > vereniging.MaxTicketsException.Value)
                {
                    int ticketsLeft = vereniging.MaxTicketsException.Value - amountAlreadyOrdered;
                    throw new ArgumentException($"Deze vereniging kan maar {ticketsLeft} tickets meer bestellen");
                }
            }

            Bestelling bestelling = new Bestelling(this, vereniging, aantalTickets);

            Bestellingen.Add(bestelling);
            return(bestelling);
        }