public NemesisData GetNemesisData(int playerId)
{
var data = dataContext.MakeRawSqlQuery<WinLossStatistics>(SQL_GET_WIN_LOSS_GAMES_COUNT,
new SqlParameter("PlayerId", playerId));
var winLossStatistics = data.ToList();
var nemesisData = (from x in winLossStatistics
where x.NumberOfGamesLost > x.NumberOfGamesWon
&& x.NumberOfGamesLost >= MINIMUM_NUMBER_OF_GAMES_TO_BE_A_NEMESIS
&& x.VersusPlayerActive
select new NemesisData
{
NumberOfGamesLost = x.NumberOfGamesLost,
LossPercentage = 100 * x.NumberOfGamesLost / (x.NumberOfGamesWon + x.NumberOfGamesLost),
NemesisPlayerId = x.VersusPlayerId
}).OrderByDescending(nemesisCandidates => nemesisCandidates.LossPercentage).FirstOrDefault();
if(nemesisData == null)
{
return new NullNemesisData();
}
return nemesisData;
}