Esempio n. 1
0
        /// <summary>
        /// Picks a winner from the entered raffles
        /// </summary>
        public void PickWinner(bool closedByTimer = true)
        {
            if (mRaffleEntryList.Count > 0)
            {
                /*Close raffle*/
                Console.WriteLine("Picking winner...");
                mRaffleOpen = false;
                mRaffleTimer.Stop();
                mProvably.PreWin();
                Thread.Sleep(500);

                /*If it was not finished by timer, send in an invalid timestamp to stop timer*/
                if (!closedByTimer)
                {
                    Config.UpdateRaffle UR = new Config.UpdateRaffle()
                    {
                        currentsize = mRaffleSize,
                        raffletime  = DateTime.UtcNow.AddHours(-1).ToString("yyyy MM dd HH mm ss")
                    };
                    string jsonUR = JsonConvert.SerializeObject(UR, Formatting.None);
                    Website.UpdateRaffle(jsonUR);
                }

                /*Start new raffle*/
                var raffle = new Raffle <Config.Entry>();
                foreach (var entry in mRaffleEntryList)
                {
                    raffle.Add(entry, entry.Value);
                }

                /*Draw a winner*/
                var winner = raffle.Draw(mProvably.mProvablyOld.RaffleRandom);
                Console.WriteLine("Winner: {0}", winner.Key.SteamID);
                Website.NewWinner(
                    winner.Key.SteamID,
                    mProvably.mProvablyNew.PublicKey,
                    mProvably.mProvablyOld.PrivateKey,
                    mProvably.mProvablyOld.PrivateRandom);
                mProvably.PostWin();
                Thread.Sleep(10000);

                /*Reset raffle*/
                mRaffleOpen = true;
                mRaffleEntryList.Clear();
            }
            else
            {
                Console.WriteLine("Need at least one entry to pick a winner");
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Starts the raffle timer
        /// </summary>
        private void StartRaffleTimer()
        {
            /*Get utc timestamp*/
            Console.WriteLine("Starting timer");
            string utcTimestamp = DateTime.UtcNow.AddMinutes(3).ToString("yyyy MM dd HH mm ss");

            /*Send info to site and start timer*/
            Config.UpdateRaffle ur = new Config.UpdateRaffle()
            {
                currentsize = mRaffleSize,
                raffletime  = utcTimestamp
            };
            string jsonur = JsonConvert.SerializeObject(ur, Formatting.Indented);

            Website.UpdateRaffle(jsonur);
            mRaffleTimer.Start();
        }