mirror of
https://github.com/azaion/annotations.git
synced 2026-04-22 13:06:31 +00:00
Errors sending to UI
notifying client of AI model conversion
This commit is contained in:
+19
-14
@@ -2,7 +2,6 @@
|
||||
using System.Net.Http;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Text.Unicode;
|
||||
using System.Windows;
|
||||
using System.Windows.Threading;
|
||||
using Azaion.Annotator;
|
||||
@@ -18,7 +17,6 @@ using Azaion.CommonSecurity.DTO;
|
||||
using Azaion.CommonSecurity.DTO.Commands;
|
||||
using Azaion.CommonSecurity.Services;
|
||||
using Azaion.Dataset;
|
||||
using LazyCache;
|
||||
using LibVLCSharp.Shared;
|
||||
using MediatR;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
@@ -40,13 +38,15 @@ public partial class App
|
||||
private FormState _formState = null!;
|
||||
|
||||
private IInferenceClient _inferenceClient = null!;
|
||||
private IResourceLoader _resourceLoader = null!;
|
||||
private Stream _securedConfig = null!;
|
||||
private Stream _systemConfig = null!;
|
||||
private static readonly Guid KeyPressTaskId = Guid.NewGuid();
|
||||
private string _loadErrors = "";
|
||||
|
||||
|
||||
private readonly ICache _cache = new MemoryCache();
|
||||
private IAzaionApi _azaionApi = null!;
|
||||
private CancellationTokenSource _mainCancelTokenSource = new();
|
||||
|
||||
private void OnDispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
|
||||
{
|
||||
@@ -89,10 +89,10 @@ public partial class App
|
||||
new ConfigUpdater().CheckConfig();
|
||||
var secureAppConfig = ReadSecureAppConfig();
|
||||
var apiDir = secureAppConfig.DirectoriesConfig.ApiResourcesDirectory;
|
||||
_inferenceClient = new InferenceClient(new OptionsWrapper<InferenceClientConfig>(secureAppConfig.InferenceClientConfig));
|
||||
_resourceLoader = new ResourceLoader(_inferenceClient);
|
||||
_inferenceClient = new InferenceClient(new OptionsWrapper<InferenceClientConfig>(secureAppConfig.InferenceClientConfig), _mainCancelTokenSource.Token);
|
||||
var login = new Login();
|
||||
|
||||
var loader = (IResourceLoader)_inferenceClient;
|
||||
login.CredentialsEntered += (_, credentials) =>
|
||||
{
|
||||
_inferenceClient.Send(RemoteCommand.Create(CommandType.Login, credentials));
|
||||
@@ -100,8 +100,8 @@ public partial class App
|
||||
|
||||
try
|
||||
{
|
||||
_securedConfig = _resourceLoader.LoadFile("config.secured.json", apiDir);
|
||||
_systemConfig = _resourceLoader.LoadFile("config.system.json", apiDir);
|
||||
_securedConfig = loader.LoadFile("config.secured.json", apiDir);
|
||||
_systemConfig = loader.LoadFile("config.system.json", apiDir);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
@@ -123,12 +123,13 @@ public partial class App
|
||||
{
|
||||
try
|
||||
{
|
||||
var stream = _resourceLoader.LoadFile($"{assemblyName}.dll", apiDir);
|
||||
var stream = loader.LoadFile($"{assemblyName}.dll", apiDir);
|
||||
return Assembly.Load(stream.ToArray());
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(e);
|
||||
Log.Logger.Error(e, $"Failed to load assembly {assemblyName}");
|
||||
_loadErrors += $"{e.Message}{Environment.NewLine}{Environment.NewLine}";
|
||||
var currentLocation = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)!;
|
||||
var dllPath = Path.Combine(currentLocation, SecurityConstants.DUMMY_DIR, $"{assemblyName}.dll");
|
||||
return Assembly.LoadFile(dllPath);
|
||||
@@ -143,13 +144,13 @@ public partial class App
|
||||
|
||||
StartMain();
|
||||
_host.Start();
|
||||
EventManager.RegisterClassHandler(typeof(UIElement), UIElement.KeyDownEvent, new RoutedEventHandler(GlobalClick));
|
||||
EventManager.RegisterClassHandler(typeof(UIElement), UIElement.PreviewKeyDownEvent, new RoutedEventHandler(GlobalKeyHandler));
|
||||
_host.Services.GetRequiredService<MainSuite>().Show();
|
||||
};
|
||||
login.Closed += (sender, args) =>
|
||||
{
|
||||
if (!login.MainSuiteOpened)
|
||||
_inferenceClient.Stop();
|
||||
_inferenceClient.Dispose();
|
||||
};
|
||||
login.ShowDialog();
|
||||
}
|
||||
@@ -218,7 +219,7 @@ public partial class App
|
||||
|
||||
services.AddSingleton<FailsafeAnnotationsProducer>();
|
||||
|
||||
services.AddSingleton<AnnotationService>();
|
||||
services.AddSingleton<IAnnotationService, AnnotationService>();
|
||||
|
||||
services.AddSingleton<DatasetExplorer>();
|
||||
services.AddSingleton<IGalleryService, GalleryService>();
|
||||
@@ -231,16 +232,20 @@ public partial class App
|
||||
Annotation.InitializeDirs(_host.Services.GetRequiredService<IOptions<DirectoriesConfig>>().Value);
|
||||
|
||||
_mediator = _host.Services.GetRequiredService<IMediator>();
|
||||
if (!string.IsNullOrEmpty(_loadErrors))
|
||||
_mediator.Publish(new LoadErrorEvent(_loadErrors));
|
||||
|
||||
_logger = _host.Services.GetRequiredService<ILogger<App>>();
|
||||
_formState = _host.Services.GetRequiredService<FormState>();
|
||||
DispatcherUnhandledException += OnDispatcherUnhandledException;
|
||||
}
|
||||
|
||||
private void GlobalClick(object sender, RoutedEventArgs e)
|
||||
private void GlobalKeyHandler(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var args = (KeyEventArgs)e;
|
||||
var keyEvent = new KeyEvent(sender, args, _formState.ActiveWindow);
|
||||
ThrottleExt.Throttle(() => _mediator.Publish(keyEvent), KeyPressTaskId, TimeSpan.FromMilliseconds(50));
|
||||
//e.Handled = true;
|
||||
}
|
||||
|
||||
protected override async void OnExit(ExitEventArgs e)
|
||||
@@ -248,4 +253,4 @@ public partial class App
|
||||
base.OnExit(e);
|
||||
await _host.StopAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -33,8 +33,8 @@
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Azaion.Common\Azaion.Common.csproj" />
|
||||
<ProjectReference Include="..\dummy\Azaion.Annotator\Azaion.Annotator.csproj" />
|
||||
<ProjectReference Include="..\dummy\Azaion.Dataset\Azaion.Dataset.csproj" />
|
||||
<ProjectReference Include="..\Azaion.Annotator\Azaion.Annotator.csproj" />
|
||||
<ProjectReference Include="..\Azaion.Dataset\Azaion.Dataset.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@@ -62,8 +62,8 @@
|
||||
|
||||
<Target Name="PostBuild" AfterTargets="Build">
|
||||
<MakeDir Directories="$(TargetDir)dummy" />
|
||||
<Move SourceFiles="$(TargetDir)Azaion.Annotator.dll" DestinationFolder="$(TargetDir)dummy" />
|
||||
<Move SourceFiles="$(TargetDir)Azaion.Dataset.dll" DestinationFolder="$(TargetDir)dummy" />
|
||||
<Copy SourceFiles="$(TargetDir)Azaion.Annotator.dll" DestinationFolder="$(TargetDir)dummy" />
|
||||
<Copy SourceFiles="$(TargetDir)Azaion.Dataset.dll" DestinationFolder="$(TargetDir)dummy" />
|
||||
<Exec Command="postbuild.cmd $(ConfigurationName) stage" />
|
||||
</Target>
|
||||
|
||||
|
||||
@@ -143,7 +143,7 @@ public partial class MainSuite
|
||||
foreach (var window in _openedWindows)
|
||||
window.Value.Close();
|
||||
|
||||
_inferenceClient.Stop();
|
||||
_inferenceClient.Dispose();
|
||||
_gpsMatcherClient.Stop();
|
||||
Application.Current.Shutdown();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user