internal TableData(ScoreTableModel model) { Id = model.Id; Name = model.Name; Description = model.Description; IsPrimary = model.Primary == "1"; }
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); }