private T SetPlans <T>(T model, List <int> gameIds, int?gameClass = null) where T : MonthlyReportGameBaseModel { if (gameClass.HasValue) { if (HuntPlans.Any(x => gameIds.Contains(x.GameId) && x.Class == gameClass)) { model.HuntPlanCulls = (int)HuntPlans.FirstOrDefault(x => gameIds.Contains(x.GameId) && x.Class == gameClass).Cull; } model.Culls = HuntedGames.Count(x => gameIds.Contains(x.GameId) && x.GameClass == gameClass); model.Losses = LossGames.Count(x => gameIds.Contains(x.GameId) && x.Class == gameClass); } else { if (HuntPlans.Any(x => gameIds.Contains(x.GameId))) { model.HuntPlanCulls = (int)HuntPlans.Where(x => gameIds.Contains(x.GameId)).Sum(x => x.Cull); } model.Culls = HuntedGames.Count(x => gameIds.Contains(x.GameId)); model.Catches = CaughtGames.Where(x => gameIds.Contains(x.GameId)).Sum(x => x.Count); model.Losses = LossGames.Count(x => gameIds.Contains(x.GameId)); } return(model); }