public double DeterminateProductPrice(Product product)
        {
            try
            {
                var documentaryPrice = Convert.ToDouble(ConfigurationManager.AppSettings["DocumentaryPrice"]);
                var shipingPrice     = Convert.ToDouble(ConfigurationManager.AppSettings["ShipingPrice"]);
                var dollarPrice      = Convert.ToDouble(ConfigurationManager.AppSettings["DollarPrice"]);
                var mercadoLibreTax  = Convert.ToDouble(ConfigurationManager.AppSettings["MercadoLibreTax"]);
                var kiloPrice1to5    = Convert.ToDouble(ConfigurationManager.AppSettings["KiloPrice1to5"]);
                var kiloPrice5to10   = Convert.ToDouble(ConfigurationManager.AppSettings["KiloPrice5to10"]);
                var kiloPrice10to20  = Convert.ToDouble(ConfigurationManager.AppSettings["KiloPrice10to20"]);

                var finalPrice   = 0.00;
                var productPrice = DataNormalizeHelper.GetProductPrice(product);
                var weight       = DataNormalizeHelper.GetWeightOnKilos(product);
                var kiloPrice    = weight <= 5 ? kiloPrice1to5 : weight <= 10 ? kiloPrice5to10 : kiloPrice10to20;
                var prodcutGain  = productPrice <= 50 ? 25.00 :
                                   productPrice <= 100 ? 30.00 :
                                   productPrice <= 200 ? 35 :
                                   (productPrice * 0.60) + 200;

                finalPrice = Math.Round((((productPrice + prodcutGain
                                           + (weight * kiloPrice)
                                           + documentaryPrice) * dollarPrice)
                                         / mercadoLibreTax) + shipingPrice);

                return(finalPrice);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                throw;
            }
        }
        public async Task GeneratedExcelProductsAsync()
        {
            var productsBaseUrl = ConfigurationManager.AppSettings["ParseHubListProductsBaseUrl"];
            var parseApiKey     = ConfigurationManager.AppSettings["ParseHubApiKey"];

            var path = String.Format(productsBaseUrl, parseApiKey);

            var parseHub = new ParseHub();
            var product  = await parseHub.GetProductsAsync(path);

            var mercadoLibreItems = new List <MercadoLibreItem>();

            foreach (var item in product.ProductsCollection)
            {
                if (item != null && (item.Price_1 != null || item.Price_2 != null))
                {
                    var price = DataNormalizeHelper.GetProductPrice(item);
                    if (price < 200)
                    {
                        var mercadoLibreItem = new MercadoLibreItem();
                        mercadoLibreItem.AvailityStock = 10;
                        mercadoLibreItem.Category      = "";
                        mercadoLibreItem.Condition     = "Nuevo";
                        mercadoLibreItem.CreatedDate   = DateTime.UtcNow.ToString("dd/MM/yyyy hh:MM");
                        var description = DataNormalizeHelper.NormalizeDescription(item.Description_1, item.Description_2);
                        mercadoLibreItem.Description     = DataNormalizeHelper.GetProductDescription(item.Name, description);
                        mercadoLibreItem.Id              = "";
                        mercadoLibreItem.Images          = DataNormalizeHelper.GetListImages(item);
                        mercadoLibreItem.PickUp          = "Sí";
                        mercadoLibreItem.Price           = DeterminateProductPrice(item);
                        mercadoLibreItem.ShippingMethod  = "Estándar a domicilio";
                        mercadoLibreItem.ShippingMode    = "MercadoEnvios2";
                        mercadoLibreItem.ShippingPrice   = 109.00;
                        mercadoLibreItem.ShippingType    = "Sí";
                        mercadoLibreItem.SKU             = "";
                        mercadoLibreItem.State           = "Activa";
                        mercadoLibreItem.Stock           = 3;
                        mercadoLibreItem.Title           = DataNormalizeHelper.SortTitle(item.Name);
                        mercadoLibreItem.TypePublication = "Premium";
                        mercadoLibreItem.Warranty        = "Sin garantía";

                        mercadoLibreItems.Add(mercadoLibreItem);
                    }
                }
            }

            DataNormalizeHelper.GnerateExcelFile(mercadoLibreItems);
        }