protected override void SignalHelperOnMessageReceived(MessageReceivedEventArgs eventArgs) { var ownSimpleMessage = new OwnSimpleMessage(eventArgs.ReceivedMessage); if (!string.IsNullOrWhiteSpace(eventArgs.ReceivedMessage.Base64ImageString)) { var memoryStream = new MemoryStream(Convert.FromBase64String(eventArgs.ReceivedMessage.Base64ImageString)); ownSimpleMessage.ImageStream = memoryStream; _imageHelper.AddImageStream(memoryStream, eventArgs.ReceivedMessage.ImageName); } Messages.Add(ownSimpleMessage); Application.Current.Dispatcher.Invoke(() => { }); string message = eventArgs.ReceivedMessage.Message; string username = SignalHelperFacade.LoginSignalHelper.User.Username; if (message.Contains($"@{username}", StringComparison.CurrentCultureIgnoreCase)) { if (!_viewProvider.IsMainWindowFocused()) { _viewProvider.ShowToastNotification($"{eventArgs.ReceivedMessage.Sender.Username}: {message}", NotificationType.Dark); } } _viewProvider.FlashWindow(); }
protected override void SendMessage(string message) { var simpleMessage = new OwnSimpleMessage(User, new SimpleUser(Conversation.TargetUsername), message); simpleMessage.MessageSentDateTime = DateTime.Now; _cappuMessageController.StoreOwnMessage(simpleMessage); Messages.Add(simpleMessage); simpleMessage.IsLocalMessage = false; SignalHelperFacade.ChatSignalHelper.SendPrivateMessage(simpleMessage); }
protected override async void SendMessage(string message) { using (ProgressProvider.StartProgress()) { var simpleMessage = new OwnSimpleMessage(User, message) { MessageSentDateTime = DateTime.Now }; if (File.Exists(MessageImagePath)) { using (var fileStream = File.OpenRead(MessageImagePath)) { var imageName = Guid.NewGuid().ToString(); var memoryStream = new MemoryStream(); fileStream.CopyTo(memoryStream); simpleMessage.ImageStream = memoryStream; simpleMessage.Base64ImageString = Convert.ToBase64String(memoryStream.ToArray()); simpleMessage.ImageName = imageName; _imageHelper.AddImageStream(memoryStream, imageName); } } MessageImagePath = string.Empty; simpleMessage.IsLocalMessage = true; Messages.Add(simpleMessage); simpleMessage.ImageUploading = true; await SignalHelperFacade.ChatSignalHelper.SendMessage(simpleMessage).ConfigureAwait(true); simpleMessage.ImageUploading = false; } }