public ReportDataServices(LotteryDetails lotteryDetails)
 {
     this.lotteryDetails        = lotteryDetails;
     this.lotteryDataDerivation = new LotteryDataDerivation(GameMode);
     this.lotteryTicketPanelDao = LotteryTicketPanelDaoImpl.GetInstance();
     this.lotteryOutletDao      = LotteryOutletDaoImpl.GetInstance();
     this.lotteryBetDao         = LotteryBetDaoImpl.GetInstance();
     this.userSettingDao        = UserSettingDaoImpl.GetInstance();
     this.lotteryScheduleDao    = LotteryScheduleDaoImpl.GetInstance();
     this.lotteryWinningBetDao  = LotteryWinningBetDaoImpl.GetInstance();
     this.lotteryDataWorker     = new LotteryDataWorker();
     this.lotteryDrawResultDao  = LotteryDrawResultDaoImpl.GetInstance();
 }
        public void ProcessWinningBet(LotteryBet lotteryBet)
        {
            GameMode gameMode = ClassReflectionUtil.FindGameMode(lotteryBet.GetGameCode());
            LotteryWinningCombinationDao lotteryWinningCombinationDao = LotteryWinningCombinationDaoImpl.GetInstance();
            LotteryWinningCombination    lotteryWinningCombination    = lotteryWinningCombinationDao.GetLotteryWinningCombination(gameMode);

            RaiseEvent(LotteryDataWorkerEventStages.EXTRACTING, ResourcesUtils.GetMessage("lot_data_worker_cls_msg_3"));
            LotteryWinningBetDao lotteryWinningBetDao = LotteryWinningBetDaoImpl.GetInstance();

            RaiseEvent(LotteryDataWorkerEventStages.EXTRACTING, ResourcesUtils.GetMessage("lot_data_worker_cls_msg_4"));
            LotteryDrawResultDao lotteryDrawResultDao = LotteryDrawResultDaoImpl.GetInstance();

            LotteryDrawResult betDrawResult = lotteryDrawResultDao.GetLotteryDrawResultByDrawDate(
                gameMode, lotteryBet.GetTargetDrawDate());
            LotteryWinningBetSetup lotteryWinningBet = new LotteryWinningBetSetup();

            lotteryWinningBet.LotteryBetId = lotteryBet.GetId();

            if (betDrawResult == null)
            {
                return;
            }
            if (betDrawResult.IsDrawResulDetailsEmpty())
            {
                return;
            }

            int matchingNumberCtr = 0;

            foreach (int bet in lotteryBet.GetBetNumbersAsArray())
            {
                if (betDrawResult.IsWithinDrawResult(bet))
                {
                    matchingNumberCtr++;
                    lotteryWinningBet.FillNumberBySeq(matchingNumberCtr, bet);
                }
            }

            if (lotteryWinningBet.IsNumberSequenceMatchesAll(betDrawResult.GetAllNumberSequence()))
            {
                lotteryWinningBet.WinningAmount = betDrawResult.GetJackpotAmt();
            }
            else
            {
                lotteryWinningBet.WinningAmount = lotteryWinningCombination.GetWinningAmount(matchingNumberCtr);
            }

            RaiseEvent(LotteryDataWorkerEventStages.INSERT, ResourcesUtils.GetMessage("lot_data_worker_cls_msg_5"));
            lotteryWinningBetDao.InsertWinningBet(lotteryWinningBet);
        }
