@code {
private ETicket ticket { get; set; } = new ETicket();
// private string? userName;
public string Title { get; set; } = string.Empty;
private string urlReturn = "/dashboardpanel";
[Parameter]
public Guid? TicketId { get; set; }
private List prioridadOptions = new List { "Alta", "Media", "Baja" };
private List estadoOptions = new List { "En Proceso", "Completado", "Pendiente", "Cancelado" };
private List impactoOptions = new List { "Alto", "Medio", "Bajo" };
private List urgenciaOptions = new List { "Alta", "Media", "Baja" };
//const int MAX_FILESIZE = 5000 * 1024; // 2 MB
public Task FileUploaded(InputFileChangeEventArgs e)
{
var browserFile = e.File;
if (browserFile != null)
{
ticket.AdjuntoArchivo= browserFile.Name;
}
return Task.CompletedTask;
}
protected override void OnInitialized()
{
if (TicketId.HasValue)
{
// Cargar datos del ticket existente si estás en modo edición
// (puedes implementar esta lógica según tu estructura)
ticket = GetTicketById(TicketId.Value);
// }
// else
// {
// // Crear un nuevo ticket si estás en modo nuevo
// ticket = new ETicket();
}
}
private async Task HandleValidSubmit()
{
try
{
// Lógica para registro de ticket
if (ticket.TicketId == Guid.Empty)
{
var authState = await authenticationStateProvider.GetAuthenticationStateAsync();
var user = authState.User;
if (user?.Identity?.IsAuthenticated == true)
{
ticket.CreadorUsuarioId = user.Identity.Name ?? string.Empty; // Si Name es null, asignar cadena vacía
}
// var user = authState.User;
// if (user.Identity.IsAuthenticated)
// {
// ticket.CreadorUsuarioId = user.Identity.Name;
// }
// Lógica para guardar un nuevo ticket
var response = await _httpClient.PostAsJsonAsync("/api/Ticket/InsertTicket", ticket);
if (response.IsSuccessStatusCode)
{
toastService.ShowSuccess("Ticket guardado exitosamente");
Navigation.NavigateTo(urlReturn);
}
else
{
var jsonResponse = await response.Content.ReadAsStringAsync();
toastService.ShowError(jsonResponse);
}
}
else
{
// Lógica para actualizar un ticket existente
}
}
catch (HttpRequestException ex)
{
// Manejo de errores de la solicitud HTTP
toastService.ShowError($"Error al realizar la solicitud HTTP: {ex.Message}");
}
catch (Exception ex)
{
// Manejo de errores generales
toastService.ShowError($"Error: {ex.Message}");
}
}
// Método para obtener un ticket por su ID (puedes implementarlo según tu estructura)
private ETicket GetTicketById(Guid ticketId)
{
// Lógica para obtener datos del ticket por su ID
// (esto podría ser una llamada a tu API o una consulta a la base de datos)
return new ETicket(); // Reemplaza esto con la lógica real
}
public void Cancel()
{
Navigation.NavigateTo(urlReturn);
}
}