public void sendToQueue(DataMensaje m) { ConnectionFactory factory = new ConnectionFactory(); factory.Uri = "amqp://*****:*****@black-boar.rmq.cloudamqp.com/zquztoqc"; IConnection conn = factory.CreateConnection(); Console.WriteLine("Connection Created..."); IModel model = conn.CreateModel(); var serialized = JsonConvert.SerializeObject(m); byte[] messageBodyBytes = System.Text.Encoding.UTF8.GetBytes(serialized); IBasicProperties props = model.CreateBasicProperties(); props.ContentType = "application/json"; //props.Expiration = "5000"; //props.DeliveryMode = 2; /*Delayed queue*/ string queue = "sarem.wait"; if (m.inmediato) queue = "sarem"; else { long milis = (long)(m.fecha_envio - DateTime.UtcNow).TotalMilliseconds; Console.WriteLine("Tiempo en milis" + milis.ToString()); props.Expiration = milis.ToString();//"5000"; } Console.WriteLine("Sending..."); model.BasicPublish("", queue, props, messageBodyBytes); Console.WriteLine("Message send.."); model.Close(200, "Goodbye"); conn.Close(); }
public void enviarMensajeAlertaConsulta(string pacienteID, long eventoID, DateTime fecha) { Console.WriteLine("enviarMensajeAlertaConsulta..."); using (var db = SARMContext.getTenant(tenant)) { var epc = (from c in db.eventopacientecomunicacion.Include("paciente") where c.EventoID==eventoID && c.PacienteID==pacienteID select c ); IDALAMQP iamqp = new DALAMQP(tenant); foreach (var e in epc) { Console.WriteLine("recorriendo medios..."); switch (e.ComunicacionID) { case 1: //mail var dm = new DataMensaje { medio = e.ComunicacionID, destinatario = e.paciente.mail, asunto = "Consulta agendada", mensaje = "Tiene una consulta agendada para el dia " + fecha.ToString(), fecha_envio = fecha, inmediato = false }; iamqp.sendToQueue(dm); break; default: Console.WriteLine("No se envia mensaje"); break; } } } }