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;
            }
        }
示例#2
0
        public async Task <Books> GetBooksAsync(string path)
        {
            try
            {
                HttpClient client = new HttpClient();

                Books books    = null;
                var   response = await client.GetAsync(path);

                if (response.IsSuccessStatusCode)
                {
                    var content = await response.Content.ReadAsStringAsync();

                    byte[] data       = DataNormalizeHelper.DecompressGzip(await response.Content.ReadAsStreamAsync());
                    var    jsonString = System.Text.Encoding.UTF8.GetString(data);

                    jsonString = DataNormalizeHelper.RemoveSpecialCharacters(jsonString);

                    books = JsonConvert.DeserializeObject <Books>(jsonString);
                }
                return(books);
            }
            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);
        }
        public async Task GeneratedExcelBooksAsync()
        {
            var booksBaseUrl = ConfigurationManager.AppSettings["ParseHubListBooksBaseUrl"];
            var parseApiKey  = ConfigurationManager.AppSettings["ParseHubApiKey"];

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

            var parseHub = new ParseHub();
            var books    = await parseHub.GetBooksAsync(path);

            var mercadoLibreItems = new List <MercadoLibreItem>();

            foreach (var item in books.BooksCollection)
            {
                if (item != null)
                {
                    var price = DataNormalizeHelper.GetBookPrice(item);

                    if (price > 0)
                    {
                        if (price < 200)
                        {
                            var paperback = "";
                            var ISBN10    = "";
                            var editor    = "";

                            foreach (var detail in item.Details)
                            {
                                foreach (var dcictionary in detail)
                                {
                                    if (dcictionary.Value.Contains("Paperback"))
                                    {
                                        paperback = Regex.Match(dcictionary.Value, @"\d+").Value;
                                    }
                                    if (dcictionary.Value.Contains("ISBN-10"))
                                    {
                                        ISBN10 = dcictionary.Value.Replace("ISBN-10: ", "");
                                    }
                                    if (dcictionary.Value.Contains("Editor"))
                                    {
                                        editor = dcictionary.Value.Replace("Editor: ", "");
                                    }
                                }
                            }

                            var mercadoLibreItem = new MercadoLibreItem();
                            mercadoLibreItem.AvailityStock   = 10;
                            mercadoLibreItem.Category        = "";
                            mercadoLibreItem.Condition       = "Nuevo";
                            mercadoLibreItem.CreatedDate     = DateTime.UtcNow.ToString("dd/MM/yyyy hh:MM");
                            mercadoLibreItem.Description     = DataNormalizeHelper.GetBookDescription(item.Name, item.Description_1);
                            mercadoLibreItem.Id              = "";
                            mercadoLibreItem.Images          = DataNormalizeHelper.GetListImages(item.Image_1);
                            mercadoLibreItem.PickUp          = "Sí";
                            mercadoLibreItem.Price           = DeterminateBooktPrice(price);
                            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";
                            mercadoLibreItem.Author          = item.Author != null ? item.Author : "";
                            mercadoLibreItem.Editor          = editor;
                            mercadoLibreItem.Isbn10          = ISBN10;
                            mercadoLibreItem.Paperback       = paperback;

                            mercadoLibreItems.Add(mercadoLibreItem);
                        }
                    }
                }

                DataNormalizeHelper.GnerateExcelBooksFile(mercadoLibreItems);
            }
        }