Exemplo n.º 1
0
        public void Send(string recipient, MessageUrgency urgency, Message msg)
        {
            List <string> recipients = new List <string>();

            recipients.Add(recipient);

            SendMessage(recipients, urgency, msg);
        }
Exemplo n.º 2
0
 public void MessageReceived(MessageUrgency urgency, string message)
 {
     // Forward the message to anyone who subscribed to the OnMessageReceived
     // event.
     if (OnMessageReceived != null)
     {
         OnMessageReceived(this,
                           new SessionMessageEventArgs {
             Urgency = urgency, Message = message
         });
     }
 }
Exemplo n.º 3
0
        private void btnSendToSelectedClient_Click(object sender, EventArgs e)
        {
            if (lstClients.SelectedIndex == -1)
            {
                MessageBox.Show("Please select a client.");
                return;
            }

            ClientApplication client  = clients[lstClients.SelectedIndex];
            MessageUrgency    urgency = (MessageUrgency)cmbUrgency.SelectedValue;

            sessionManager.Proxy.MulticastMessage(client.Id, urgency, txtMessage.Text);
        }
Exemplo n.º 4
0
        private void SendMessage(List <string> recipients, MessageUrgency urgency, Message msg)
        {
            SettingsCollection    urgencyConfig = new SettingsCollection(Instance.Configuration.Options["DeliveryOptions"]);
            IDictionaryEnumerator ide           = urgencyConfig.GetEnumerator();

            while (ide.MoveNext())
            {
                if (urgency.ToString() == ide.Key.ToString())
                {
                    //We found an urgency that matches us. Now get the relevant providers.
                    List <Provider> ps = GetProviders(ide.Value.ToString());

                    foreach (Provider p in ps)
                    {
                        foreach (string r in recipients)
                        {
                            p.Send(GetRecipient(p.Type, r), msg);
                        }
                    }
                }
            }
        }
        public void MulticastMessage(Guid applicationId, MessageUrgency urgency, string message)
        {
            List <IApplicationSessionCallback> query = null;

            if (applicationId != Guid.Empty)
            {
                query = (from c in clients
                         where c.Key.Id == applicationId
                         select c.Value).ToList();
            }
            else
            {
                query = (from c in clients select c.Value).ToList();
            }

            Action <IApplicationSessionCallback> action =
                delegate(IApplicationSessionCallback callback)
            {
                callback.MessageReceived(urgency, message);
            };

            query.ForEach(action);
        }
Exemplo n.º 6
0
 public void SendMultiple(List <string> recipients, MessageUrgency urgency, Message msg)
 {
     SendMessage(recipients, urgency, msg);
 }
Exemplo n.º 7
0
        private void btnSendToAllClients_Click(object sender, EventArgs e)
        {
            MessageUrgency urgency = (MessageUrgency)cmbUrgency.SelectedValue;

            sessionManager.Proxy.MulticastMessage(Guid.Empty, urgency, txtMessage.Text);
        }
