@page "/NuevoAcceso"
@using HerramientaCASA.Components.Layout
@using bdHerramientaCACOA.db
@using Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage

@rendermode InteractiveServer
@layout LoginLayout
@inject NavigationManager Navigation
@inject ProtectedSessionStorage ProtectedSessionStore


 <div class="back">
        <div class="div-center">
            <div class="content">
            <img src="Content/Imagenes/CACOA-6.png" height="49" />
                <h4 class="mt-2">Crear Clave de acceso</h4>
                <hr />
                <p>Se va a generar una clave de acceso para acceder a la herramienta, tenga en cuenta que como no se almacena ningún dato de caracter personal le recomendamos que guarde la clave y contraseña para poder utilizarla.</p>
                <form id="formLogin">
                    <div class="form-group mb-2">
                        <label for="exampleInputPassword1">Cree una contraseña para su clave:</label>
                        <PasswordInput placeholder="Introduzca una contraseña" Class="form-control" @bind-Value="@nuevaPassword" />
                    </div>
                <p  style="color:red !important">@mensajeError</p>
                    <button @onclick="@Generar" type="button" class="btnBlue"> Generar </button>
                </form>
            </div>
    </div>
</div>

@code {
    private string? nuevaPassword = "";
    public tsHerramientasCACOA bd;
    private string mensajeError = "";

    protected override void OnInitialized()
    {
        bd = tsHerramientasCACOA.NuevoContexto(SoloLectura: false);



    }

    private async Task Generar()
    {
        if (string.IsNullOrEmpty(nuevaPassword))
        {
            mensajeError = "Debe introducir una nueva contraseña.";
        }
        else
        {

            var nuevoAcceso = new usuarios();
            nuevoAcceso.Contrasena = nuevaPassword;
            nuevoAcceso.FechaCreacion = DateTime.Now;
            nuevoAcceso.FechaUltimoAcceso = DateTime.Now;

            bd.usuarios.Add(nuevoAcceso);
            bd.SaveChanges();

            nuevoAcceso.Codigo = nuevoAcceso.idUsuario;
            bd.SaveChanges();

            await ProtectedSessionStore.SetAsync("idUsuario", nuevoAcceso.idUsuario);


            Navigation.NavigateTo("/ClaveGenerada", forceLoad: true);
        }
    }
}
