Exemple #1
0
        public ActionResult <Lottery> GetLottery([FromQuery] LotteryFilter filter)
        {
            Lottery      lottery = null;
            ActionResult retval  = BadRequest(filter);

            try
            {
                if (!ModelState.IsValid)
                {
                    retval = BadRequest(ModelState);
                }
                else
                {
                    lottery = _service.getLottery(filter, true);

                    if (lottery != null)
                    {
                        retval = new OkObjectResult(lottery);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
            return(retval);
        }
        private void DoWork(object state)
        {
            List <Lottery> lotteries = new List <Lottery>();

            LotteryFilter filter = new LotteryFilter();

            DateTime currentDay = DateTime.Now.AddDays(-1);

            try
            {
                // infinite loop
                while (true)
                {
                    // Its a new day. Restart the process
                    if (currentDay.Date < DateTime.Now.Date)
                    {
                        Console.WriteLine(STARTING_DAILY_ANALYSIS);

                        // Get the lotteries
                        lotteries = _lotteryService.getLotteries(filter);

                        if (lotteries != null && lotteries.Count > 0)
                        {
                            // Proccess the Lotteries
                            foreach (Lottery lottery in lotteries)
                            {
                                // Analyze the lottery
                                _analyzerService.AnalyzeLottery(lottery);

                                // Update the lottery
                                _lotteryService.updateLottery(lottery);
                            }
                        }
                        // update the date
                        currentDay = DateTime.UtcNow;

                        Console.WriteLine(FINISHED_DAILY_ANALYSIS);
                    }
                    // Once automatic processing is complete for the day, check every hour for new day
                    Thread.Sleep(3600000);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
Exemple #3
0
        /// <summary>
        /// Get multiple lotteries determined by either domain, or just get all
        /// </summary>
        /// <param name="filter"></param>
        /// <returns></returns>
        public List <Lottery> getLotteries(LotteryFilter filter)
        {
            List <Lottery>       retval = null;
            IQueryable <Lottery> query  = null;

            try
            {
                if (filter != null)
                {
                    query = getLotteryQuery(filter);

                    retval = query.ToList();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
            return(retval);
        }
Exemple #4
0
        private IQueryable <Lottery> getLotteryQuery(LotteryFilter filter)
        {
            IQueryable <Lottery> query = null;

            try
            {
                query = _context.Lottery.Select(l => l);

                query.Include(l => l.LotteryNumbers);

                if (filter.LotteryId != null)
                {
                    query.Where(l => l.LotteryId == filter.LotteryId);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
            return(query);
        }
Exemple #5
0
        /// <summary>
        /// Get One Lottery defined by id in filter
        /// </summary>
        /// <param name="filter"></param>
        /// <returns></returns>
        public Lottery getLottery(LotteryFilter filter, bool updateStatistics)
        {
            Lottery retval             = null;
            IQueryable <Lottery> query = null;

            try
            {
                if (updateStatistics)
                {
                    _statsService.UpdateSearchStats(filter.LotteryId.ToString());
                }
                if (filter != null)
                {
                    query = getLotteryQuery(filter);

                    retval = query.FirstOrDefault();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
            return(retval);
        }