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); } }
/// <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); }
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); }
/// <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); }