public AnnualPlanGameModel GetGameAnnualPlanModel(GameType gameType, int marketingYearId) { MarketingYearId = marketingYearId; GameType = (int)gameType; var gamesByKind = GamesByType.GroupBy(x => x.Kind); var annualPlanKindGameModels = new List <AnnualPlanKindGameModel>(); foreach (var gameByKind in gamesByKind) { if (!CurrentHuntPlans.Any(x => gameByKind.Any(y => y.Id == x.GameId))) { continue; } AnnualPlanKindGameModel kindGameModel = GetKindAnnualPlanModel(gameByKind); annualPlanKindGameModels.Add(kindGameModel); } var gameAnnualPlanModel = new AnnualPlanGameModel { AnnualPlanKindGameModels = annualPlanKindGameModels }; return(gameAnnualPlanModel); }
private AnnualPlanKindGameModel GetKindAnnualPlanModel(IGrouping <int, GameDto> gameByKind) { var annualPlanSubKindGameModels = new List <AnnualPlanSubKindGameModel>(); foreach (var gameBySubKind in gameByKind.GroupBy(x => x.SubKind)) { if (gameBySubKind.Key.HasValue) { AnnualPlanSubKindGameModel subKindGameModel = GetSubKindAnnualPlanModel(gameByKind.Key, gameBySubKind); annualPlanSubKindGameModels.Add(subKindGameModel); } } var annualPlanKindGameModel = new AnnualPlanKindGameModel { Kind = gameByKind.Key, KindName = GamesByType.FirstOrDefault(x => x.Kind == gameByKind.Key).KindName, Type = (GameType)GameType, AnnualPlanSubKindGameModels = annualPlanSubKindGameModels }; List <int> gameIds = GamesByType.Where(x => x.Kind == gameByKind.Key).Select(x => x.Id).ToList(); annualPlanKindGameModel = SetPlans(annualPlanKindGameModel, gameIds); return(annualPlanKindGameModel); }