//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;
            }
        }
Esempio n. 2
0
        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;
        }