//Constructors
 #region DocumentHandler
 public DocumentHandler(IStoreClient storeClient, params IFileReader[] fileReader)
 {
     this.storeClient = storeClient;
     this.fileReader  = fileReader ?? new IFileReader[0];
 }
Beispiel #2
0
        private static async Task <FoodExternalDetailsResponse> SearchExternalFood(string ean)
        {
            var clients = new IStoreClient[]
            {
                new FoodieClient(),
                new KRuokaClient()
            };
            var cts   = new CancellationTokenSource();
            var tasks = clients.Select(c => Task.Run(() => c.FindFood(ean), cts.Token)).ToList();

            while (tasks.Any())
            {
                var completed = await Task.WhenAny(tasks);

                tasks.Remove(completed);
                if (completed.IsCompleted && completed.Result != null)
                {
                    cts.Cancel();

                    var food      = completed.Result;
                    var nutrients = new List <FoodNutrientAmountResponse>();
                    if (food.Carbohydrate.HasValue)
                    {
                        nutrients.Add(new FoodNutrientAmountResponse
                        {
                            NutrientId = Constants.Nutrition.CarbId,
                            Amount     = food.Carbohydrate.Value
                        });
                    }
                    if (food.Fat.HasValue)
                    {
                        nutrients.Add(new FoodNutrientAmountResponse
                        {
                            NutrientId = Constants.Nutrition.FatId,
                            Amount     = food.Fat.Value
                        });
                    }
                    if (food.FatSaturated.HasValue)
                    {
                        nutrients.Add(new FoodNutrientAmountResponse
                        {
                            NutrientId = Constants.Nutrition.FatSaturatedId,
                            Amount     = food.FatSaturated.Value
                        });
                    }
                    if (food.Fiber.HasValue)
                    {
                        nutrients.Add(new FoodNutrientAmountResponse
                        {
                            NutrientId = Constants.Nutrition.FiberId,
                            Amount     = food.Fiber.Value
                        });
                    }
                    if (food.Kcal.HasValue)
                    {
                        nutrients.Add(new FoodNutrientAmountResponse
                        {
                            NutrientId = Constants.Nutrition.EnergyKcalId,
                            Amount     = food.Kcal.Value
                        });
                    }
                    if (food.Kj.HasValue)
                    {
                        nutrients.Add(new FoodNutrientAmountResponse
                        {
                            NutrientId = Constants.Nutrition.EnergyKjId,
                            Amount     = food.Kj.Value
                        });
                    }
                    if (food.Protein.HasValue)
                    {
                        nutrients.Add(new FoodNutrientAmountResponse
                        {
                            NutrientId = Constants.Nutrition.ProteinId,
                            Amount     = food.Protein.Value
                        });
                    }
                    if (food.Sugar.HasValue)
                    {
                        nutrients.Add(new FoodNutrientAmountResponse
                        {
                            NutrientId = Constants.Nutrition.SugarId,
                            Amount     = food.Sugar.Value
                        });
                    }
                    return(new FoodExternalDetailsResponse
                    {
                        Ean = food.Ean,
                        Name = food.Name,
                        Manufacturer = food.Manufacturer,
                        Nutrients = nutrients.ToArray()
                    });
                }
            }

            return(null);
        }
Beispiel #3
0
 public SubmitCommand(IStoreClient client, ILogger logger, IStringProvider stringProvider) : base(client, logger, stringProvider)
 {
 }
Beispiel #4
0
 public ListCommand(IStoreClient client, ILogger logger) : base(client, logger)
 {
 }
Beispiel #5
0
 protected CommandBase(IStoreClient client, ILogger logger)
 {
     Client = client;
     Logger = logger;
 }
Beispiel #6
0
 public StoreService(IStoreClient storeClient)
 {
     _storeClient = storeClient;
 }
Beispiel #7
0
 protected CommandBase(IStoreClient client, ILogger logger, IStringProvider stringProvider)
 {
     Client         = client;
     Logger         = logger;
     StringProvider = stringProvider;
 }
Beispiel #8
0
 public MockCommandBase(IStoreClient client, ILogger logger, IStringProvider stringProvider) : base(client, logger, stringProvider)
 {
 }