Exemplo n.º 8
0
        private void PrepareMessage(bool critical)
        {
            //First urgency.
            MessageUrgency urgency = MessageUrgency.Unknown;

            if (critical)
            {
                urgency = MessageUrgency.High;
            }
            else
            {
                urgency = MessageUrgency.Low;
            }

            if (ParentWorkflow.InternalParameters.ContainsKey("MessageUrgency"))
            {
                ParentWorkflow.InternalParameters["MessageUrgency"] = urgency;
            }
            else
            {
                ParentWorkflow.InternalParameters.Add("MessageUrgency", urgency);
            }

            //Now recipients.
            List <string> recipients = new List <string>();
            string        emails     = String.Empty;

            if (ParentWorkflow.Parameters.ContainsKey("Emails"))
            {
                emails = ParentWorkflow.Parameters["Emails"].ToString();
            }

            if (emails == String.Empty)
            {
                //See if we have internal emails.
                if (ParentWorkflow.InternalParameters.ContainsKey("Emails"))
                {
                    emails = ParentWorkflow.InternalParameters["Emails"].ToString();
                }
            }

            //Get the users and get their email addresses.
            SystemUsers users = new SystemUsers(AppSettings.GetAbsolute("Easynet.Edge.Core.Domain"));

            foreach (SystemUser su in users)
            {
                if (su.Email != null &&
                    su.Email != String.Empty)
                {
                    if (emails.Contains(su.Email) &&
                        !recipients.Contains(su.Name))
                    {
                        recipients.Add(su.Name);
                    }
                }
            }

            if (ParentWorkflow.InternalParameters.ContainsKey("MessageRecipients"))
            {
                List <string> cur = (List <string>)ParentWorkflow.InternalParameters["MessageRecipients"];
                cur.AddRange(recipients);
                ParentWorkflow.InternalParameters["MessageRecipients"] = cur;
            }
            else
            {
                ParentWorkflow.InternalParameters.Add("MessageRecipients", recipients);
            }

            //Attachments
            bool attachmentsFound = false;

            if (ParentWorkflow.InternalParameters.ContainsKey("MessageFileName"))
            {
                List <string> attachments = new List <string>();
                attachments.Add(ParentWorkflow.InternalParameters["MessageFileName"].ToString());

                if (ParentWorkflow.InternalParameters.ContainsKey("MessageAttachments"))
                {
                    List <string> current = (List <string>)ParentWorkflow.InternalParameters["MessageAttachments"];
                    current.AddRange(attachments);
                    ParentWorkflow.InternalParameters["MessageAttachments"] = current;
                }
                else
                {
                    ParentWorkflow.InternalParameters.Add("MessageAttachments", attachments);
                }

                attachmentsFound = true;
            }

            //Text and Title
            string curdate = String.Empty;

            if (ParentWorkflow.InternalParameters.ContainsKey("CurrentDate"))
            {
                DateTime t = Convert.ToDateTime(ParentWorkflow.InternalParameters["CurrentDate"]);
                curdate = t.ToString("yyyyMMdd");
            }

            string comp = String.Empty;

            if (ParentWorkflow.InternalParameters.ContainsKey("CompareDate"))
            {
                DateTime t = Convert.ToDateTime(ParentWorkflow.InternalParameters["CompareDate"]);
                comp = t.ToString("yyyyMMdd");
            }

            string date = String.Empty;

            if (ParentWorkflow.InternalParameters.ContainsKey("ReportDate"))
            {
                DateTime t = Convert.ToDateTime(ParentWorkflow.InternalParameters["ReportDate"]);
                date = t.ToString("yyyyMMdd");
            }

            string accountName = "Unknown";

            if (ParentWorkflow.InternalParameters.ContainsKey("AccountName"))
            {
                accountName = ParentWorkflow.InternalParameters["AccountName"].ToString();
            }

            string subject = "Message from easynet Alert System (Account: " + accountName + ")";

            if (curdate != String.Empty)
            {
                subject += " Current Date: " + curdate;
            }

            if (comp != String.Empty)
            {
                subject += " Base Date: " + comp;
            }

            if (date != String.Empty)
            {
                subject += " Report Date: " + date;
            }

            if (ParentWorkflow.InternalParameters.ContainsKey("MessageTitle"))
            {
                ParentWorkflow.InternalParameters["MessageTitle"] = subject;
            }
            else
            {
                ParentWorkflow.InternalParameters.Add("MessageTitle", subject);
            }

            string body = "The attached report contains the information needed.";

            if (!attachmentsFound)
            {
                body = accountName + ": Has Nothing to Report.";
            }

            if (ParentWorkflow.InternalParameters.ContainsKey("MessageText"))
            {
                ParentWorkflow.InternalParameters["MessageText"] = body;
            }
            else
            {
                ParentWorkflow.InternalParameters.Add("MessageText", body);
            }
        }