/// <inheritdoc/> public Task SendMessageAsync(string text, string sender) { var message = new ChatMessage { Sender = sender, Text = text, Time = DateTime.UtcNow }; message.Id = message.Time.Ticks; Messages.Add(message); ObtainMessage?.Invoke(message); return(Task.CompletedTask); }
/// <summary> /// Handels the incomming new <see cref="ChatMessage"/>. /// </summary> /// <param name="message">If this <see cref="ChatMessage"/> will be added/updated in the <see cref="messages"/>. /// If it's new, a <see cref="ObtainMessage"/>-event will be raised.</param> private void OnReceiveMessage(ChatMessage message) { logger.LogInformation("Received the message '{message}' from {sender}", message.Text, message.Sender); bool isNew = false; messages.AddOrUpdate( message.Id, id => { isNew = true; return(message); }, (id, oldValue) => message); if (isNew) { logger.LogDebug("Raising an ObtainMessage event."); ObtainMessage?.Invoke(message); } }