private ParseResults HandleReplay(CQ replayDiv)
        {
            var results = new ParseResults();

            results.IsWinner = false;
            results.IsReplay = true;

            results.FollowUpUrl = replayDiv.Attr("href");

            return(results);
        }
        private List <Prize> ClaimPrize(ParseResults results)
        {
            var request = CreateRequest(results.FollowUpUrl, Method.GET);

            var response = Client.Execute(request);

            // Check response and handle errors

            // If the call was successful, then return the prizes
            return(results.Prizes);
        }
        private ParseResults HandleWinner(CQ prizeDivs, CQ redeemAnchor)
        {
            var results = new ParseResults();

            results.IsWinner    = true;
            results.IsReplay    = false;
            results.Prizes      = prizeDivs.Select(x => CreatePrizeFromDom(x)).ToList();
            results.FollowUpUrl = redeemAnchor.Attr("href");

            return(results);
        }
        private List <Prize> Replay(ParseResults results)
        {
            var prizes = new List <Prize> ();

            var request = CreateRequest(results.FollowUpUrl, Method.GET);

            var response = Client.Execute(request);

            // Parse the results
            var replayResults = parser.Parse(response.Content);

            if (replayResults.IsWinner)
            {
                // Claim Prize
                prizes = ClaimPrize(replayResults);
            }
            else if (replayResults.IsReplay)
            {
                // Replay
                prizes = Replay(replayResults);
            }

            return(prizes);
        }