public static void SendEmailToWinner(IContestant winner, string sweepStakesName) { var message = new MimeMessage(); message.From.Add(new MailboxAddress("Marketing Manager", "*****@*****.**")); message.To.Add(new MailboxAddress($"{winner.FirstName} {winner.LastName}", winner.EmailAddress)); message.Subject = "Congratulations!"; message.Body = new TextPart("plain") { Text = $@"Hey {winner.FirstName}, You have won the {sweepStakesName} sweepstakes! -- Milan" }; using (var client = new SmtpClient()) { client.Connect("smtp.gmail.com", 587, false); // Note: only needed if the SMTP server requires authentication client.AuthenticationMechanisms.Remove("XOAUTH2"); client.Authenticate("*****@*****.**", "devCodeCamp"); client.Send(message); client.Disconnect(true); } }
public Winner(IContestant contestant) { FirstName = contestant.FirstName; LastName = contestant.LastName; EmailAddress = contestant.EmailAddress; RegistrationNumber = contestant.RegistrationNumber; }
public static int PinsLeft(this IContestant contestant) { if (contestant.IsInstanceComplete) { return(-1); } bool hasPreviousFrame = contestant.ScoringData.Any(); if (!hasPreviousFrame) { return(10); } else { IEnumerable <IScoreRecord> previousFrame = contestant.ScoringData.GroupBy(x => x.ScoreFrame).Last().AsEnumerable(); int previousFrameNumber = previousFrame.First().ScoreFrame; //check if bonus round bool previousFrameComplete = previousFrameNumber < 10 ? previousFrame.Sum(x => x.Score) == 10 || previousFrame.Count() == 2 : false; if (!previousFrameComplete) { return(10 - previousFrame.Sum(x => x.Score)); } else { return(10); } } }
public void ConvertToWinner(int i) { contestWinner = new Winner(); contestWinner.FirstName = contestants[i].FirstName; contestWinner.LastName = contestants[i].LastName; contestWinner.Email = contestants[i].Email; contestWinner.RegistrationCode = contestants[i].RegistrationCode; }
public void Notify(IContestant contestant) { if (isWinner == true) { Console.WriteLine(); } else { Console.WriteLine(); } }
private static void RunContests(Random rnd, int nbrOfRuns, int nbrOfDoors, Type contestantType) { var host = new Host(rnd); var wins = 0; var losses = 0; const string fmtSummary = "{0} Wins {1:N0}, Losses {2:N0}"; // const string fmtResult = "Round {0:D3} InitialChoice: {1:D2} OpenDoor: {2:D2} FinalChoice: {3:D2} PrizeDoor: {4:D2} "; string contestantDescription = null; for (int i = 0; i < nbrOfRuns; i++) { var doors = new Doors(rnd); IContestant contestant = null; if (contestantType == typeof(SteadfastContestant)) { contestant = new SteadfastContestant(rnd); contestantDescription = "Steadfast Contestant"; } else if (contestantType == typeof(SwitchyContestant)) { contestant = new SwitchyContestant(rnd); contestantDescription = "Switchy Contestant"; } var contest = new Contest(rnd) { Doors = doors, Host = host }; contest.Setup(contestant); var prize = contest.Play(); if (prize == PrizeType.Good) { wins++; } else { losses++; } //Console.WriteLine(fmtResult, i + 1, contestant.InitialDoorChoice, doors.ShownDoor.Id, contestant.DoorChoice, doors.WinnerDoor.Id); } Console.WriteLine(); Console.WriteLine(fmtSummary, contestantDescription, wins, losses); Console.WriteLine(); Console.WriteLine(); }
public static void PrintContestantInfo(IContestant contestant) { ClearPrintingArea(); SetPrintingCursorPosition(); Console.WriteLine($"Info for contestant {contestant.FirstName}"); Console.WriteLine($"Last Name: {contestant.LastName}"); Console.WriteLine($"Email: {contestant.EmailAddress}"); Console.WriteLine($"Registration: {contestant.RegistrationNumber}"); Console.WriteLine($"---------------------------------"); Console.WriteLine($"Press enter to return to sweepstakes menu"); Console.ReadLine(); }
/// <summary> /// /// </summary> /// <param name="contest"></param> /// <param name="rollInput"></param> /// <returns>The amount of pins that can be thrown on next throw, -1 if player game is done</returns> public static int Roll(this IContest contest, Roll rollInput) { IContestant contestant = contest.Contestants.FirstOrDefault(x => x.ContestantName == rollInput.ContestantName); int pins = 0; if (!contestant.IsInstanceComplete) { pins = contestant.Roll(rollInput.PinsKnocked); } return(contestant.IsInstanceComplete ? -1 : pins); }
public static void PrintWinner(IContestant winner, string sweepStakesName) { ClearPrintingArea(); SetPrintingCursorPosition(); Console.WriteLine($"WINNER! {winner.FirstName}"); Console.WriteLine($"Last Name: {winner.LastName}"); Console.WriteLine($"Email: {winner.EmailAddress}"); Console.WriteLine($"Registration: {winner.RegistrationNumber}"); Console.WriteLine($"---------------------------------"); Console.WriteLine($"Press enter to send notifications, close the sweepstakes, and return to main sweepstakes menu."); Console.ReadLine(); SendEmailToWinner(winner, sweepStakesName); }
public void NotifyContestants(IContestant contestant) { Contestant winner = PickWinner(); foreach (KeyValuePair <int, Contestant> key in contestants) { if (winner.EmailAddress == key.Value.EmailAddress) { UserInterface.NotifyWinner(winner.FirstName, winner.LastName); } else { contestant.Notify(contestant); } } }
public static int GetLastScoredFrame(this IContestant contestant) { if (contestant.IsInstanceComplete) { return(10); } bool hasPreviousFrame = contestant.ScoringData.Any(); if (!hasPreviousFrame) { return(0); } else { return(contestant.ScoringData.Last().ScoreFrame); } }
public void Setup(IContestant contestant) { const int nbrOfDoors = 3; Contestant = contestant; if (Doors == null) { Doors = new Doors(_rnd); } if (Host == null) { Host = new Host(_rnd); } Doors.Setup(nbrOfDoors); }
/// <summary> /// /// </summary> /// <param name="contestant"></param> /// <param name="pins"></param> /// <returns>The max pins for next throw</returns> public static int Roll(this IContestant contestant, int pins) { bool hasPreviousFrame = contestant.ScoringData.Any(); if (!hasPreviousFrame) { pins = pins >= 10 ? 10 : pins; contestant.ScoringData.Add(new FrameData { ScoreFrame = 1, Score = pins }); return(pins >= 10 ? 10 : 10 - pins); } else { IEnumerable <IScoreRecord> previousFrame = contestant.ScoringData.GroupBy(x => x.ScoreFrame).Last().AsEnumerable(); int previousFrameNumber = previousFrame.First().ScoreFrame; //check if bonus round bool previousFrameComplete = previousFrameNumber < 10 ? previousFrame.Sum(x => x.Score) == 10 || previousFrame.Count() == 2 : false; if (!previousFrameComplete) { contestant.IsInstanceComplete = previousFrameNumber == 10 && previousFrame.Count() == 1 && previousFrame.Sum(x => x.Score) + pins < 10 || previousFrameNumber == 10 && previousFrame.Count() == 2; contestant.ScoringData.Add(new FrameData { ScoreFrame = previousFrameNumber, Score = pins }); return(10); } else { pins = pins >= 10 ? 10 : pins; contestant.ScoringData.Add(new FrameData { ScoreFrame = previousFrameNumber + 1, Score = pins }); return(10 - pins > 0 ? 10 - pins : 10); } } }
public static void SetScore(IContestant contestant1, IContestant contestant2) { if (contestant1.LastChoice == StrategyChoice.Cooperate && contestant2.LastChoice == StrategyChoice.Cooperate) { contestant1.AddScore(scoreUnit); contestant2.AddScore(scoreUnit); } else if (contestant1.LastChoice == StrategyChoice.Cooperate && contestant2.LastChoice == StrategyChoice.Defect) { contestant1.AddScore(0); contestant2.AddScore(scoreUnit * 2); } else if (contestant1.LastChoice == StrategyChoice.Defect && contestant2.LastChoice == StrategyChoice.Cooperate) { contestant1.AddScore(scoreUnit * 2); contestant2.AddScore(0); } else { contestant1.AddScore(0); contestant2.AddScore(0); } }
public void Notify(IContestant contestant) { Console.Write("Congratulations {0} You have won the sweepstakes!\n", contestant.FirstName); }
public void PrintContestantInfo(IContestant contestant) { Console.WriteLine(contestant.RegistrationCode + " " + contestant.FirstName + " " + contestant.LastName + " " + contestant.Email + " is registered."); }
public void Notify(IContestant contestant) { //Console.Write("The winner of this sweepstake is {0}! \n", ); }
public void Inform(IContestant contestant) { Console.WriteLine("Thank you, {0} for participating, contestant.Name); }
public void Notify(IContestant contestant) { Console.Write("Sorry {0} You have lost the sweepstakes!\n", contestant.FirstName); }
public void Notify(IContestant contestant) { Console.WriteLine(firstName + " you are the winner"); }
public void PrintWinnerInfo(IContestant contestant) { Console.WriteLine("The winner is " + contestant.RegistrationCode + " " + contestant.FirstName + " " + contestant.LastName + " " + contestant.Email); }
public PrisonersDilemma(IContestant contestant1, IContestant contestant2) { this.contestant1 = contestant1; this.contestant2 = contestant2; }
public void PrintContestantInfo(IContestant contestant) { UserInterface.PrintContestantInfo(contestant); }
//member methods (CAN DO) public void NotifyWinner(IContestant winner) { Console.WriteLine("Congratulations, you win! Please respond to claim your prize."); }
public void Notify(IContestant contestant) { Console.WriteLine("The winner has been drawn, better luck next time, {0}!", contestant.FirstName); }
public void Setup() { _contestant = new BowlingGame.Web.Models.BowlingContestant(); }
public void Notify(IContestant contestant) { Console.WriteLine(firstName + " you are a loser."); }
public void NotifyLoser(IContestant contestant) { Console.WriteLine("Sorry, you did not win the sweepstakes. If you would like, please enter our new sweepstakes."); }
public void Notify(IContestant contestant) { Console.WriteLine("Thank you, {0} for entering", contestant.Name); }
public static void AddToSweepstakes(IContestant contestant, ContestastName1, Contestant Name2) { Sweepstakes.Add(contestant, contestantName1, contestantName2); }