public static ProductionAreas ToProductionAreas(this ProductionAreaToGet productionArea)
 {
     return(new ProductionAreas()
     {
         Id = productionArea.ProductionAreaId,
         Name = "",
         Restrictions = string.Join(',', productionArea.Restrictions).ToLower(),
         Status = productionArea.On
     });
 }
Exemplo n.º 2
0
        public async Task <IList <ProductionAreas> > GetProductionAreaAsync()
        {
            ProductionAreaToGet[] areas = null;

            try
            {
                await _logServiceBus.SendMessagesAsync($"Recuperando as áreas de produção \"storeName = {_configuration["StoreInfo:StoreName"]}\"...");

                areas = JsonConvert.DeserializeObject <ProductionAreaToGet[]>(await _httpClient.GetStringAsync($"{_configuration["API:ProductionAreas"]}/?storeName={_configuration["StoreInfo:StoreName"]}"));
            }
            catch (Exception E)
            {
                await _logServiceBus.SendMessagesAsync($"Falha ao recuperar os dados das áreas de produção, segue a descrição \"{E.Message}\".");

                //Falha ao acessar o microserviço das áreas de produção
                if (_configuration["API:mocked"] == "true")
                {
                    await _logServiceBus.SendMessagesAsync($"Criando dados fakes para área de produção");

                    areas = new ProductionAreaToGet[]
                    {
                        new ProductionAreaToGet()
                        {
                            ProductionAreaId = Guid.NewGuid(),
                            Restrictions     = new List <string>()
                            {
                                "soy", "dairy", "gluten", "sugar"
                            },
                            On = true
                        },
                        new ProductionAreaToGet()
                        {
                            ProductionAreaId = Guid.NewGuid(),
                            Restrictions     = new List <string>(),
                            On = true
                        },
                        new ProductionAreaToGet()
                        {
                            ProductionAreaId = Guid.NewGuid(),
                            Restrictions     = new List <string>()
                            {
                                "soy"
                            },
                            On = true
                        }
                    };
                }
                else
                {
                    throw;
                }
            }

            return(areas.Select(x => x.ToProductionAreas()).ToList());
        }