示例#1
0
 // Method adding Ticket
 public void AddTicket(LotteryTicket ticket)
 {
     if (ticket != null)
     {
         Tickets.Add(ticket);
     }
 }
示例#2
0
        // Method setting tickets per players and per draws
        public void SetTickets()
        {
            foreach (Player player in Players)
            {
                foreach (Draw draw in Draws)
                {
                    LotteryTicket ticket = new LotteryTicket();
                    player.AddTicket(ticket);
                    ticket.SetDrawID(draw.ID);
                    ticket.SetPlayerID(player.ID);
                }
            }

            foreach (Draw draw in Draws)
            {
                foreach (Player player in Players)
                {
                    foreach (LotteryTicket ticket in player.Tickets)
                    {
                        if (ticket.DrawID == draw.ID)
                        {
                            draw.AddTicket(ticket);
                        }
                    }
                }
            }
        }
示例#3
0
        // Method setting result message
        public void AddMessage(LotteryTicket ticket)
        {
            if (ticket == null)
            {
                throw new ArgumentNullException("A Ticket must not be null to add TicketChecker message");
            }

            Console.WriteLine(ticket.WinningNumbers.Count != 0 ? $"Ticket #{ticket} Win Status: {Message = 0}" : $"Ticket #{ticket} Win Status: {Message = (ReturnStatus)1}");
        }
示例#4
0
        // Method getting random possibility player played Kino Bonus
        public static void KinoBonusChoice(LotteryTicket ticket)
        {
            if (ticket == null)
            {
                throw new ArgumentNullException("ticket", "Ticket cannot be null to select Kino Bonus option. ");
            }

            if (random.Next() % 2 == 0)
            {
                ticket.AddKinoBonusOption(true);
            }
            else
            {
                ticket.AddKinoBonusOption(false);
            }
        }
示例#5
0
        // Method selecting 6 unique random numbers for player selection
        public static void SelectSixRandomNumbers(LotteryTicket ticket)
        {
            if (ticket == null)
            {
                throw new ArgumentNullException("ticket", "Ticket cannot be null to select random numbers");
            }

            var defaultNumbers = DefaultNumbers();

            for (int i = 1; i <= 6; i++)
            {
                int randomNumber = random.Next(defaultNumbers.Count);
                ticket.AddSelectedNumber(defaultNumbers[randomNumber]);
                defaultNumbers.RemoveAt(randomNumber);
            }
        }
示例#6
0
        // Method checking if player won Kino Number
        public void KinoBonusCheck(LotteryTicket ticket, Draw draw)
        {
            if (ticket == null || draw == null)
            {
                throw new ArgumentNullException("A Ticket or Draw must not be null to check Numbers");
            }

            if (ticket.KinoBonusOption == true)
            {
                if (ticket.WinningNumbers.Contains(draw.KinoBonus))
                {
                    ticket.AddKinoBonusWinnerStatus(true);
                }
                else
                {
                    ticket.AddKinoBonusWinnerStatus(false);
                }
            }
            else
            {
                ticket.AddKinoBonusWinnerStatus(false);
            }
        }
示例#7
0
        //Method checking how many numbers each Ticket won
        public void CheckNumbers(LotteryTicket ticket, Draw draw)
        {
            if (ticket == null || draw == null)
            {
                throw new ArgumentNullException("A Ticket or Draw must not be null to check Numbers");
            }

            var tempList = new List <int>();

            ticket.SelectedNumbers.AddRange(draw.DrawResults);

            foreach (int number in ticket.SelectedNumbers)
            {
                if (!tempList.Contains(number))
                {
                    tempList.Add(number);
                }
                else
                {
                    ticket.AddWonNumber(number);
                }
            }
        }
示例#8
0
        //Method setting PrizeTier per Ticket
        public void SetTicketCategory(LotteryTicket ticket)
        {
            if (ticket is null)
            {
                throw new ArgumentNullException("A Ticket must not be null to set Ticket Category");
            }

            switch (ticket.WinningNumbers.Count)
            {
            case 1:
                if (ticket.KinoBonusWinner == true)
                {
                    ticket.AddWinningCategory(PrizeTierCategory.OneOutOfSixWithKinoBonus);
                }
                else
                {
                    ticket.AddWinningCategory(PrizeTierCategory.OneOutOfSix);
                }
                break;

            case 2:
                if (ticket.KinoBonusWinner == true)
                {
                    ticket.AddWinningCategory(PrizeTierCategory.TwoOutOfSixWithKinoBonus);
                }
                else
                {
                    ticket.AddWinningCategory(PrizeTierCategory.TwoOutOfSix);
                }
                break;

            case 3:
                if (ticket.KinoBonusWinner == true)
                {
                    ticket.AddWinningCategory(PrizeTierCategory.ThreeOutOfSixWithKinoBonus);
                }
                else
                {
                    ticket.AddWinningCategory(PrizeTierCategory.ThreeOutOfSix);
                }
                break;

            case 4:
                if (ticket.KinoBonusWinner == true)
                {
                    ticket.AddWinningCategory(PrizeTierCategory.FourOutOfSixWithKinoBonus);
                }
                else
                {
                    ticket.AddWinningCategory(PrizeTierCategory.FourOutOfSix);
                }
                break;

            case 5:
                if (ticket.KinoBonusWinner == true)
                {
                    ticket.AddWinningCategory(PrizeTierCategory.FiveOutOfSixWithKinoBonus);
                }
                else
                {
                    ticket.AddWinningCategory(PrizeTierCategory.FiveOutOfSix);
                }
                break;

            case 6:
                if (ticket.KinoBonusWinner == true)
                {
                    ticket.AddWinningCategory(PrizeTierCategory.SixOutOfSixWithKinoBonus);
                }
                else
                {
                    ticket.AddWinningCategory(PrizeTierCategory.SixOutOfSix);
                }
                break;

            default:
                ticket.AddWinningCategory(PrizeTierCategory.ZeroOutOfSix);
                break;
            }
        }