public override void Run() { Trace.WriteLine("Iniciando el procesamiento de mensajes"); // Inicia el bombeo de mensajes y se invoca una devolución de llamada para cada mensaje que se recibe. Si se llama a close en el cliente, se detendrá el bombeo. Client.OnMessage((receivedMessage) => { try { string tienda = receivedMessage.GetBody<string>(); // Procesar el mensaje Trace.WriteLine("Procesando tienda: " + tienda); Algorithms a = new Algorithms(); a.Run(tienda); } catch { Trace.WriteLine("ERROR PARSING String..."); // Controlar cualquier excepción específica del procesamiento de mensajes aquí } }); CompletedEvent.WaitOne(); }
public void Run(string tiendaID) { IDALUsuario udal = new DALUsuarioEF(); IDALTienda tdal = new DALTiendaEF(); IDALSubasta sdat = new DALSubastaEF(); Tienda tienda = tdal.ObtenerTienda(tiendaID); List<Producto> productos = sdat.ObtenerTodosProductos(tienda.TiendaID); //obtengo algoritmo Personalizacion pers = tdal.ObtenerPersonalizacionTienda(tienda.TiendaID); List<Usuario> usuarios = udal.ObtenerTodosUsuariosFull(tienda.TiendaID); bool defaultalgorithm = false; if (pers.algoritmo == null || pers.algoritmo.Length == 0) { defaultalgorithm = true; } //creo indice Task index = udal.InicializarColeccionRecomendaciones(tienda.TiendaID); index.Wait(); foreach (var user in usuarios) { if (defaultalgorithm) { Algorithms def = new Algorithms(); def.default_recomendation_algorithm(productos, user, tienda.TiendaID); } else { Algorithms a = new Algorithms(); a.custom_algorithm(pers, productos, user, tienda.TiendaID); } }//IF tienda es de instancia... }