internal virtual NemePointsSummary GetNemePointsSummary(int playerId)
{
var nemePointsSummary = dataContext.GetQueryable<PlayerGameResult>()
.Where(result => result.PlayerId == playerId)
.GroupBy(x => x.PlayerId)
.Select(
g =>
new NemePointsSummary
{
//had to cast to handle the case where there is no data:
//http://stackoverflow.com/questions/6864311/the-cast-to-value-type-int32-failed-because-the-materialized-value-is-null
BaseNemePoints = g.Sum(x => (int?)x.NemeStatsPointsAwarded) ?? 0,
GameDurationBonusNemePoints = g.Sum(x => (int?)x.GameDurationBonusPoints) ?? 0,
WeightBonusNemePoints = g.Sum(x => (int?)x.GameWeightBonusPoints) ?? 0
})
.SingleOrDefault();
return nemePointsSummary ?? new NemePointsSummary(0, 0, 0);
}