public ProductoQuery verProductoPorSKU(string sku) { ProductoQuery productoQ = null; try { Producto producto = _ufwProductos.Repository <Producto>().Find(new ProductoSKUSpecification(sku)).FirstOrDefault(); if (producto != null) { productoQ = this._utils.Convert_Producto_To_Query(producto); if (producto.IndExterno) { Producto p = this._ufwProductos.IIntegrationProveedores().consultarProducto(sku); if (p != null) { productoQ = this._utils.Convert_Producto_To_Query(p); } } } else { throw new Exception("No se ha encontrado el Producto"); } } catch (Exception e) { _AuditoriaCatalogos log = new _AuditoriaCatalogos("INTEGRACIÓN REQUEST EXCEPTION", "", true, "", "", this.ToString(), e.Message, e.StackTrace, "", ""); _log.Repository <_AuditoriaCatalogos>().InsertOne(log); } return(productoQ); }
public void ProcesarEstadoProducto(EventBase <EstadoProductoCmd> EventoEstado) { bool EsError = true; var jrq = JsonConvert.SerializeObject(EventoEstado); var jrp = ""; if (!(_ufwLog.Repository <_AuditoriaCatalogos>().Contains(new LogCatalogosSpecification(EventoEstado.Data.SKU, jrq)))) { try { Producto producto = _ufwProductos.Repository <Producto>().Find(new ProductoSKUSpecification(EventoEstado.Data.SKU)).FirstOrDefault(); if ((producto != null)) { producto.Estado = EventoEstado.Data.Estado; producto.EnAlmacen = EventoEstado.Data.EnAlmacen; producto.NivelInventario = EventoEstado.Data.NivelInventario; //Persistencia _ufwProductos.Repository <Producto>().ReplaceOne(producto); EsError = false; jrp = JsonConvert.SerializeObject(producto); } else { throw new Exception("No se ha encontrado el producto"); } } catch (Exception e) { jrp = JsonConvert.SerializeObject(e); } //Auditoría _AuditoriaCatalogos log = new _AuditoriaCatalogos("EstadoActualizado", EventoEstado.Data.SKU, EsError, EventoEstado.Usuario, MethodInfo.GetCurrentMethod().Name, this.ToString(), jrq, jrp, "", "SKU: " + EventoEstado.Data.SKU + " NivelInventario: " + EventoEstado.Data.NivelInventario.ToString() + ""); _ufwLog.Repository <_AuditoriaCatalogos>().InsertOne(log); } else { //Ya fue ejecutada } }
public IEnumerable <ProductoQuery> verRankingCatalogo(string codigoCatalogo, int skip, int take) { if (take <= 0) { throw new Exception("La variable take debe tener valor positivo"); } IEnumerable <ProductoQuery> productosQ = new List <ProductoQuery>(); try { IEnumerable <Producto> productos = _ufwProductos.Repository <Producto>().Find(new ProductoSpecification(codigoCatalogo, true)).AsEnumerable(); productos = productos.OrderByDescending(p => p.Calificacion).Skip(skip).Take(take); productosQ = this._utils.ConvertList_Producto_To_Query(productos); Catalogo catalogo = _ufwCatalogos.Repository <Catalogo>().Find(new CatalogoSpecification(codigoCatalogo)).FirstOrDefault(); if ((catalogo != null) && (catalogo.IndExterno) && (catalogo.Proveedor != null)) { List <Producto> ps = this._ufwProductos.IIntegrationProveedores().consultarProductosProveedor(catalogo.Proveedor.IdProveedor).ToList(); if (ps != null) { productosQ = this._utils.ConvertList_Producto_To_Query(ps); } } } catch (Exception e) { _AuditoriaCatalogos log = new _AuditoriaCatalogos("INTEGRACIÓN REQUEST EXCEPTION", "", true, "", "", this.ToString(), e.Message, e.StackTrace, "", ""); _log.Repository <_AuditoriaCatalogos>().InsertOne(log); } return(productosQ); }
private void Start(CancellationToken stoppingToken) { try { CancellationTokenSource cts = new CancellationTokenSource(); Console.CancelKeyPress += (_, e) => { e.Cancel = true; cts.Cancel(); }; using (var c = new ConsumerBuilder <string, string>(this._consumerConfig).Build()) { c.Subscribe("TP_Inventario"); while (!stoppingToken.IsCancellationRequested) { _AuditoriaCatalogos log = null; using (var scope = this._serviceProvider.CreateScope()) { _productosServiceCmd = (IProductosServiceCmd)scope.ServiceProvider.GetRequiredService(typeof(IProductosServiceCmd)); _log = (IUnitOfWork <_AuditoriaCatalogos>)scope.ServiceProvider.GetRequiredService(typeof(IUnitOfWork <_AuditoriaCatalogos>)); try { var cr = c.Consume(cts.Token); _logger.LogInformation($"\n\n"); _logger.LogInformation($"--------------------------------------------------{DateTime.Now}\n"); _logger.LogInformation($"TOPIC: '{cr.Topic}' EVENTO: '{cr.Key}' MENSAJE CONSUMIDO: '{cr.Value}' \n"); //log = new _AuditoriaInventarios("TOPIC", "", false, "", "sad", this.ToString(), $"TOPIC: '{cr.Topic}' EVENTO: '{cr.Key}' MENSAJE CONSUMIDO: '{cr.Value}' ", "", "", ""); //_log.Repository<_AuditoriaInventarios>().InsertOne(log); switch (cr.Topic) { case "TP_Inventario": switch (cr.Key) { case "EstadoActualizado": EventBase <EstadoProductoCmd> eventoEstado = JsonConvert.DeserializeObject <EventBase <EstadoProductoCmd> >(cr.Value); this._productosServiceCmd.ProcesarEstadoProducto(eventoEstado); break; default: throw new Exception("Evento no identificado"); } break; default: break; } } catch (Exception e) { log = new _AuditoriaCatalogos("TOPIC PROCESO EXCEPTION", "", true, "", "", this.ToString(), e.Message, e.StackTrace, "", ""); _log.Repository <_AuditoriaCatalogos>().InsertOne(log); } } } } } catch (Exception e) { _logger.LogError($"MENSAJE: '{e.Message}' STACKTRACE: '{e.StackTrace}' \n\n\n"); } }