mirror of
https://github.com/azaion/annotations.git
synced 2026-04-22 20:26:31 +00:00
rework to Azaion.Suite
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Runtime.Loader;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Input;
|
||||
using Azaion.Suite.Services.DTO;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
namespace Azaion.Suite;
|
||||
|
||||
public partial class Loader : Window
|
||||
{
|
||||
private readonly IResourceLoader _resourceLoader;
|
||||
private readonly IOptions<LocalFilesConfig> _localFilesConfig;
|
||||
|
||||
public Loader(IResourceLoader resourceLoader, IOptions<LocalFilesConfig> localFilesConfig)
|
||||
{
|
||||
_resourceLoader = resourceLoader;
|
||||
_localFilesConfig = localFilesConfig;
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private async void RunClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var stream = new MemoryStream();
|
||||
await _resourceLoader.LoadAnnotator(TbEmail.Text, TbPassword.Password, stream);
|
||||
stream.Seek(0, SeekOrigin.Begin);
|
||||
var loader = new AssemblyLoadContext("DynamicContext", isCollectible: true);
|
||||
var annotatorAssembly = loader.LoadFromStream(stream);
|
||||
|
||||
var appType = annotatorAssembly.GetType("Azaion.Annotator.App");
|
||||
var appInstance = Activator.CreateInstance(appType);
|
||||
var runMethod = appType.GetMethod("Run", BindingFlags.Public | BindingFlags.Instance);
|
||||
if (runMethod != null)
|
||||
{
|
||||
runMethod.Invoke(appInstance, null);
|
||||
}
|
||||
|
||||
// var entryPoint = annotatorAssembly.EntryPoint;
|
||||
// if (entryPoint == null)
|
||||
// return;
|
||||
//
|
||||
// var o = annotatorAssembly.CreateInstance(entryPoint.Name);
|
||||
// entryPoint.Invoke(o, null);
|
||||
}
|
||||
|
||||
private void CloseClick(object sender, RoutedEventArgs e) => Close();
|
||||
|
||||
private void MainMouseMove(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.OriginalSource is Button || e.OriginalSource is TextBox)
|
||||
return;
|
||||
|
||||
if (e.LeftButton == MouseButtonState.Pressed)
|
||||
DragMove();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user