public void TestTeamsSumDescending(StatisticsModel[] model) { var actualResult = TeamsStatistics.CalculateStatistic( model.Select(x => new Tuple <int, int>(x.TeamID, x.Score)), TeamsStatistics.StatisticType.Sum, TeamsStatistics.StatisticOrder.Descending); Assert.Equal(EXPECTED_TEAMS_SUM_DESCENDING, actualResult); }
public void TestTeamsAverageAscending(StatisticsModel[] model) { var actualResult = TeamsStatistics.CalculateStatistic( model.Select(x => new Tuple <int, int>(x.TeamID, x.Score)), TeamsStatistics.StatisticType.Average, TeamsStatistics.StatisticOrder.Ascending); Assert.Equal(EXPECTED_TEAMS_AVERAGE_ASCENDING, actualResult); }
public async Task <IActionResult> Statistics(StatisticsType statisticsType) { try { Teams team; switch (statisticsType) { case StatisticsType.MaxGoalsFor: team = await TeamsStatistics.GetStatistics(_ctx, x => x.GoalsFor, TeamsStatistics.StatisticType.Average, TeamsStatistics.StatisticOrder.Descending); break; case StatisticsType.MinGoalsAgainst: team = await TeamsStatistics.GetStatistics(_ctx, x => x.GoalsAgainst, TeamsStatistics.StatisticType.Average, TeamsStatistics.StatisticOrder.Ascending); break; case StatisticsType.MaxWon: team = await TeamsStatistics.GetStatistics(_ctx, x => x.Won, TeamsStatistics.StatisticType.Sum, TeamsStatistics.StatisticOrder.Descending); break; case StatisticsType.MinWon: team = await TeamsStatistics.GetStatistics(_ctx, x => x.Won, TeamsStatistics.StatisticType.Sum, TeamsStatistics.StatisticOrder.Ascending); break; case StatisticsType.BestAvaregeWons: team = await TeamsStatistics.GetStatistics(_ctx, x => x.Won, TeamsStatistics.StatisticType.Average, TeamsStatistics.StatisticOrder.Descending); break; case StatisticsType.WorseAvaregeWons: team = await TeamsStatistics.GetStatistics(_ctx, x => x.Won, TeamsStatistics.StatisticType.Average, TeamsStatistics.StatisticOrder.Ascending); break; default: return(NotFound()); } _logger.Log(LogLevel.Information, $"Successfully returned the statistic {statisticsType}."); return(Ok(team.Name)); } catch (SqliteException dbEx) { _logger.LogError($"Error in database when trying get the statistic {statisticsType}: {dbEx.Message}. {dbEx.StackTrace}"); #if DEBUG throw; #else return(Problem($"Error in database when trying get the statistic {statisticsType}.")); #endif } catch (Exception ex) { _logger.LogError($"Error when trying get the statistic {statisticsType}: {ex.Message}. {ex.StackTrace}"); #if DEBUG throw; #else return(Problem($"Error in database when trying get the statistic {statisticsType}.")); #endif } }