BusinessLogic.DataAccess.Repositories.EntityFrameworkPlayerRepository.GetNemesisData C# (CSharp) Method

GetNemesisData() public method

public GetNemesisData ( int playerId ) : NemesisData
playerId int
return BusinessLogic.Models.Nemeses.NemesisData
        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;
        }