Beispiel #3
0
 public LotteryDataServices(LotteryDetails lotteryDetails)
 {
     this.lotteryDetails               = lotteryDetails;
     this.userSetting                  = new UserSettings();
     this.lotteryDataDerivation        = new LotteryDataDerivation(this.LotteryDetails.GameMode);
     this.lotteryTicketPanelDao        = LotteryTicketPanelDaoImpl.GetInstance();
     this.lotteryOutletDao             = LotteryOutletDaoImpl.GetInstance();
     this.lotteryBetDao                = LotteryBetDaoImpl.GetInstance();
     this.userSettingDao               = UserSettingDaoImpl.GetInstance();
     this.lotteryScheduleDao           = LotteryScheduleDaoImpl.GetInstance();
     this.lotteryWinningBetDao         = LotteryWinningBetDaoImpl.GetInstance();
     this.lotteryDataWorker            = new LotteryDataWorker();
     this.lotteryDrawResultDao         = LotteryDrawResultDaoImpl.GetInstance();
     this.lotterySeqGenDao             = LotterySequenceGenDaoImpl.GetInstance();
     this.lotteryWinningCombinationDao = LotteryWinningCombinationDaoImpl.GetInstance();
 }
        public void ProcessAdjustCorrectTargetDrawDate(GameMode gameMode)
        {
            //LotteryWinningCombinationDao lotteryWinningCombinationDao = LotteryWinningCombinationDaoImpl.GetInstance();
            LotteryBetDao        lotteryBetDao        = LotteryBetDaoImpl.GetInstance();
            LotteryDrawResultDao lotteryDrawResultDao = LotteryDrawResultDaoImpl.GetInstance();
            List <LotteryBet>    lotteryBetArr        = lotteryBetDao.GetDashboardLatestBets(gameMode, DateTime.Now.AddDays(-9999), DateTime.Now);

            foreach (LotteryBet lotteryBet in lotteryBetArr)
            {
                DateTime dt = lotteryDrawResultDao.GetNextDrawDate(gameMode, lotteryBet.GetTargetDrawDate());

                if (!((DateTime.Now.Year - dt.Year) >= 12))
                {
                    lotteryBetDao.UpdateTargetDrawDate(lotteryBet.GetId(), dt);
                }
            }
        }
        public void StartScraping(List <LotteryDetails> lotteriesDetailsArr)
        {
            this.lotteriesDetailsArr = lotteriesDetailsArr;
            LotteryDrawResultDao lotteryDao = LotteryDrawResultDaoImpl.GetInstance();

            try
            {
                foreach (LotteryDetails lotteryDetails in this.lotteriesDetailsArr)
                {
                    this.currentLotteryDetailsProcess = lotteryDetails;
                    RaiseEvent(LottoWebScrapingStages.INIT);
                    this.sinceWhenToScrape = lotteryDao.GetLatestDrawDate(lotteryDetails.GameMode);
                    ScrapeWebsite(lotteryDetails, GenerateParameters(lotteryDetails));
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        internal async void ScrapeWebsite(LotteryDetails lotteryDetails, Dictionary <string, string> parameters)
        {
            try
            {
                RaiseEvent(LottoWebScrapingStages.CONNECTING);
                IHtmlDocument documentForSession = await GetWebsiteDOMAsync(GenerateParameters(lotteryDetails));

                RaiseEvent(LottoWebScrapingStages.SESSION_CREATION);
                Dictionary <string, string> sessionParam = GetSessionBasedParameters(lotteryDetails, documentForSession);
                RaiseEvent(LottoWebScrapingStages.SEARCHING_DATA);
                IHtmlDocument document = await GetWebsiteDOMAsync(sessionParam);

                RaiseEvent(LottoWebScrapingStages.SCRAPING);
                List <LotteryDrawResult> lotteryDrawResultArr = GetScrapeResults(lotteryDetails, document);

                int countCtr = 1;
                LotteryDrawResultDao lotteryDao = LotteryDrawResultDaoImpl.GetInstance();
                foreach (LotteryDrawResult scrapeResult in lotteryDrawResultArr.ToList())
                {
                    LotteryDrawResult result = lotteryDao.GetLotteryDrawResultByDrawDate(lotteryDetails.GameMode, scrapeResult.GetDrawDate());
                    if (result == null && !scrapeResult.IsDrawResulSequenceEmpty())
                    {
                        newRecordsCount++;
                        lotteryDao.InsertDrawDate(scrapeResult);
                    }
                    RaiseEvent(LottoWebScrapingStages.INSERT, ConverterUtils.GetPercentageFloored(countCtr++, lotteryDrawResultArr.Count), scrapeResult.GetExtractedDrawnResultDetails());
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                RaiseEvent(LottoWebScrapingStages.ERROR, 0, ex.Message);
            }
            finally
            {
                RaiseEvent(LottoWebScrapingStages.FINISH);
            }
        }