// Method adding Ticket public void AddTicket(LotteryTicket ticket) { if (ticket != null) { Tickets.Add(ticket); } }
// 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); } } } } }
// 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}"); }
// 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); } }
// 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); } }
// 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); } }
//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); } } }
//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; } }