示例#1
0
 public static Message Add(Message m)
 {
     var mail = new Message().Load<Message>(MessageDataAdapter.Add(m));
       if (mail != null)
       {
     SendNotification(mail);
       }
       return mail;
 }
示例#2
0
 public static Message AddFromSystemUser(Message m)
 {
     m.SenderId = MembershipSettings.SystemUserKey;
       var mail = new Message().Load<Message>(MessageDataAdapter.Add(m));
       if (mail != null)
       {
     SendNotification(mail);
       }
       return mail;
 }
示例#3
0
 public static Message Create(Guid sender, Guid recipient, string subject, string body)
 {
     Message msg = new Message
       {
     SenderId = sender,
     RecipientId = recipient,
     Body = body,
     CreateDate = DateTime.Now,
     Unread = true
       };
       return msg;
 }
示例#4
0
 public static Message CreateByTemplate(MessageTemplate template, Guid sender
     , Guid recipient, string[] subjectParams, string[] bodyParams)
 {
     Message msg = new Message
       {
     SenderId = sender,
     RecipientId = recipient,
     Unread = true,
     CreateDate = DateTime.Now
       };
       var t = Dictionaries.Instance.GetMessageTemplate(template);
       msg.Body = StringUtils.Format(TypeConverter.ToString(t[MessageTemplateFields.Body]), bodyParams);
       msg.BodyRu = StringUtils.Format(TypeConverter.ToString(t[MessageTemplateFields.BodyRu]), bodyParams);
       return msg;
 }
示例#5
0
 public static SortedDictionary<int, SortedList<DateTime, Message>> GetConversations(Guid user, int messageCount)
 {
     DataTable dt = MessageDataAdapter.GetConversations(user, messageCount);
       var messageComparer = new SortHelper.ComparerDesc<DateTime>();
       var conversationComparer = new SortHelper.ComparerDesc<int>();
       var conversations = new SortedDictionary<int, SortedList<DateTime, Message>>(conversationComparer);
       if (dt != null)
       {
     foreach (var dr in dt.Select())
     {
       var msg = new Message().Load<Message>(dr);
       var conversationId = TypeConverter.ToInt32(dr[MessageFields.ConversationId]);
       if (false == conversations.ContainsKey(conversationId))
       {
     conversations.Add(conversationId, new SortedList<DateTime, Message>(messageComparer));
       }
       conversations[conversationId].Add(msg.CreateDate, msg);
     }
       }
       return conversations;
 }
示例#6
0
 protected Guid GetTargetUser(Message msg)
 {
     return Direction == MessageType.In
     ? msg.SenderId : Direction == MessageType.Out
       ? msg.RecipientId : Guid.Empty;
 }
示例#7
0
 private static Message CreateMessage(Guid senderId, Guid recipientId)
 {
     Guid messageUniqueId = Guid.NewGuid();
       Message m = new Message();
       m.SenderId = senderId;
       m.RecipientId = recipientId;
       //m.Subject = string.Format("test message {0}", messageUniqueId);
       m.Body = string.Format("test body {0}", messageUniqueId);
       m.CreateDate = DateTime.Now;
       m.Unread = true;
       return m;
 }
示例#8
0
 public void TestSearchUnreadMessages()
 {
     MessageSearchFilter msf = new MessageSearchFilter();
       msf.UnreadOnly = true;
       msf.Count = 2;
       DataTable messages = MessageFacade.Search(msf);
       Assert.IsNotNull(messages);
       Assert.GreaterOrEqual(messages.Rows.Count, 1);
       Assert.LessOrEqual(messages.Rows.Count, msf.Count);
       foreach (DataRow dr in messages.Rows)
       {
     Message m = new Message();
     m.Load<Message>(dr);
     Assert.IsTrue(m.Unread);
       }
 }
示例#9
0
 public void TestSearchSystemUserMessages()
 {
     MessageSearchFilter msf = new MessageSearchFilter();
       msf.SenderId = MembershipSettings.SystemUserKey;
       msf.Count = 5;
       DataTable messages = MessageFacade.Search(msf);
       Assert.IsNotNull(messages);
       Assert.GreaterOrEqual(messages.Rows.Count, 1);
       Assert.LessOrEqual(messages.Rows.Count, msf.Count);
       foreach (DataRow dr in messages.Rows)
       {
     Message m = new Message();
     m.Load<Message>(dr);
     Assert.AreEqual(MembershipSettings.SystemUserKey, m.SenderId);
       }
 }
示例#10
0
        public void TestReadMessage()
        {
            MessageSearchFilter msf = new MessageSearchFilter();
              msf.UnreadOnly = true;
              Message m = CreateMessage();
              MessageFacade.Add(m);
              DataTable messages = MessageFacade.Search(msf);
              Assert.IsNotNull(messages);
              Assert.GreaterOrEqual(messages.Rows.Count, 1);

              m = new Message();
              m.Load(messages.Rows[0]);

              Message newNessage = MessageFacade.Read(m);
              Assert.AreEqual(newNessage.MessageId, m.MessageId);

              Trace.WriteLine(m.ToXmlString());
        }
示例#11
0
 public static Message Delete(Message m)
 {
     return new Message().Load<Message>(MessageDataAdapter.Delete(m));
 }
示例#12
0
 private static void SendNotification(Message m)
 {
     if (NotificationSender != null)
       {
     NotificationSender.Send(m);
       }
 }
示例#13
0
 public static Message Read(Message m)
 {
     return new Message().Load<Message>(MessageDataAdapter.Read(m));
 }