using AyCode.Core.Helpers; using AyCode.Core.Loggers; using AyCode.Interfaces.Users; using AyCode.Utils.Extensions; using FruitBank.Common.Loggers; using FruitBank.Common.Models; using FruitBankHybrid.Shared.Services.Loggers; using FruitBankHybrid.Shared.Services.SignalRs; using Mango.Nop.Core.Dtos; using Mango.Nop.Core.Loggers; using Mango.Nop.Core.Models; using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components.Web; namespace FruitBankHybrid.Shared.Pages; public partial class Login : ComponentBase { [Inject] public required IEnumerable LogWriters { get; set; } [Inject] public required FruitBankSignalRClient FruitBankSignalRClient { get; set; } [Inject] public required LoggedInModel LoggedInModel { get; set; } [Inject] public required NavigationManager NavManager{ get; set; } private ILogger _logger = null!; //private List Users { get; set; } private CustomerDto? SelectedUser { get; set; } private string PasswordValue { get; set; } = string.Empty; private MgLoginModelResponse? LoginModelResponse { get; set; } [CascadingParameter] public EventCallback UpdateStyle { get; set; } protected override async Task OnInitializedAsync() { _logger = new LoggerClient(LogWriters.ToArray()); _logger.Info("OnInitializedAsync"); if (!LoggedInModel.IsLoggedIn) { LoggedInModel.MeasuringUsers = await FruitBankSignalRClient.GetMeasuringUsers() ?? []; SelectedUser = LoggedInModel.MeasuringUsers.FirstOrDefault(); } else _rolesText = string.Join("; ", LoggedInModel.CustomerRoles.Select(x => x.Name)); await base.OnInitializedAsync(); } private string _rolesText = string.Empty; private async Task OnLoginClick() { if (LoggedInModel.IsLoggedIn) return; _rolesText = string.Empty; if (SelectedUser == null || PasswordValue.IsNullOrWhiteSpace()) { LoginModelResponse = new MgLoginModelResponse { ErrorMessage = "Válasszon felhsználót és adja meg a jelszavát!" }; return; } LoginModelResponse = await FruitBankSignalRClient.LoginMeasuringUser(SelectedUser.Email, PasswordValue); if (LoginModelResponse is { IsSuccesLogin: true }) { LoggedInModel.InitLoggedInCustomer(LoginModelResponse.CustomerDto); var customerRoles = await FruitBankSignalRClient.GetCustomerRolesByCustomerId(LoginModelResponse.CustomerDto!.Id); if (customerRoles != null) { LoggedInModel.InitCustomerRoles(customerRoles); _rolesText = string.Join("; ", LoggedInModel.CustomerRoles.Select(x => x.Name)); } } await UpdateStyle.InvokeAsync(); if (LoggedInModel.IsLoggedIn) NavManager.NavigateTo("/"); StateHasChanged(); } protected async Task OnPasswordKeyDown(KeyboardEventArgs e) { if (!LoggedInModel.IsLoggedIn && e.Key == "Enter") await OnLoginClick(); } private string GetImageFileName(CustomerDto employee) { //return StaticAssetUtils.GetEmployeeImagePath(employee.Id); return string.Empty; } }