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);
        }
Esempio n. 2
0
 /// <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));
        }
Esempio n. 4
0
        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());
            }
        }
Esempio n. 5
0
        //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;
        }
Esempio n. 6
0
 /// <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);
     }
 }
Esempio n. 7
0
 /// <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
 }
Esempio n. 8
0
        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));
        }
Esempio n. 11
0
        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));
        }
Esempio n. 12
0
 /// <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));
     }
 }
Esempio n. 13
0
        public void HandleMassage(Message message, bool isHtml, MessageCarrier carrier)
        {
            SetSender(carrier);

            if (isHtml)
            {
                message.Body = Converter.ConvertBodyToHTML(message.Body);
            }

            sender.SendMessage(message);
        }
Esempio n. 14
0
        void HandleMessage(Message m, bool isHTML, MessageCarrier carrier)
        {
            SetMessageSender(carrier);

            if (isHTML)
            {
                m.Body = HtmlConverter.ConvertBodyToHTML(m.Body);
            }

            messageSender.sendMessage(m);
        }
Esempio n. 15
0
        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);
            }
        }
Esempio n. 16
0
        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);
            }
        }
Esempio n. 17
0
        void SetSender(MessageCarrier carrier)
        {
            switch (carrier)
            {
            case MessageCarrier.Smtp:
                sender = new SmtpSender();
                break;

            case MessageCarrier.VMessage:
                sender = new VMessageSender();
                break;

            default:
                break;
            }
        }
Esempio n. 18
0
        public void SetMessageSender(MessageCarrier carrier)
        {
            switch (carrier)
            {
            case MessageCarrier.Smtp:
                messageSender = new SMTPSender();
                break;

            case MessageCarrier.VMessage:
                messageSender = new SMTPSender();
                break;

            default:
                break;
            }
        }
Esempio n. 19
0
        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
            }
        }
Esempio n. 20
0
        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
            }
        }
Esempio n. 21
0
        /// <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);
        }
Esempio n. 22
0
        /// <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
            }
        }
Esempio n. 23
0
        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());
        }
Esempio n. 24
0
        // 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);
            }
        }
Esempio n. 25
0
 /// <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;
 }
Esempio n. 26
0
 public Message(MessageCarrier type, MessageModifier modifier) : this()
 {
     MessageType     = type;
     MessageModifier = modifier;
 }