コード例 #1
0
        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();
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
 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);
         }
     }
 }