public void ProcesoProductos() { OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Inicio de Proceso"); OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Instanciando Helper AWS"); OAwsHelper = new AWSHelper("AKIAIHQ53NFR6EGNA75Q", "MKph/aGOqSBvIT+VtCHpR0NHYgs1DEvmBJY4Opym", "ibushak03-20", "AKIAIHQ53NFR6EGNA75Q"); try { OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Obteniendo productos a analizar"); var productos = ProductosAdapter.ObtenerProductos(); OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Productos asin en la base actual"); foreach (var item in productos.asins) { OBitacora.GuardarLinea(item.Id); } OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Productos upc en la base actual"); foreach (var item in productos.upcs) { OBitacora.GuardarLinea(item.Id); } if (productos.upcs.Any()) { ProcesarUpc(productos.upcs); } if (productos.asins.Any()) { ProcesarAsin(productos.asins); } OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Generando Archivo Excel"); var oArchvios = new Archivos(); oArchvios.GenerarProductosActualizados(); OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Reportando a NetSuite"); var changeProds = ProductosAdapter.ObtenerProductosTodos().Where(x => x.IsUpdated); var oBuyBox = new BuyBox(); foreach (var item in changeProds) { try { oBuyBox.ReportarNetSuiteInicial(item.BuyBox, item.ASIN); oBuyBox.ReportarNetSuiteComplete(item.ASIN); item.IsUpdated = false; ProductosAdapter.Actualizar(item); } catch (Exception ex) { OBitacora.GuardarLinea($"{DateTime.Now:yyyy-MM-dd hh:mm:ss}|Error|{GetMessageError(ex)}/{ex.StackTrace}"); } } OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Fin de Proceso"); } catch (Exception ex) { OBitacora.GuardarLinea($"{DateTime.Now:yyyy-MM-dd hh:mm:ss}|Error|{GetMessageError(ex)}/{ex.StackTrace}"); } }
private void ProcesarItems(Items items) { var oItemLookupParseo = new ItemLookupParseo(); var oBuyBox = new BuyBox(); var oDatos = new Datos(); try { if (items.Item == null) { return; } OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Comienza iteracion de elementos"); foreach (var producto in items.Item) { if (producto.Errors != null) { foreach (var error in producto.Errors) { OBitacora.GuardarLinea($"{DateTime.Now:yyyy-MM-dd hh:mm:ss}|Error respuesta amazon producto|{error.Message}|"); try { if (ProductosAdapter.Existe(error.Message.Split(' ').First())) { ProductosAdapter.Actualizar(new Producto { ASIN = error.Message.Split(' ').First(), Offers = $"{error.Code}|{error.Message}" }); } else { ProductosAdapter.Insertar(new Producto { ASIN = error.Message.Split(' ').First(), Offers = $"{error.Code}|{error.Message}", UPC = "", Label = "", Actualizacion = false, Amount = "", Binding = "", Brand = "", BuyBox = null, Caracteristicas = null, ClothingSize = "", Color = "", Comentarios = null, CurrencyCode = "", Department = "", Dimensiones = null, DimensionesPaquete = null, EAN = "", FormattedPrice = "", LargeImage = "", LegalDisclaimer = "", MPN = "", Manufacture = "", MediumImage = "", Model = "", NumberItems = 0, PackageQuantity = 0, PartNumber = "", ProdcutTypeName = "", ProductGroup = "", Publisher = "", ReleaseDate = "", Resumen = null, SalesRank = 0, Similares = null, Size = "", SmallImage = "", Studio = "", Title = "", UPCs = null, isAdultProduct = false, isAutographed = false, isMemorabilia = false }); } } catch (Exception ex) { Console.WriteLine("Error guardar errores amazon: " + GetMessageError(ex)); OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Guardar amazon error|{ GetMessageError(ex) }"); } } } try { OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Parseando item a producto { producto.ASIN }"); var prod = oItemLookupParseo.Parser(producto); OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Validando si existe el producto"); if (!ProductosAdapter.Existe(prod.ASIN)) { OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Insertando producto a la base de datos"); ProductosAdapter.Insertar(prod); oBuyBox.ReportarNetSuiteInicial(prod.BuyBox, prod.ASIN); } else { OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Validando datos"); oDatos.ValidacionDatos(prod); OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Actualizando datos"); oDatos.ActualizarDatos(prod); OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Validando BuyBox"); oBuyBox.ValidarCambios(prod.BuyBox); OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Actualizando BuyBox"); oBuyBox.ActualizarBuyBox(prod.BuyBox); } if (oBuyBox.Cambio) { prod.IsUpdated = true; ProductosAdapter.Actualizar(prod); //OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Reportando a NetSuite"); //oBuyBox.ReportarNetSuiteComplete(prod.ASIN); } } catch (DbEntityValidationException ex) { var resultErrors = ex.EntityValidationErrors.Aggregate("", (current1, validationErrors) => validationErrors.ValidationErrors.Aggregate(current1, (current, validationError) => current + $"NValid.{validationErrors.Entry.Entity}:{validationError.ErrorMessage}")); OBitacora.GuardarLinea($"{DateTime.Now:yyyy-MM-dd hh:mm:ss}|Error|{producto.ASIN} {resultErrors} /{GetMessageError(ex)}|"); } catch (Exception ex) { OBitacora.GuardarLinea($"{DateTime.Now:yyyy-MM-dd hh:mm:ss}|Error|{producto.ASIN} {GetMessageError(ex)}/{ex.StackTrace}|"); } } //OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Reportando a NetSuite"); //oBuyBox.ReportarNetSuiteComplete(); //if (oBuyBox.cambio) //{ // OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Reportando a NetSuite"); // //oBuyBox.ReportarNetSuite(); // oBuyBox.ReportarNetSuiteComplete(ProductosAdapter.); //} OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Termina iteracion de elementos"); } catch (DbEntityValidationException ex) { var resultErrors = ex.EntityValidationErrors.Aggregate("", (current1, validationErrors) => validationErrors.ValidationErrors.Aggregate(current1, (current, validationError) => current + $"NValid.{validationErrors.Entry.Entity}:{validationError.ErrorMessage}")); OBitacora.GuardarLinea($"{DateTime.Now:yyyy-MM-dd hh:mm:ss}|Error|{resultErrors} /{GetMessageError(ex)}|"); } catch (Exception ex) { OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Error|{GetMessageError(ex)}/{ex.StackTrace}"); } }