internal void ParseIngredients() { var parser = new IngredientsParser(); List <IngredientsParser.ParsedAnnotation> annotations = new List <IngredientsParser.ParsedAnnotation>(); var _parsedIngredients = parser.Parse(_currentProduct.DisplayIngredients, annotations); var translator = new IngredientLanguageNames(_repo); var nutrientTranslator = new NutrientLanguageNames(_repo); var euNumbers = new EUAdditiveLanguageNames(_repo); foreach (var parsedIngredient in _parsedIngredients.Ingredients) { Product.Ingredients.Add(new IngredientViewModel(parsedIngredient, Product)); } var additives = DetectEUNumbers(_parsedIngredients.Ingredients, euNumbers).OrderBy(w => w.EUNumber); foreach (var additive in additives) { Product.EUAdditives.Add(new EUAdditiveViewModel(additive.EUNumber, additive.DisplayName)); } var allergens = CollectAllergens(_parsedIngredients.Ingredients); foreach (var allergen in allergens) { Product.Allergens.Add(new AllergenViewModel(allergen.Name, allergen.DisplayName)); } ProcessNutrients(); Product.Translate(); }
private string TranslateNutrient(NutrientLanguageNames nutrientTranslator, string name, string displayName, NutrientViewModel nutrientViewModel) { var nutrientTranslations = nutrientTranslator.TranslateNutrient(name, "label", this.LanguageCode); if (nutrientTranslations.Any()) { displayName = nutrientTranslations.First().Name; nutrientViewModel.Order = nutrientTranslations.First().Order; nutrientViewModel.IsSubCategory = !(nutrientViewModel.Order == 1 || nutrientViewModel.Order % 10 == 0); } nutrientViewModel.DisplayName = displayName; return(displayName); }
private string TranslateNutrient(NutrientLanguageNames nutrientTranslator, string name, string displayName, NutrientViewModel nutrientViewModel) { var nutrientTranslations = nutrientTranslator.TranslateNutrient(name, "label", Product.LanguageCode); int order = 1; if (nutrientTranslations.Any()) { displayName = nutrientTranslations.First().Name; order = nutrientTranslations.First().Order; } nutrientViewModel.DisplayName = displayName; return(displayName); }
private void TranslateNutrients(ObservableCollection <NutrientViewModel> nutrients) { if (nutrients != null) { var nutrientTranslator = new NutrientLanguageNames(_repo); foreach (var nutrient in nutrients) { var name = nutrient.Name.Replace("_100g", ""); TranslateNutrient(nutrientTranslator, name, name, nutrient); } var sortedNutrients = nutrients.OrderBy(o => o.Order).ToList(); Nutrients.Clear(); foreach (var nutrient in sortedNutrients) { Nutrients.Add(nutrient); } } }