@page "/maps-manager" @using MudBlazor @using RobotApp.Common.Shares.Dtos @attribute [Authorize] @inject HttpClient Http Map Manager
NEW
Nr Name Width (m) Height (m) Resolution (m/px) OriginX OriginY @(Table?.CurrentPage * Table?.RowsPerPage + MapsShow.IndexOf(context) + 1) @context.Name @context.Width @context.Height @context.Resolution @context.OriginX @context.OriginY
Edit Delete
@code { private string txtSearch = ""; private bool IsLoading = false; private List Maps = []; private List MapsShow = []; private int selectedRowNumber = -1; private MapDto MapSelected = new(); private MudTable? Table; protected override async Task OnAfterRenderAsync(bool firstRender) { await base.OnAfterRenderAsync(firstRender); if (!firstRender) return; await LoadMaps(); } private async Task LoadMaps() { try { IsLoading = true; Maps.Clear(); StateHasChanged(); var maps = await Http.GetFromJsonAsync>($"api/MapsManager?txtSearch={txtSearch}"); Maps.AddRange(maps ?? []); Table?.ReloadServerData(); IsLoading = false; StateHasChanged(); } catch { return; } } private void TextSearchChanged(string text) { txtSearch = text; Table?.ReloadServerData(); } private bool FilterFunc(MapDto map) { if (string.IsNullOrWhiteSpace(txtSearch)) return true; if (map.Name is not null && map.Name.Contains(txtSearch, StringComparison.OrdinalIgnoreCase)) return true; if ($"{map.Name}".Contains(txtSearch)) return true; return false; } private Task> ReloadData(TableState state, CancellationToken _) { MapsShow.Clear(); var tasks = new List(); Maps.ForEach(map => { if (FilterFunc(map)) tasks.Add(map); }); MapsShow = tasks.Skip(state.Page * state.PageSize).Take(state.PageSize).ToList(); return Task.FromResult(new TableData() { TotalItems = tasks.Count, Items = MapsShow }); } private void RowClickEvent(TableRowClickEventArgs tableRowClickEventArgs) { } private string SelectedRowClassFunc(MapDto element, int rowNumber) { if (selectedRowNumber == rowNumber && Table?.SelectedItem != null && !Table.SelectedItem.Equals(element)) { return string.Empty; } else if (selectedRowNumber == rowNumber && Table?.SelectedItem != null && Table.SelectedItem.Equals(element)) { return "selected"; } else if (Table?.SelectedItem != null && Table.SelectedItem.Equals(element)) { selectedRowNumber = rowNumber; MapSelected = element; // NavigationMapPreviewRef.SetMapPreview(MapSelected); return "selected"; } else { return string.Empty; } } }