Esempio n. 1
0
        private async void Login()
        {
            RaiseCanExecuteChanged();

            SimpleUser user;

            try
            {
                using (ProgressProvider.StartProgress())
                {
                    user = await _signalHelperFacade.LoginSignalHelper.Login(Username, Password).ConfigureAwait(true);
                }
            }
            catch (LoginFailedException e)
            {
                LoginFailed?.Invoke(new LoginFailedEventArgs(e.Message));
                return;
            }
            finally
            {
                RaiseCanExecuteChanged();
            }

            LoggedIn = true;
            LoginSucceeded?.Invoke(new LoginSucceededEventArgs(user));

            Application.Current.Dispatcher.Invoke(RaiseCanExecuteChanged);
        }
        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;
            }
        }