public async void AddMegamillionNumber(Megamillion number)
        {
            number.created_on  = DateTime.Now;
            number.modified_on = DateTime.Now;
            number.megaball    = number.megaball.Trim();
            number.megaplier   = number.megaplier.Trim();
            number.jackpot     = number.jackpot.Trim();

            var latestMegamillion = _ctx.Megamillions.LastOrDefault();

            if (latestMegamillion != null)
            {
                if (number.draw_date > latestMegamillion.draw_date)
                {
                    _ctx.Megamillions.Add(number);

                    if (this.env.IsProduction())
                    {
                        var htmlEmail =
                            $"A new Megamillions Number has been drawn: {number.ball1} - {number.ball2} - {number.ball3} - {number.ball4} - {number.ball5} Megaball: {number.megaball} Megaplier: {number.megaplier}";
                        await _emailSender.SendEmailAsync("*****@*****.**", "New Megamillions Draw", htmlEmail);
                    }
                }
            }
        }
        public async Task <Megamillion> GetLastMegamillion()
        {
            Megamillion megamillion = null;
            HttpClient  client      = new HttpClient();

            client.BaseAddress = new Uri(this.configuration.GetSection("BaseUrl").Value);
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            HttpResponseMessage response = await client.GetAsync("/api/megamillion/GetLatestMegamillion");

            if (response.IsSuccessStatusCode)
            {
                megamillion = await response.Content.ReadAsAsync <Megamillion>();

                return(megamillion);
            }

            return(null);
        }
        public void GetMegamillionDetails()
        {
            string megaUrl = "http://www.lotteryusa.com/mega-millions/";

            HtmlWeb      megaWeb = new HtmlWeb();
            HtmlDocument megaDoc = megaWeb.Load(megaUrl);

            IEnumerable <string> megaList =
                megaDoc.DocumentNode.SelectNodes(@"//ul[@class='draw-result list-unstyled list-inline']/li")
                .Select(li => li.InnerText);
            var megaDate     = megaDoc.DocumentNode.SelectSingleNode(@"//span[@class='date']/time");
            var mDate        = megaDate.Attributes["datetime"].Value;
            var megaJackpot  = megaDoc.DocumentNode.SelectSingleNode(@"//span[@class='jackpot-amount']").InnerText;
            var mNextJackpot = megaDoc.DocumentNode.SelectSingleNode(@"//span[@class='next-jackpot-amount']")
                               .FirstChild.InnerText;
            var mNextJackpotDate = megaDoc.DocumentNode.SelectSingleNode(@"//span[@class='next-draw-date']").InnerText;

            foreach (string megaItem in megaList)
            {
                Console.WriteLine(megaItem);
            }
            Console.WriteLine(mDate.ToString());
            Console.WriteLine(megaJackpot);
            Megamillion mBall = new Megamillion()
            {
                ball1     = megaList.ElementAt(0).PadLeft(2, '0'),
                ball2     = megaList.ElementAt(1).PadLeft(2, '0'),
                ball3     = megaList.ElementAt(2).PadLeft(2, '0'),
                ball4     = megaList.ElementAt(3).PadLeft(2, '0'),
                ball5     = megaList.ElementAt(4).PadLeft(2, '0'),
                megaball  = megaList.ElementAt(5).Replace(" MB", string.Empty).TrimEnd().PadLeft(2, '0'),
                megaplier = megaList.ElementAt(6).Replace("Megaplier: ", string.Empty).PadRight(2, 'X'),
                draw_date = Convert.ToDateTime(mDate),
                jackpot   = megaJackpot
            };

            AddMegamillionNumber(mBall);
            UpdateMegaPrizeJackpot(mBall.jackpot);
            AddNextMegamillionsJackpot(mNextJackpot, Convert.ToDateTime(mNextJackpotDate));
            UpdateMegamillionWinners();
        }