@page "/dashboarddetail/{Group}" @page "/dashboarddetail" @using Domain.Entities @inject IJSRuntime js; @inject IToastService toastService @inject HttpClient _httpClient @inject TicketsService ticketService @inject NavigationManager Navigation @inject AuthenticationStateProvider authenticationStateProvider

Tickets detalle: @Group?.ToUpper().ToString()

@* wtf? *@
@code { [Parameter] public string? Group { get; set; } = string.Empty; private IEnumerable? detailResult; List columnas = new List { "#", "Titulo", "Prioridad", "Estado", "Creador", "Fecha", "Asignado", "Categoria", "Departamento", "Impacto", "Urgencia" }; List> datos = new List>(); protected override async Task OnInitializedAsync() { if (!string.IsNullOrEmpty(Group)) { detailResult = await ticketService.GetDashboardDetail(Group, "ASC"); if (detailResult is not null) { datos = ObtenerDatos(detailResult); } } } private async Task XSLXExportar() { string endpoint = "/api/Ticket/ExportDashboardDetail"; var response = await _httpClient.PostAsJsonAsync(endpoint, new { Param1 = Group, Param2 = "ASC" }); response.EnsureSuccessStatusCode(); var fileBytes = await response.Content.ReadAsByteArrayAsync(); var currentDate = DateTime.Now.ToString("ddMMyyyyhhmmss"); var filename = $"Tickets_{Group}_{currentDate}.xlsx"; await js.InvokeAsync("saveAsFile", filename, Convert.ToBase64String(fileBytes)); } List> ObtenerDatos(IEnumerable summary) { var datos = new List>(); foreach (var item in summary) { var fila = new Dictionary(); fila.Add(columnas[0], item.TicketId); fila.Add(columnas[1], item.Titulo?.ToString() ?? string.Empty); fila.Add(columnas[2], item.Prioridad?.ToString() ?? string.Empty); fila.Add(columnas[3], item.Estado?.ToString() ?? string.Empty); fila.Add(columnas[4], item.CreadorUsuarioId?.ToString() ?? string.Empty); fila.Add(columnas[5], item.FechaCreacion?.ToString() ?? string.Empty); fila.Add(columnas[6], item.AsignadoAUsuarioId?.ToString() ?? string.Empty); fila.Add(columnas[7], item.Categoria?.ToString() ?? string.Empty); fila.Add(columnas[8], item.Departamento?.ToString() ?? string.Empty); fila.Add(columnas[9], item.Impacto?.ToString() ?? string.Empty); fila.Add(columnas[10], item.Urgencia?.ToString() ?? string.Empty); datos.Add(fila); } return datos; } public void Cancel() { Navigation.NavigateTo("/DashboardPanel"); } }