public List <Score> GetTrainingScores(DateTime date)
        {
            try
            {
                using (var ctx = new FootballEntities())
                {
                    var result   = new List <Score>();
                    var dbScores = ctx.Scores
                                   .Where(s => s.Date < date)
                                   .OrderByDescending(s => s.Date)
                                   .Take(TRAINING_SET_CARDINALITY);

                    RatioCalculator rc = new RatioCalculator();

                    foreach (var s in dbScores)
                    {
                        if (s.HOR == null)
                        {
                            result.Add(rc.SetRatio(s));
                        }
                        else
                        {
                            result.Add(s);
                        }
                    }
                    logger.InfoFormat("Training scores set (before date: {0}) have been created successfully. Training scores count = {1}", date, result.Count);
                    return(result);
                }
            }
            catch (Exception e)
            {
                logger.Error(string.Format("GetTrainingScores (date = {0}) failed due to exception", date), e);
                return(null);
            }
        }
 public Predictor()
 {
     Machine    = new PredictingMachine();
     Calculator = new RatioCalculator();
 }