//protected override void OnAppearing() //{ //} #region "SqlLite" #endregion public async void OnLoginClicked(object o, EventArgs e) { try { overlay.IsVisible = true; if (((txtUserId.Text.Trim()) == "") && ((txtPassword.Text.Trim()) == "")) { await DisplayAlert("Members", "Please select login type and enter user id and password", "Cancel"); txtUserId.Focus(); } else if ((string.IsNullOrEmpty(txtUserId.Text))) { await DisplayAlert("Members", "Please enter user id", "Cancel"); txtUserId.Focus(); } else if ((string.IsNullOrEmpty(txtPassword.Text))) { await DisplayAlert("Members", "Please enter password", "Cancel"); txtPassword.Focus(); } //else if(!Regex.IsMatch(txtUserId.Text, @"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z", RegexOptions.IgnoreCase)) //{ // DependencyService.Get<IMessage>().LongAlert("Invalid Email"); //} else { //switch (Device.RuntimePlatform) //{ // case Device.iOS: // objLoginModel.DeviceType = "IOS"; // break; // case Device.Android: // objLoginModel.DeviceType = "Android"; // break; //} #region KyorLogin LoggedInUser objLogedInUser = new LoggedInUser(); KyorLogin objKyorLogin = new KyorLogin(); objKyorLogin.email = txtUserId.Text.Trim(); objKyorLogin.password = txtPassword.Text.Trim(); object response = await App.TodoManager.LoginForKyor(objKyorLogin); if (response.ToString().Contains("errors")) { LoginResponseError objErrorResponse = Newtonsoft.Json.JsonConvert.DeserializeObject <LoginResponseError>(response.ToString()); DependencyService.Get <IMessage>().LongAlert(objErrorResponse.errors.message); } else { KyorLoginResponse objKyorLoginData = JsonConvert.DeserializeObject <KyorLoginResponse>(response.ToString()); if (objKyorLoginData.data != null) { objLogedInUser.sso_token = objKyorLoginData.data.sso_token; objLogedInUser.id = objKyorLoginData.data.id; objLogedInUser.Name = objKyorLoginData.data.name; objLogedInUser.photo_url = objKyorLoginData.data.photo_url; objLogedInUser.Designation = objKyorLoginData.data.designation.ToString(); objLogedInUser.CorporateLogo = objKyorLoginData.data.branch.corporate.logo; objLogedInUser.Gender = objKyorLoginData.data.gender; objLogedInUser.CorporateID = objKyorLoginData.data.corporate_id; List <KyorLoginService> lstKyorLoginService = new List <KyorLoginService>(); lstKyorLoginService = objKyorLoginData.data.branch.corporate.services; // objLogedInUser.MaritalStatus = objKyorLoginData.data.marital_status; App.KyorData = objKyorLoginData.data; App.id = objLogedInUser.id; App.Authorization = objKyorLoginData.data.sso_token; App.CorporateImageURl = objKyorLoginData.data.branch.corporate.logo; App.Gender = objKyorLoginData.data.gender; List <UserMenu> objUserMenu = new List <UserMenu>(); var menu = new UserMenu(); foreach (KyorLoginService kls in lstKyorLoginService) { menu.id = kls.id; menu.name = kls.name; menu.sequence = kls.sequence; objUserMenu.Add(menu); menu = new UserMenu(); } App.Database.SaveItem(objLogedInUser); App.Database.SaveUserMenu(objUserMenu); App.UserMenu = objUserMenu; App.SetupRedirection(new Wellogo.Tabbedpage.TabbedPage1()); App.Current.MainPage = App.MasterDetailPage; } } #endregion //objLoginResult. } } catch (Exception ex) { // await DisplayAlert("Alert", ex.ToString() + " or check your network connectivity.", "", "Re-Try"); await DisplayAlert("Alert", ex.ToString(), "", "Re-Try"); } finally { overlay.IsVisible = false; } }
private async void Button_Click(object sender, RoutedEventArgs e) { IsEnabled = false; if (token.Visibility == Visibility.Visible) { DiscordWindow window = new DiscordWindow(tokenBox.Password.Trim('"')); if (botToken.IsChecked == true) { window.type = Discord.TokenType.Bot; } window.Show(); App.Current.MainWindow = window; if (rememberMe.IsChecked == true) { App.Config.Token = tokenBox.Password.Trim('"'); App.Config.Save(); } Close(); } else { usernameBox.BorderBrush = App.SecondaryForegroundBrush; passwordBox.BorderBrush = App.SecondaryForegroundBrush; errorText.Visibility = Visibility.Collapsed; errorText.Text = ""; if (string.IsNullOrEmpty(usernameBox.Text)) { usernameBox.BorderBrush = new SolidColorBrush(App.ErrorColour); errorText.Text += "Enter an email address dipshit.\r\n"; } else if (!Tools.IsValidEmail(usernameBox.Text)) { usernameBox.BorderBrush = new SolidColorBrush(App.ErrorColour); errorText.Text += "Sorry! That email address doesn't seem right.\r\n"; } if (string.IsNullOrEmpty(passwordBox.Password)) { passwordBox.BorderBrush = new SolidColorBrush(App.ErrorColour); errorText.Text += "Enter a password you retard.\r\n"; } if (string.IsNullOrEmpty(errorText.Text)) { bool did2fa = false; string token = null; using (HttpClient client = new HttpClient()) { client.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) discord/0.0.32 Chrome/53.0.2785.143 Discord PTB/1.4.12 Safari/537.36"); string initialRequest = JsonConvert.SerializeObject(new LoginRequest() { EmailAddress = usernameBox.Text, Password = passwordBox.Password }); StringContent cont = new StringContent(initialRequest, Encoding.UTF8, "application/json"); HttpResponseMessage initialResponse = await client.PostAsync("https://discordapp.com/api/v6/auth/login", cont); string txtCont = await initialResponse.Content.ReadAsStringAsync(); try { initialResponse.EnsureSuccessStatusCode(); LoginResponse response = JsonConvert.DeserializeObject <LoginResponse>(txtCont); if (response.TwoFactor) { did2fa = true; Dialogs.TwoFactorAuthDialog dialog = new Dialogs.TwoFactorAuthDialog(); if (dialog.ShowDialog() == true) { string twoFAString = dialog.Code; if (Int32.TryParse(twoFAString, out int dontneedthislol) || (twoFAString.Length == 9 && twoFAString[4] == '-')) { string twoFARequest = JsonConvert.SerializeObject(new Login2FARequest() { Code = twoFAString, Ticket = response.Ticket }); cont = new StringContent(twoFARequest, Encoding.UTF8, "application/json"); HttpResponseMessage twoFAResponse = await client.PostAsync("https://discordapp.com/api/v6/auth/mfa/totp", cont); response = JsonConvert.DeserializeObject <LoginResponse>(await twoFAResponse.Content.ReadAsStringAsync()); token = response.Token; } } } else { token = response.Token; } } catch { try { LoginResponseError errorResponse = JsonConvert.DeserializeObject <LoginResponseError>(txtCont); if (errorResponse.EmailAddressErrors != null) { usernameBox.BorderBrush = new SolidColorBrush(App.ErrorColour); errorText.Text += string.Join("\r\n", errorResponse.EmailAddressErrors); } } catch { } } } if (token != null) { DiscordWindow window = new DiscordWindow(token); if (botToken.IsChecked == true) { window.type = Discord.TokenType.Bot; } window.Show(); App.Current.MainWindow = window; if (rememberMe.IsChecked == true) { App.Config.Token = token; App.Config.Save(); } Close(); } else if (string.IsNullOrWhiteSpace(errorText.Text)) { TaskDialog errorDialog = new TaskDialog(); errorDialog.MainIcon = TaskDialogIcon.Error; errorDialog.WindowTitle = "Unable to login."; if (did2fa) { errorDialog.Content = $"An error occured while attempting to login! It's more than likely that your two factor auth code was incorrect. Please try again."; } else { errorDialog.Content = $"An error occured while attempting to login! It's more than likely that your email address/password are incorrect. Please try again."; } errorDialog.Buttons.Add(new TaskDialogButton(ButtonType.Ok)); errorDialog.Show(); } else { errorText.Visibility = Visibility.Visible; } } else { errorText.Visibility = Visibility.Visible; } } IsEnabled = true; }