Exemple #1
0
        /// <summary>
        /// The main gateway for outgoing messages
        /// </summary>
        /// <param name="toAddress">Where to send</param>
        /// <param name="text">What to send</param>
        /// <returns>Copy of the sent message</returns>
        public Message Send(string toAddress, string text)
        {
            var resultMessage = QueueMessage(new Message
            {
                // Convert newlines to tags of newlines
                Text     = text.Replace(Environment.NewLine, GetTag(Tags.Newline)),
                From     = Settings.Instance.PublicKey,
                To       = toAddress,
                Sent     = DateTime.Now,
                Received = DateTime.MinValue
            });

            var contactForHistory = Contacts.FirstOrDefault(p => p.ID == resultMessage.Address);
            var contactForAuthor  = Contacts.FirstOrDefault(p => p.ID == resultMessage.From);

            if (contactForHistory != null && contactForAuthor != null)
            {
                historyStorage.Add(contactForHistory.Name, contactForAuthor.Name, resultMessage);
            }

            // Provide a copy for external use
            return(resultMessage);
        }