mirror of
https://github.com/azaion/annotations.git
synced 2026-04-22 09:36:30 +00:00
dll loader done
This commit is contained in:
@@ -7,7 +7,7 @@ namespace Azaion.Common.Services;
|
|||||||
public interface IResourceLoader
|
public interface IResourceLoader
|
||||||
{
|
{
|
||||||
Task<MemoryStream> Load(string fileName, CancellationToken cancellationToken = default);
|
Task<MemoryStream> Load(string fileName, CancellationToken cancellationToken = default);
|
||||||
Assembly LoadAssembly(string asmName);
|
Assembly? LoadAssembly(string asmName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ResourceLoader(AzaionApiClient api, ApiCredentials credentials) : IResourceLoader
|
public class ResourceLoader(AzaionApiClient api, ApiCredentials credentials) : IResourceLoader
|
||||||
@@ -18,12 +18,12 @@ public class ResourceLoader(AzaionApiClient api, ApiCredentials credentials) : I
|
|||||||
"Azaion.Dataset"
|
"Azaion.Dataset"
|
||||||
];
|
];
|
||||||
|
|
||||||
public Assembly LoadAssembly(string resourceName)
|
public Assembly? LoadAssembly(string resourceName)
|
||||||
{
|
{
|
||||||
var assemblyName = resourceName.Split(',').First();
|
var assemblyName = resourceName.Split(',').First();
|
||||||
if (EncryptedResources.Contains(assemblyName))
|
if (EncryptedResources.Contains(assemblyName))
|
||||||
{
|
{
|
||||||
var stream = Load(assemblyName).GetAwaiter().GetResult();
|
var stream = Load($"{assemblyName}.dll").GetAwaiter().GetResult();
|
||||||
return Assembly.Load(stream.ToArray());
|
return Assembly.Load(stream.ToArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -40,12 +40,13 @@ public partial class App
|
|||||||
new ConfigUpdater().CheckConfig();
|
new ConfigUpdater().CheckConfig();
|
||||||
|
|
||||||
var result = Parser.Default.ParseArguments<ApiCredentials>(Environment.GetCommandLineArgs());
|
var result = Parser.Default.ParseArguments<ApiCredentials>(Environment.GetCommandLineArgs());
|
||||||
if (result.Errors.Any())
|
|
||||||
return;
|
var apiCreds = !result.Errors.Any()
|
||||||
var apiCreds = result.Value;
|
? result.Value
|
||||||
|
: new ApiCredentials();
|
||||||
|
|
||||||
ResourceLoader = new ResourceLoader(CreateApiClient(apiCreds), apiCreds);
|
ResourceLoader = new ResourceLoader(CreateApiClient(apiCreds), apiCreds);
|
||||||
AppDomain.CurrentDomain.AssemblyResolve += (sender, args) => ResourceLoader.LoadAssembly(args.Name);
|
//AppDomain.CurrentDomain.AssemblyResolve += (_, args) => ResourceLoader.LoadAssembly(args.Name);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static AzaionApiClient CreateApiClient(ApiCredentials credentials)
|
private static AzaionApiClient CreateApiClient(ApiCredentials credentials)
|
||||||
@@ -172,10 +173,11 @@ public partial class App
|
|||||||
|
|
||||||
private WindowEnum GetParentWindow(FrameworkElement? element)
|
private WindowEnum GetParentWindow(FrameworkElement? element)
|
||||||
{
|
{
|
||||||
|
if (element?.GetType().Name == "LibVLCSharp.WPF.ForegroundWindow")
|
||||||
|
return WindowEnum.Annotator;
|
||||||
|
|
||||||
while (element != null && element is not TabItem)
|
while (element != null && element is not TabItem)
|
||||||
{
|
|
||||||
element = element.Parent as FrameworkElement;
|
element = element.Parent as FrameworkElement;
|
||||||
}
|
|
||||||
|
|
||||||
if (element is not TabItem || element.Tag == null)
|
if (element is not TabItem || element.Tag == null)
|
||||||
return WindowEnum.None;
|
return WindowEnum.None;
|
||||||
|
|||||||
@@ -33,4 +33,11 @@
|
|||||||
<ProjectReference Include="..\Azaion.Dataset\Azaion.Dataset.csproj" />
|
<ProjectReference Include="..\Azaion.Dataset\Azaion.Dataset.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<Target Name="PostBuild" AfterTargets="Build">
|
||||||
|
<MakeDir Directories="$(TargetDir)secure" />
|
||||||
|
<Move SourceFiles="$(TargetDir)Azaion.Annotator.dll" DestinationFolder="$(TargetDir)secure" />
|
||||||
|
<Move SourceFiles="$(TargetDir)Azaion.Dataset.dll" DestinationFolder="$(TargetDir)secure" />
|
||||||
|
<Exec Command="upload.cmd" />
|
||||||
|
</Target>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
setlocal enabledelayedexpansion
|
||||||
|
|
||||||
|
set LOGIN_URL=https://api.azaion.com/login
|
||||||
|
set RESOURCE_URL=https://api.azaion.com/resources
|
||||||
|
set EMAIL=uploader@azaion.com
|
||||||
|
set PASSWORD=Az@1on_10Upl0@der
|
||||||
|
set FILE_TO_UPLOAD=bin\Release\net8.0-windows\secure\Azaion.Annotator.dll
|
||||||
|
|
||||||
|
echo Logging in and retrieving token...
|
||||||
|
for /f "tokens=*" %%i in ('curl -s -X POST -H "Content-Type: application/json" ^
|
||||||
|
-d "{\"email\":\"%EMAIL%\",\"password\":\"%PASSWORD%\"}" %LOGIN_URL%') do set RESPONSE=%%i
|
||||||
|
|
||||||
|
for /f "tokens=2 delims=:" %%a in ('echo %RESPONSE% ^| findstr /i "token"') do (
|
||||||
|
set "TOKEN=%%a"
|
||||||
|
set "TOKEN=!TOKEN:~1,-1!"
|
||||||
|
set "TOKEN=!TOKEN:~0,-2!"
|
||||||
|
)
|
||||||
|
|
||||||
|
echo Token retrieved: %TOKEN%
|
||||||
|
|
||||||
|
:: Step 2: Upload the DLL file
|
||||||
|
if not exist "%FILE_TO_UPLOAD%" (
|
||||||
|
echo File %FILE_TO_UPLOAD% does not exist. Exiting...
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
echo Uploading file to resources...
|
||||||
|
curl -X POST -H "Authorization: Bearer %TOKEN%" ^
|
||||||
|
-H "Content-Type: application/octet-stream" ^
|
||||||
|
--data-binary @"%FILE_TO_UPLOAD%" ^
|
||||||
|
%RESOURCE_URL%
|
||||||
|
|
||||||
|
echo Done!
|
||||||
Reference in New Issue
Block a user