public bool sendMessage(MessageCarrier type, Message m, bool isHTML) { bool isSent = false; //herinde sendes der en email ud til modtageren if (type.Equals(MessageCarrier.Smtp)) { if (isHTML) { m.MessageBody = MessageConverter.ConvertBodyToHTML(m.MessageBody); } //her implementeres alt koden til at sende via Smtp isSent = true; } if (type.Equals(MessageCarrier.VMessage)) { if (isHTML) { m.MessageBody = MessageConverter.ConvertBodyToHTML(m.MessageBody); } //her implementeres alt koden til at sende via VMessage isSent = true; } return(isSent); }
/// <summary> /// /// </summary> /// <param name="event"></param> /// <param name="expires">消息过期时间</param> public static void WithNoRetry(this MessageCarrier @event) { @event.Headers["x-first-death-queue"] = $"{@event.RouteKey}@Failed"; //死信队列名称 @event.Headers.Remove("x-message-ttl"); @event.Headers["x-dead-letter-exchange"] = @event.Headers["x-exchange"]; //过期消息转向路由 @event.Headers["x-dead-letter-routing-key"] = @event.RouteKey; //过期消息转向路由相匹配routingkey }
public ActionResult Create([Bind(Include = "Email,UserName")] Student student, string password) { if (ModelState.IsValid) { Student s = new Student { UserName = student.Email, Email = student.Email }; var result = Um.Create(s, password); if (result.Succeeded) { db.Roles.First(r => r.Name == "Company").Users.Add(new IdentityUserRole { UserId = s.Id }); MessageCarrier messCarr = new MessageCarrier() { actn = "Index", ctrller = "Students", message = "Successfully enrolled student" }; db.SaveChanges(); return(RedirectToAction("MessagePage", "Home", messCarr)); } else { return(View(student)); } } return(View(student)); }
public IHttpActionResult UpdateCustomer([FromBody] Customer customer) //doing RabbitMQ here with easynetq { //((AnonymousUserFacade)Request.Properties["facade"]).UpdateCustomerDetails(customer); //before rabbit MessageCarrier <Customer> carrier = new MessageCarrier <Customer>(customer, MessageCarrier <Customer> .ControllerRequest.UpdateCustomer); //string message = JsonConvert.SerializeObject(carrier); using (var bus = RabbitHutch.CreateBus("host=localhost")) { bus.Publish <MessageCarrier <Customer> >(carrier, "from_anon_controller"); } ResponseCarrier result = null; ManualResetEvent mre = new ManualResetEvent(false); using (var bus = RabbitHutch.CreateBus("host=localhost")) { bus.Subscribe <ResponseCarrier>("to_anon_controller", (ResponseCarrier messageResult) => { result = messageResult; mre.Set(); }); //what is supposed to be in a task? async await somewhere? mre.WaitOne(); } if (result.Response == ResponseCarrier.ServiceResponse.Ok) { return(Ok()); } else { return(InternalServerError()); } }
//Nice constructor scaffolding public Message(string[] to, string from, string body, string subject, MessageCarrier type, MessageModifier modifier) : this(type, modifier) { Receivers = to; Sender = from; Body = body; Subject = subject; }
/// <summary> /// Used to sends message to all /// </summary> public void SendMessageToAll(string[] recipients, MessageCarrier msgCarrier, Message msg, bool isHTML) { foreach (string recipient in recipients) { SendMessage(recipient, msgCarrier, msg, isHTML); } }
/// <summary> /// 设置延时策略 /// </summary> /// <param name="event"></param> /// <param name="TTL">延时时间(秒)</param> /// <returns></returns> public static void WithWait(this MessageCarrier @event, int TTL) { @event.Headers["x-first-death-queue"] = $"{@event.RouteKey}@Delay#{TTL}"; //死信队列名称 @event.Headers["x-message-ttl"] = TTL * 1000; //当一个消息被推送在该队列的时候 可以存在的时间 单位为ms,应小于队列过期时间 @event.Headers["x-dead-letter-exchange"] = @event.Headers["x-exchange"]; //过期消息转向路由 @event.Headers["x-dead-letter-routing-key"] = @event.RouteKey; //过期消息转向路由相匹配routingkey }
public ActionResult Create([Bind(Include = "Email,UserName")] Company company, string password) { if (ModelState.IsValid) { Company s = new Company { UserName = company.Email, Email = company.Email }; var result = UM.Create(s, password); if (result.Succeeded) { db.Roles.First(r => r.Name == "Company").Users.Add(new IdentityUserRole { UserId = s.Id }); MessageCarrier mc = new MessageCarrier() { actn = "Index", ctrller = "Companies", message = "Succesfully created company" }; db.SaveChanges(); return(RedirectToAction("MessagePage", "Home", mc)); } else { return(View(company)); } } return(View(company)); }
public bool sendMessageToAll(MessageCarrier type, string[] to, Message m, bool isHTML) { bool isSent = false; if (type.Equals(MessageCarrier.Smtp)) { if (isHTML) { m.MessageBody = MessageConverter.ConvertBodyToHTML(m.MessageBody); } //her implementeres alt koden til at sende via Smtp isSent = true; } if (type.Equals(MessageCarrier.VMessage)) { if (isHTML) { m.MessageBody = MessageConverter.ConvertBodyToHTML(m.MessageBody); } //her implementeres alt koden til at sende via VMessage isSent = true; } return(isSent); }
public ActionResult MessagePage(MessageCarrier mc) { MessageCarrier m = new MessageCarrier { message = mc.message, ctrller = mc.ctrller, actn = mc.actn, UserId = mc.UserId }; return(View(m)); }
public ActionResult ApplyToPosting(string userId, int postingId, string coverLetter) { var student = db.Students.FirstOrDefault(stud => stud.Id == userId); Posting posting = db.Postings.Include(x => x.Company).FirstOrDefault(post => post.Id == postingId); string companyId = posting.Company.Id; Company company = db.Companies.Find(companyId); if (posting != null && student != null) { //send an email to the company email if (student.ResumeLink.Length > 0) { MailMessage mail = new MailMessage("*****@*****.**", company.Email); mail.Body = "A user has replied to your internship posting on MITT INTERN STUDENT PORTAL PATENT PENDING Check out their resume"; string routeToResume = String.Format(Server.MapPath("~") + "uploads\\{0}\\{1}\\{2}", student.Id, "resume", student.ResumeLink); byte[] resumeBytes = System.IO.File.ReadAllBytes(routeToResume); mail.Subject = "A new student has applied to your internship opportunity"; mail.To.Add(company.Email); mail.To.Add("*****@*****.**"); Attachment attachment = new Attachment(routeToResume); mail.Attachments.Add(attachment); //i don't have an smtp server var credentials = new NetworkCredential("*****@*****.**", ConfigurationManager.AppSettings["emailPasswordForSmtp"]); // Smtp client var smtp = new SmtpClient() { Port = 587, DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = false, Host = "smtp.gmail.com", EnableSsl = true, Credentials = credentials }; smtp.Send(mail); if (!student.Postings.Contains(posting) == false) { student.Postings.Add(posting); } db.SaveChanges(); } } MessageCarrier mc = new MessageCarrier() { actn = "StudentProfile", ctrller = "Students", UserId = student.Id, message = "Succesfully applied to the posting" }; return(RedirectToAction("MessagePage", "Home", mc)); }
/// <summary> /// 发布消息 /// </summary> /// <param name="message">消息内容</param> /// <param name="confirm">是否采用发布确认机制</param> /// <param name="cancellationToken">取消令牌</param> /// <returns></returns> public async Task <bool> PublishAsync(MessageCarrier message, bool confirm = true, CancellationToken cancellationToken = default(CancellationToken)) { using (var tracer = _tracerFactory.CreateTracer("AMQP")) { return(await EnqueueConfirm(Convert4MessageRequest(new List <MessageCarrier> { message }), true, cancellationToken)); } }
public void HandleMassage(Message message, bool isHtml, MessageCarrier carrier) { SetSender(carrier); if (isHtml) { message.Body = Converter.ConvertBodyToHTML(message.Body); } sender.SendMessage(message); }
void HandleMessage(Message m, bool isHTML, MessageCarrier carrier) { SetMessageSender(carrier); if (isHTML) { m.Body = HtmlConverter.ConvertBodyToHTML(m.Body); } messageSender.sendMessage(m); }
void HandleMessage(string[] to, Message m, bool isHTML, MessageCarrier carrier) { SetMessageSender(carrier); if (isHTML) { m.Body = HtmlConverter.ConvertBodyToHTML(m.Body); } foreach (string person in to) { m.To = person; messageSender.sendMessage(m); } }
public void HandleMassage(string[] to, Message message, bool isHtml, MessageCarrier carrier) { SetSender(carrier); if (isHtml) { message.Body = Converter.ConvertBodyToHTML(message.Body); } foreach (string m in to) { message.To = m; sender.SendMessage(message); } }
void SetSender(MessageCarrier carrier) { switch (carrier) { case MessageCarrier.Smtp: sender = new SmtpSender(); break; case MessageCarrier.VMessage: sender = new VMessageSender(); break; default: break; } }
public void SetMessageSender(MessageCarrier carrier) { switch (carrier) { case MessageCarrier.Smtp: messageSender = new SMTPSender(); break; case MessageCarrier.VMessage: messageSender = new SMTPSender(); break; default: break; } }
public void sendMessageToAll(MessageCarrier type, string[] to, Message m, bool isHTML) { if (isHTML) { m.Body = convert.ConvertBodyToHTML(m.Body); } if (type.Equals(MessageCarrier.Smtp)) { //her implementeres alt koden til at sende via Smtp } if (type.Equals(MessageCarrier.VMessage)) { //her implementeres alt koden til at sende via VMessage } }
public void sendMessage(MessageCarrier type, Message m, bool isHTML) { if (isHTML) { m.Body = convert.ConvertBodyToHTML(m.Body); } //herinde sendes der en email ud til modtageren if (type.Equals(MessageCarrier.Smtp)) { //her implementeres alt koden til at sende via Smtp } if (type.Equals(MessageCarrier.VMessage)) { //her implementeres alt koden til at sende via VMessage } }
/// <summary> /// 重试,(有等待时间,有重试次数限制) /// </summary> /// <param name="response"></param> /// <returns></returns> public static MessageCarrier WaitAndRetry(this MessageResponse response, Func <int, int> retryAttempt, int maxRetries) { var @event = MessageCarrier.Clone(response); var numberOfRetries = response.GetNumberOfRetries(); var TTL = retryAttempt(numberOfRetries); //当前重试次数小于最大重试次数 if (numberOfRetries < maxRetries) { @event.WithWait(TTL); @event.WithRetry(maxRetries, ++numberOfRetries); } else { @event.WithNoRetry(); } return(@event); }
/// <summary> /// Used to send msg to recipient /// </summary> public void SendMessage(string recipient, MessageCarrier msgCarrier, Message msg, bool isHTML) { // In this scope we send a email out to the reciver if (msgCarrier.Equals(MessageCarrier.Smtp)) { if (isHTML) { msg.Body = HTMLConverter.BodyToHTML(msg.Body); } // her implementeres alt koden til at sende via Smtp } if (msgCarrier.Equals(MessageCarrier.VMessage)) { if (isHTML) { msg.Body = HTMLConverter.BodyToHTML(msg.Body); } // her implementeres alt koden til at sende via VMessage } }
public async Task <string> Test1() { var item1 = new MessageCarrier("routerkey.log.error", new TestEvent { EventName = "routerkey.log.error" }); var item2 = new MessageCarrier("routerkey.log.info", new TestEvent { EventName = "routerkey.log.info" }); var events = new List <MessageCarrier>() { item1, item2 }; var ret = await _bus.PublishAsync(events); return(ret.ToString()); }
// Metode kan fjernes da SendMessageToAll gjorde de samme //public void SendMessage(MessageCarrier type, Message m, bool isHTML) //{ // //herinde sendes der en email ud til modtageren // if (type.Equals(MessageCarrier.Smtp)) // { // if (isHTML) // m.Body = ConvertBodyToHTML(m.Body); // //her implementeres alt koden til at sende via Smtp // } // if (type.Equals(MessageCarrier.VMessage)) // { // if (isHTML) // m.Body = ConvertBodyToHTML(m.Body); // //her implementeres alt koden til at sende via VMessage // } //} // Gør det samme som SendMessageToAll // Converter til HTML // Sender til alle /// <summary> /// Sends the message via the specified MessageCarrier type. /// </summary> /// <param name="type">SMTP / VMessage</param> /// <param name="to"></param> /// <param name="m"></param> /// <param name="isHTML"></param> public void SendMessage(MessageCarrier type, string[] to, Message m, bool isHTML) { if (type.Equals(MessageCarrier.Smtp)) { if (isHTML) { m.Body = textToHTML.ConvertBodyToHTML(m.Body); } // Her sendes beskeden via SMTP SMTPSender smtp = new SMTPSender(); smtp.Send(m.Body); } if (type.Equals(MessageCarrier.VMessage)) { if (isHTML) { m.Body = textToHTML.ConvertBodyToHTML(m.Body); } // Her sendes beskeden vi VMessage VMessageSender vm = new VMessageSender(); vm.Send(m.Body); } }
/// <summary> /// 设置重试策略 /// </summary> /// <param name="event"></param> /// <param name="MaxRetries">最大重试次数</param> /// <param name="NumberOfRetries">当前重试次数</param> /// <returns></returns> public static void WithRetry(this MessageCarrier @event, int MaxRetries, int NumberOfRetries) { @event.Headers["x-message-max-retries"] = MaxRetries; @event.Headers["x-message-retries"] = NumberOfRetries; }
public Message(MessageCarrier type, MessageModifier modifier) : this() { MessageType = type; MessageModifier = modifier; }