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;
            }
        }