private async void ToServerAsync() { (string, string, string, bool)dataTuple; string resultCode = ""; string name = ""; string gender = ""; bool isHavePastMessage = false; string login = Login ?? ""; string password = new System.Net.NetworkCredential(string.Empty, Password).Password; await Task.Run(async() => { try { _serverWorker = ServerWorker.NewInstance(); dataTuple = await _serverWorker.AuthorizationAsync(login, GetHash(password)); resultCode = dataTuple.Item1; name = dataTuple.Item2; gender = dataTuple.Item3; isHavePastMessage = dataTuple.Item4; if (resultCode == "28") { if (IsRemember) { await Task.Run(() => _logicDb.AddNewUser(login, password)); } UserContainer.Login = Login; UserContainer.Password = Password; UserContainer.Gender = gender; } else { IsNotAuthorization = true; await Task.Run(() => _logicDb.DeleteUser(login, password)); } } catch { // ignore } }); if (resultCode == "28") { MainChatPageViewModel mainChatPageViewModel = new MainChatPageViewModel(name); NewPage = new MainChatPageView(); NewPage.DataContext = mainChatPageViewModel; mainChatPageViewModel.StartLoad(isHavePastMessage); Login = ""; _viewWindow.PasswordWrite(""); IsRemember = false; } else if (resultCode == "") { ErrorDialogView errorDialogView = new ErrorDialogView(new ErrorDialogViewModel("Ошибка подключения к серверу!")); errorDialogView.ShowDialog(); } IsCanClick = true; }