using Godot; using System; using System.Linq; using BITKit; using IDIS.Models; using IDIS.Services; using Microsoft.Extensions.DependencyInjection; namespace IDIS; public partial class IDIS_Query : EntityComponent { [ExportCategory(nameof(UXContainer))] [Export] private UXContainer queryContainer; [Export] private UXContainer titleBarContainer; [ExportCategory(nameof(Label))] [Export] private Label logLabel; [ExportCategory(nameof(NodeBuilder))] [Export] private NodeBuilder contentBuilder; //private IDIS_TemplateService _templateService; private IDIS_Service _service; public override void OnStart() { //_templateService = Entity.ServiceProvider.GetRequiredService(); _service = Entity.ServiceProvider.GetRequiredService(); queryContainer.button.Pressed += () => { Query(queryContainer.lineEdit.Text); }; titleBarContainer.Hide(); } private async void Query(string handle) { try { titleBarContainer.Hide(); var response = await _service.QueryAsync(handle); contentBuilder.Clear(); await BITApp.SwitchToMainThread(); if (response.TryAs(out var data) is false) throw new InvalidOperationException(response.Message); titleBarContainer.Show(); foreach (var x in data.IdData.OrderBy(x=>x.Index).Reverse()) { var container = contentBuilder.Build(); var nameLabel = container.Create