private async void ContentDialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
        {
            var tbemail    = tb_email.Text;
            var pbpassword = pb_pass.Password;

            email.Text = password.Text = errorMessage.Text = "";
            var httpResponseMessage = APIHandle.Sign_In(tbemail, pbpassword);

            if (httpResponseMessage.Result.StatusCode == HttpStatusCode.Created)
            {
                await Handle.Login(tbemail, pbpassword);

                Frame rootFrame = Window.Current.Content as Frame;
                rootFrame.Navigate(typeof(Views.ListViewDemo));
            }
            else
            {
                var errorJson = await httpResponseMessage.Result.Content.ReadAsStringAsync();

                ErrorResponse errResponse = JsonConvert.DeserializeObject <ErrorResponse>(errorJson);
                foreach (var errorField in errResponse.error.Keys)
                {
                    if (this.FindName(errorField) is TextBlock textBlock)
                    {
                        textBlock.Text = "*" + errResponse.error[errorField];
                        Debug.WriteLine("'" + errorField + "' : '" + errResponse.error[errorField] + "'");
                        textBlock.Visibility = Visibility.Visible;
                        textBlock.Foreground = new SolidColorBrush(Colors.Red);
                        textBlock.FontSize   = 10;
                        textBlock.FontStyle  = FontStyle.Italic;
                    }
                }
                args.Cancel = true;
            }
            if (rememberCheck.IsChecked == true)
            {
                await Handle.WriteFile("remember.txt", "true");
            }
            else
            {
                await Handle.WriteFile("remember.txt", "");
            }
            //await Task.Delay(1000);
        }
Esempio n. 2
0
        private async void BtnLogin_Click(object sender, RoutedEventArgs e)
        {
            if (Validate_Login() == true)
            {
                var response = await APIHandle.Sign_In(this.Email.Text, this.Password.Password);

                var responseContent = await response.Content.ReadAsStringAsync();

                if (response.StatusCode == HttpStatusCode.Created)
                {
                    TokenResponse token = JsonConvert.DeserializeObject <TokenResponse>(responseContent);

                    StorageFolder folder = ApplicationData.Current.LocalFolder;
                    StorageFile   file   = await folder.CreateFileAsync("token.txt", CreationCollisionOption.ReplaceExisting);

                    await FileIO.WriteTextAsync(file, responseContent);

                    this.Hide();
                    var rootFrame = Window.Current.Content as Frame;
                    rootFrame.Navigate(typeof(NavigationView), null, new EntranceNavigationTransitionInfo());
                }
                else
                {
                    ErrorResponse errorObject = JsonConvert.DeserializeObject <ErrorResponse>(responseContent);
                    if (errorObject != null && errorObject.error.Count > 0)
                    {
                        foreach (var key in errorObject.error.Keys)
                        {
                            var textMessage = this.FindName(key);
                            if (textMessage == null)
                            {
                                continue;
                            }
                            TextBlock textBlock = textMessage as TextBlock;
                            textBlock.Text       = errorObject.error[key];
                            textBlock.Visibility = Visibility.Visible;
                        }
                    }
                }
            }
        }
        //Dialog login
        private async void PageLogin(object sender, RoutedEventArgs e)
        {
            var stackPanel = new StackPanel();

            // Tạo input tài khoản
            var textBoxName = new TextBox
            {
                Header = "Email",
                Name   = "Email",
                Margin = new Thickness(0, 5, 0, 10),
            };

            // Tạo input pass
            var textBoxPass = new PasswordBox
            {
                Header = "Mật khẩu",
                Name   = "Password",
            };

            // tạo mới link sang page đăng ký
            var linkSignUp = new HyperlinkButton
            {
                Content             = "Đăng ký",
                FontSize            = 13,
                HorizontalAlignment = HorizontalAlignment.Left,
            };

            // add sự kiện Click vào hyperlink
            linkSignUp.Click += LinkSignUp_Click;

            stackPanel.Children.Add(textBoxName);
            stackPanel.Children.Add(textBoxPass);
            stackPanel.Children.Add(linkSignUp);

            Style btnPrimaryStyle = (Style)App.Current.Resources["myButtonPrimary"];
            Style btnCloseStyle   = (Style)App.Current.Resources["myButtonClose"];

            dialogLogin.Title              = "Đăng nhập";
            dialogLogin.Content            = stackPanel;
            dialogLogin.PrimaryButtonText  = "Đăng nhập";
            dialogLogin.CloseButtonText    = "Đóng";
            dialogLogin.PrimaryButtonStyle = btnPrimaryStyle;
            dialogLogin.CloseButtonStyle   = btnCloseStyle;

            dialogLogin.PrimaryButtonClick += async(s, args) =>
            {
                currentLogin = new Member();
                ContentDialogButtonClickDeferral deferral = args.GetDeferral();

                var httpResponseMessage = APIHandle.Sign_In(textBoxName.Text, textBoxPass.Password).Result;

                var responseContent = await httpResponseMessage.Content.ReadAsStringAsync();

                if (httpResponseMessage.StatusCode == System.Net.HttpStatusCode.Created)
                {
                    // save file...
                    Debug.WriteLine(responseContent);
                    // Doc token
                    TokenResponse token = JsonConvert.DeserializeObject <TokenResponse>(responseContent);

                    // Luu token
                    StorageFolder folder = ApplicationData.Current.LocalFolder;
                    StorageFile   file   = await folder.CreateFileAsync("token.txt", CreationCollisionOption.ReplaceExisting);

                    await FileIO.WriteTextAsync(file, responseContent);

                    await DoLogin();

                    //Đi thẳng vào MainPage và thích móc gì thì móc
                    var          frame       = Window.Current.Content as Frame;
                    var          currentPage = frame.Content as Page;
                    var          appbarlogin = currentPage.FindName("ShowLoginButton");
                    var          appbarinfo  = currentPage.FindName("ShowUserInfo");
                    AppBarButton app1        = appbarlogin as AppBarButton;
                    AppBarButton app2        = appbarinfo as AppBarButton;
                    app1.Visibility = Visibility.Collapsed;
                    app2.Visibility = Visibility.Visible;

                    GlobalFlySong._isLogin = true;
                }
                else
                {
                    // Xu ly loi.
                    ErrorResponse errorObject = JsonConvert.DeserializeObject <ErrorResponse>(responseContent);
                    //if (errorObject != null && errorObject.error.Count > 0)
                    //{
                    //    foreach (var key in errorObject.error.Keys)
                    //    {
                    //        var textMessage = FindName(key);
                    //        if (textMessage == null)
                    //        {
                    //            continue;
                    //        }
                    //        TextBlock textBlock = textMessage as TextBlock;
                    //        textBlock.Text = errorObject.error[key];
                    //        textBlock.Visibility = Visibility.Visible;
                    //    }
                    //}
                    Debug.WriteLine(errorObject);
                }


                deferral.Complete();
            };
            await dialogLogin.ShowAsync();
        }