using Biskilog_Accounting.Shared.ClientContractModels; using Microsoft.AspNetCore.Components.Web; using Microsoft.AspNetCore.Components; using static System.Net.WebRequestMethods; using System.Net.Http.Headers; using System.Net.Http.Json; namespace Biskilog_Accounting.Client.Pages.Auth.Components { public partial class UsernameTab { private string m_email, m_password; private bool m_remember { get; set; } protected bool IsVisible { get; set; } private string m_usernameErrorClass = "hidden"; private string m_passwordErrorClass = "hidden"; //NotificationMessage notificationMessage = new NotificationMessage(); private Userauth authenticatedUser; /// /// Handles the click or press event of the enter key /// /// public async void Enter(KeyboardEventArgs e) { if (e.Code == "Enter" || e.Code == "NumpadEnter") { FieldValidation(); if (!string.IsNullOrEmpty(m_email) && !string.IsNullOrEmpty(m_password)) { await Authenticate(); } } } /// /// Validates the username and password input fields and shows the appropriate indicators /// private void FieldValidation() { if (string.IsNullOrEmpty(m_email)) { m_usernameErrorClass = ""; } else { m_usernameErrorClass = "hidden"; } if (string.IsNullOrEmpty(m_password)) { m_passwordErrorClass = ""; } else { m_passwordErrorClass = "hidden"; } } /// /// Authenticates the user and determines the type of page layout to show /// /// async Task Authenticate() { FieldValidation(); ShowSpinner(); try { authenticatedUser = new Userauth { UserId = 0, Username = m_email, Email = m_email, Passsword = m_password }; var responseMain = await m_http.PostAsJsonAsync("api/authentication/type-a", authenticatedUser); if (responseMain.IsSuccessStatusCode) { string token = await responseMain.Content.ReadAsStringAsync(); await m_tokenService.SetToken(token, m_remember); var authHeader = new AuthenticationHeaderValue("Bearer", token); m_http.DefaultRequestHeaders.Authorization = authHeader; m_navigationManager.NavigateTo("/"); } else if (responseMain.StatusCode == System.Net.HttpStatusCode.BadRequest) { } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } HideSpinner(); } /// /// Shows the loading spinner /// public void ShowSpinner() { IsVisible = true; StateHasChanged(); } /// /// Hides the loading spinner /// public void HideSpinner() { IsVisible = false; StateHasChanged(); } /// /// Shows a notification message /// /// /// //async Task ShowNotification(NotificationMessage message) //{ // notificationService.Notify(message); // await InvokeAsync(() => { StateHasChanged(); }); //} /// /// Sets the username value /// /// void usernameInput(string value) { m_email = value; StateHasChanged(); } /// /// Sets the password value /// /// void passwordInput(string value) { m_password = value; StateHasChanged(); } } }