public ExplodedFoodRecordSummary ExplodeFoodRecords(IEnumerable <FoodRecordEffectsSummary> foodRecordEffectsSummaries) { var expFoodRecSum = new ExplodedFoodRecordSummary(); foreach (var foodRecordEffectsSummary in foodRecordEffectsSummaries) { var mealName = foodRecordEffectsSummary.FoodRecord.Name.ToLower(); if (!String.IsNullOrWhiteSpace(mealName)) { if (!expFoodRecSum.MealBrandEffectSummaries.ContainsKey(mealName)) { expFoodRecSum.MealBrandEffectSummaries[mealName] = new Dictionary <string, IList <EffectsSummary> >(); } var brand = ""; if (!String.IsNullOrWhiteSpace(foodRecordEffectsSummary.FoodRecord.Brand)) { brand = foodRecordEffectsSummary.FoodRecord.Brand.ToLower(); } if (!expFoodRecSum.MealBrandEffectSummaries[mealName].ContainsKey(brand)) { expFoodRecSum.MealBrandEffectSummaries[mealName][brand] = new List <EffectsSummary>(); } expFoodRecSum.MealBrandEffectSummaries[mealName][brand].Add(foodRecordEffectsSummary.RelatedEffectsSummary); } var ingredients = foodRecordEffectsSummary.FoodRecord.Ingredients; if (ingredients != null && ingredients.Any()) { foreach (var ing in ingredients) { var ingName = ing.Name.ToLower(); if (!String.IsNullOrWhiteSpace(ing.Name)) { if (!expFoodRecSum.IngredientEffectSummaries.ContainsKey(ingName)) { expFoodRecSum.IngredientEffectSummaries[ingName] = new Dictionary <string, IList <EffectsSummary> >(); } if (!expFoodRecSum.IngredientEffectSummaries[ingName].ContainsKey(ing.ProcessingType)) { expFoodRecSum.IngredientEffectSummaries[ingName][ing.ProcessingType] = new List <EffectsSummary>(); } expFoodRecSum.IngredientEffectSummaries[ingName][ing.ProcessingType].Add(foodRecordEffectsSummary.RelatedEffectsSummary); } } } } return(expFoodRecSum); }
public AggregatedFoodRecordSummary AggregateExplodedRecords(ExplodedFoodRecordSummary explodedRecords) { var aggregatedExplodedRecords = new AggregatedFoodRecordSummary(); foreach (var key in explodedRecords.MealBrandEffectSummaries.Keys) { if (explodedRecords.MealBrandEffectSummaries[key] != null) { foreach (var brandKey in explodedRecords.MealBrandEffectSummaries[key].Keys) { if (explodedRecords.MealBrandEffectSummaries[key][brandKey] != null) { if (!aggregatedExplodedRecords.MealBrandEffectSummaries.ContainsKey(key)) { aggregatedExplodedRecords.MealBrandEffectSummaries[key] = new Dictionary <string, AverageEffectsSummary>(); } aggregatedExplodedRecords.MealBrandEffectSummaries[key][brandKey] = GenerateAverageEffectsSummary(explodedRecords.MealBrandEffectSummaries[key][brandKey]); } } } } foreach (var key in explodedRecords.IngredientEffectSummaries.Keys) { if (explodedRecords.IngredientEffectSummaries[key] != null) { foreach (var proKey in explodedRecords.IngredientEffectSummaries[key].Keys) { if (explodedRecords.IngredientEffectSummaries[key][proKey] != null) { if (!aggregatedExplodedRecords.IngredientEffectSummaries.ContainsKey(key)) { aggregatedExplodedRecords.IngredientEffectSummaries[key] = new Dictionary <string, AverageEffectsSummary>(); } aggregatedExplodedRecords.IngredientEffectSummaries[key][proKey] = GenerateAverageEffectsSummary(explodedRecords.IngredientEffectSummaries[key][proKey]); } } } } return(aggregatedExplodedRecords); }