/// <summary> /// Initializes a new instance of the <see cref="Message"/> class. /// </summary> /// <param name="content">The content.</param> /// <param name="senderDisplayName">Display name of the sender.</param> /// <param name="senderAlias">The sender alias.</param> /// <param name="timeStamp">The timestamp.</param> /// <param name="conversationId">The conversation id.</param> /// <param name="conferenceUri">The conference URI.</param> public Message(string content, string senderDisplayName, string senderAlias, string senderUri, DateTime timeStamp, string conversationId, string conferenceUri, MessageModality modality, MessageDirection direction = MessageDirection.Incoming) { this.Content = content; this.SenderDisplayName = SenderDisplayName; this.SenderAlias = senderAlias; this.SenderUri = senderUri; this.TimeStamp = timeStamp; this.ConversationId = conversationId; this.ConferenceUri = conferenceUri; this.Modality = modality; this.Direction = direction; }
/// <summary> /// Parses context data into List of Messages based on format: /// [SenderDisplayName ([email protected])(sip:[email protected])][ConversationId:12345678][ConferenceUri:[email protected];conf][TimeStamp][MessageType][MessageDirection][MessageContent];; /// </summary> /// <param name="contextData"></param> /// <returns></returns> private List <Message> ParseMessagesFromContextData(string contextData) { List <Message> transcriptMessages = new List <Message>(); // Split messages char[] transcriptMessagesDelimiter = { ';', ';' }; string[] transcriptMessageData = contextData.Split(transcriptMessagesDelimiter); char[] messagePropertyDelimiter = { ']', '[' }; char[] messageSenderInfoDelimiter = { '(' }; foreach (string s in transcriptMessageData) { // Split message content string senderInfo = "null"; string senderDisplayName = "null"; string senderAlias = "null"; string senderUri = "null"; string conversationId = "null"; string conferenceUri = "null"; string timeStamp = DateTime.Now.ToString(); string messageType = "Info"; string messageDirection = "Incoming"; string messageContent = "null"; string[] messageProperties = s.Split(messagePropertyDelimiter); // Verify 7 items in messageProperties if (messageProperties.Length == 7) { senderInfo = messageProperties[0].Substring(1); conversationId = messageProperties[1].Substring(1); conferenceUri = messageProperties[2].Substring(1); timeStamp = messageProperties[3].Substring(1); messageType = messageProperties[4].Substring(1); messageDirection = messageProperties[5].Substring(1); messageContent = messageProperties[6].Substring(1); if (senderInfo.Contains('(')) { string[] senderInfoItems = senderInfo.Split(messageSenderInfoDelimiter); senderDisplayName = senderInfoItems[0].Trim(); senderAlias = senderInfoItems[1].Substring(0, senderInfoItems[1].Length - 1).Trim(); senderAlias = senderInfoItems[2].Substring(0, senderInfoItems[2].Length - 1).Trim(); } else { senderDisplayName = senderInfo.Trim(); } } else { // TODO: Error continue; } MessageModality modality = MessageModality.Info; Enum.TryParse <MessageModality>(messageType, true, out modality); MessageDirection direction = MessageDirection.Incoming; Enum.TryParse <MessageDirection>(messageDirection, true, out direction); Message m = new Message(messageContent, senderDisplayName, senderAlias, senderUri, DateTime.Parse(timeStamp), conversationId, conferenceUri, modality, direction); transcriptMessages.Add(m); } // loop return(transcriptMessages); }
/// <summary> /// /// </summary> /// <param name="content"></param> /// <param name="senderDisplayName"></param> /// <param name="senderAlias"></param> /// <param name="senderUri"></param> /// <param name="modality"></param> /// <param name="conversationId"></param> /// <param name="conferenceUri"></param> /// <param name="messageDirection"></param> public Message(string content, string senderDisplayName, string senderAlias, string senderUri, MessageModality modality, string conversationId, string conferenceUri, MessageDirection messageDirection = MessageDirection.Incoming) : this(content, senderDisplayName, senderAlias, senderUri, DateTime.Now, conversationId, conferenceUri, modality, messageDirection) { }
/// <summary> /// Initializes a new instance of the <see cref="Message"/> class. /// </summary> /// <param name="content">The content.</param> /// <param name="senderDisplayName">Display name of the sender.</param> /// <param name="senderAlias">The sender alias.</param> /// <param name="timeStamp">The timestamp.</param> /// <param name="conversationId">The conversation id.</param> /// <param name="conferenceUri">The conference URI.</param> public Message(string content, string senderDisplayName, string senderAlias, string senderUri, DateTime timeStamp, string conversationId, string conferenceUri, MessageModality modality, MessageDirection direction = MessageDirection.Incoming) { this.Content = content; this.SenderDisplayName = SenderDisplayName; this.SenderAlias = senderAlias; this.SenderUri = senderUri; this.TimeStamp = timeStamp; this.ConversationId = conversationId; this.ConferenceUri = conferenceUri; this.Modality = modality; this.Direction = direction; }
/// <summary> /// /// </summary> /// <param name="content"></param> /// <param name="modality"></param> /// <param name="conversationId"></param> /// <param name="conferenceUri"></param> public Message(string content, MessageModality modality, string conversationId, string conferenceUri) : this(content, String.Empty, String.Empty, String.Empty, DateTime.Now, conversationId, conferenceUri, modality, MessageDirection.Incoming) { }
/// <summary> /// /// </summary> /// <param name="content"></param> /// <param name="senderDisplayName"></param> /// <param name="senderAlias"></param> /// <param name="senderUri"></param> /// <param name="modality"></param> /// <param name="conversationId"></param> /// <param name="messageDirection"></param> public Message(string content, string senderDisplayName, string senderAlias, string senderUri, MessageModality modality, string conversationId, MessageDirection messageDirection = MessageDirection.Incoming) : this(content, senderDisplayName, senderAlias, senderUri, DateTime.Now, conversationId, String.Empty, modality, messageDirection) { }
/// <summary> /// /// </summary> /// <param name="content"></param> /// <param name="modality"></param> /// <param name="conversationId"></param> /// <param name="conferenceUri"></param> public Message(string content, MessageModality modality, string conversationId, string conferenceUri) : this(content, String.Empty, String.Empty, String.Empty, DateTime.Now, conversationId, conferenceUri, modality, MessageDirection.Incoming) { }