//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 = new ProductSeasonList(highestSeason); //Do projections while (seasons.GetEnumerator().MoveNext()) { ProductSeasonList current = new ProductSeasonList(seasons.GetEnumerator().Current); results = results.ProjectOnto(current); } //Save results to flat periods table