//Pull out highest priority season. IList seasons = this.edSeasonsEditor.Product.ProductSeasons; //No good doing stuff if there's no seasons. if (seasons.Count == 0) return; ProductSeason highestSeason = seasons[0]; ProductSeasonList results; //Do projections foreach(Season list in seasons) { if(results==null) { results = new ProductSeasonList(highestSeason); } else { results = results.ProjectOnto(list); } } //Save results to flat periods table