Ejemplo n.º 1
0
 internal TableData(ScoreTableModel model)
 {
     Id          = model.Id;
     Name        = model.Name;
     Description = model.Description;
     IsPrimary   = model.Primary == "1";
 }
Ejemplo n.º 2
0
        public List <ScoreTableModel> GetScoreTable()
        {
            List <ScoreTableModel> scoreTable = new List <ScoreTableModel>();
            ScoreTableModel        existingInScoreTable;
            ScoreModel             score;

            IQueryable <Prediction> predictedMatchs = _dbContext.Predictions.Where(p => p.Match.Tournament.IsActive &&
                                                                                   p.Match.MatchStartTime < DateTime.UtcNow &&
                                                                                   p.Match.ScoreHome.HasValue && p.Match.ScoreAway.HasValue);

            foreach (Prediction predictedMatch in predictedMatchs)
            {
                score = GetScore(predictedMatch.Match.ScoreHome.Value, predictedMatch.Match.ScoreAway.Value, predictedMatch.ScoreHome, predictedMatch.ScoreAway, predictedMatch.UseMissile);

                existingInScoreTable = scoreTable.FirstOrDefault(r => r.UserId == predictedMatch.UserId);

                if (existingInScoreTable == null)
                {
                    existingInScoreTable = new ScoreTableModel()
                    {
                        UserId         = predictedMatch.UserId,
                        RawScore       = score.RawScore,
                        TotalScore     = score.Score,
                        TotalPredicted = 1,
                        UsedMissile    = score.useMissile ? 1 : 0,
                        MissedMissile  = score.missMissile ? 1 : 0
                    };

                    scoreTable.Add(existingInScoreTable);
                }
                else
                {
                    existingInScoreTable.RawScore       += score.RawScore;
                    existingInScoreTable.TotalScore     += score.Score;
                    existingInScoreTable.TotalPredicted += 1;
                    existingInScoreTable.UsedMissile    += score.useMissile ? 1 : 0;
                    existingInScoreTable.MissedMissile  += score.missMissile ? 1 : 0;
                }

                existingInScoreTable.MissedMissilePercent = existingInScoreTable.MissedMissile * 100 / existingInScoreTable.MissedMissile;
            }

            return(scoreTable);
        }