예제 #1
0
        private async Task LogMessage(Message message)
        {
            try
            {
                var user = this._db.Users.First(x => x.Nickname == message.Sender);

                var dbMessage = new Messages()
                {
                    Id = this._db.Messages.Count() + 1,
                    Id_Sender = user.Id,
                    Timestamp = message.Timestamp,
                    MessageText = message.MessageText
                };

                this._db.Messages.Add(dbMessage);
                await this._db.SaveChangesAsync();
            }
            catch(Exception ex)
            {
                Console.WriteLine("\nSave Message to DB error:{0}\n",ex.Message);
            }
        }
예제 #2
0
        public bool SendMessage(string sender, string messageText)
        {
            var message = new Message()
            {
                Sender = sender,
                MessageText = messageText,
                Timestamp = DateTime.Now
            };

            try
            {
                foreach (var callback in this._receiverCallbacks)
                {
                    callback.OnMessageAdded(message);
                }

                Task.Run(async () => { await this.LogMessage(message); }).Wait();

                return true;
            }
            catch
            {
                return false;
            }
        }
 public void OnMessageAdded(Message message)
 {
     Console.WriteLine("Add message begin...");
     chatMessages.Add(message.AsString());
     Console.WriteLine("Add message finish");
 }