This commit is contained in:
2026-05-17 20:54:09 -04:00
parent 6da2183583
commit 74c21ee5cc
3000 changed files with 11794 additions and 15301 deletions

View File

@@ -0,0 +1,189 @@
using Microsoft.AspNetCore.Components.Forms;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using OpenArchival.Blazor.CustomComponents;
namespace OpenArchival.DataAccess.FileAccessManager;
public class FileAccessManager : IFileAccessManager
{
private IDbContextFactory<ApplicationDbContext> _contextFactory { get; set; }
IOptions<FileUploadOptions> _fileUploadOptions { get; set; }
ILogger<FileAccessManager> _logger { get; set; }
private readonly IImageThumbnailer _thumbnailer;
public FileAccessManager(
IDbContextFactory<ApplicationDbContext> contextFactory,
IOptions<FileUploadOptions> fileOptions,
ILogger<FileAccessManager> logger,
IImageThumbnailer thumbnailer
)
{
_contextFactory = contextFactory;
_fileUploadOptions = fileOptions;
_logger = logger;
_thumbnailer = thumbnailer;
}
/// <summary>
/// Queries the file listing from the database based on the id, then deletes the file from the disk and
/// the file listing from the database.
///
/// </summary>
/// <param name="id"></param>
/// <returns>
/// Returns true if the file is deleted successfully
/// returns false if the file cannot be found in the database
/// </returns>
/// <exception cref="IOException">Thrown if there is an IOException while trying to delete the file.</exception>
public async Task<bool> DeleteFileAsync(int id)
{
await using var context = await _contextFactory.CreateDbContextAsync();
FilePathListing? existingListing = await context.ArtifactFilePaths
.Where(listing=>listing.Id == id)
.SingleOrDefaultAsync();
if (existingListing == null)
{
return false;
}
var filename = existingListing.Path;
var smallThumb = existingListing.SmallThumbnailPath;
var largeThumb = existingListing.LargeThumbnailPath;
// Delete from the database before we delete from the disk to avoid someone trying to read it
// before it deletes
await context.ArtifactFilePaths.Where(listing => listing.Id == id).ExecuteDeleteAsync();
try
{
if (File.Exists(filename))
{
File.Delete(filename);
}
if (!string.IsNullOrEmpty(smallThumb) && File.Exists(smallThumb))
{
File.Delete(smallThumb);
}
if (!string.IsNullOrEmpty(largeThumb) && File.Exists(largeThumb))
{
File.Delete(largeThumb);
}
}
catch (IOException e)
{
throw new IOException("Could not delete file(s) from the disk!", e);
}
return true;
}
/// <summary>
/// Uploads the given browser file to the disk and creates a corresponding database entry.
/// </summary>
/// <param name="browserFile"></param>
/// <returns>Returns the FilePathListing object that was inserted to the database</returns>
/// <exception cref="IOException">Throws wrapped IOException if the FileStream cannot be constructed.</exception>
public async Task<FilePathListing> UploadFileAsync(IBrowserFile browserFile)
{
var diskFileName = $"{Guid.NewGuid()}{Path.GetExtension(browserFile.Name)}";
var destinationPath = Path.Combine(_fileUploadOptions.Value.UploadFolderPath, diskFileName);
await using var browserUploadStream = browserFile.OpenReadStream(maxAllowedSize: _fileUploadOptions.Value.MaxUploadSizeBytes);
try {
await using var outFileStream = new FileStream(destinationPath, FileMode.Create);
await browserUploadStream.CopyToAsync(outFileStream);
} catch (IOException e)
{
throw new IOException("Failed to open file stream to write file to disk", e);
}
// Create the new entity
var newFile = new FilePathListing() { Path = destinationPath, OriginalName = Path.GetFileName(browserFile.Name) };
// Generate thumbnails if it is a supported image
if (_thumbnailer.IsSupportedImage(destinationPath))
{
try
{
var result = await _thumbnailer.GenerateThumbnailsAsync(destinationPath);
newFile.SmallThumbnailPath = result.SmallThumbnailPath;
newFile.LargeThumbnailPath = result.LargeThumbnailPath;
}
catch (Exception ex)
{
_logger.LogError(ex, "Failed to generate thumbnails for {Path}", destinationPath);
// We don't throw here, as we still want to save the original file
}
}
await using var context = await _contextFactory.CreateDbContextAsync();
context.ArtifactFilePaths.Add(newFile);
// Save the file entry
await context.SaveChangesAsync();
return newFile;
}
public async Task<FilePathListing?> GetFile(int id)
{
await using var context = await _contextFactory.CreateDbContextAsync();
FilePathListing? existingListing = await context.ArtifactFilePaths.FirstOrDefaultAsync(a => a.Id == id);
return existingListing;
}
public async Task<(int Processed, int Failed)> BackfillThumbnailsAsync()
{
await using var context = await _contextFactory.CreateDbContextAsync();
var listingsToProcess = await context.ArtifactFilePaths
.Where(f => string.IsNullOrEmpty(f.SmallThumbnailPath) || string.IsNullOrEmpty(f.LargeThumbnailPath))
.ToListAsync();
int processed = 0;
int failed = 0;
foreach (var listing in listingsToProcess)
{
if (!File.Exists(listing.Path))
{
_logger.LogWarning("File not found on disk during backfill: {Path} (ID: {Id})", listing.Path, listing.Id);
failed++;
continue;
}
if (_thumbnailer.IsSupportedImage(listing.Path))
{
try
{
var result = await _thumbnailer.GenerateThumbnailsAsync(listing.Path);
listing.SmallThumbnailPath = result.SmallThumbnailPath;
listing.LargeThumbnailPath = result.LargeThumbnailPath;
processed++;
}
catch (Exception ex)
{
_logger.LogError(ex, "Failed to generate thumbnails during backfill for {Path} (ID: {Id})", listing.Path, listing.Id);
failed++;
}
}
}
if (processed > 0)
{
await context.SaveChangesAsync();
}
return (processed, failed);
}
}

View File

@@ -0,0 +1,19 @@
using Microsoft.AspNetCore.Components.Forms;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OpenArchival.DataAccess.FileAccessManager;
public interface IFileAccessManager
{
public Task<FilePathListing> UploadFileAsync(IBrowserFile browserFile);
public Task<bool> DeleteFileAsync(int id);
public Task<FilePathListing?> GetFile(int id);
public Task<(int Processed, int Failed)> BackfillThumbnailsAsync();
}

View File

@@ -0,0 +1,20 @@
using System.Threading.Tasks;
namespace OpenArchival.DataAccess.FileAccessManager;
public interface IImageThumbnailer
{
/// <summary>
/// Generates small and large thumbnails for the given image file.
/// </summary>
/// <param name="originalFilePath">The full path to the original image file.</param>
/// <returns>A task that returns a ThumbnailResult containing the paths to the generated thumbnails.</returns>
Task<ThumbnailResult> GenerateThumbnailsAsync(string originalFilePath);
/// <summary>
/// Checks if the file at the given path is a supported image format.
/// </summary>
bool IsSupportedImage(string filePath);
}
public record ThumbnailResult(string SmallThumbnailPath, string LargeThumbnailPath);

View File

@@ -0,0 +1,89 @@
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using OpenArchival.Blazor.CustomComponents;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Processing;
using System.IO;
namespace OpenArchival.DataAccess.FileAccessManager;
public class ImageThumbnailer : IImageThumbnailer
{
private readonly IOptions<FileUploadOptions> _fileUploadOptions;
private readonly ILogger<ImageThumbnailer> _logger;
private static readonly string[] SupportedExtensions = { ".jpg", ".jpeg", ".png", ".gif", ".bmp", ".webp", ".tiff" };
public ImageThumbnailer(IOptions<FileUploadOptions> fileUploadOptions, ILogger<ImageThumbnailer> logger)
{
_fileUploadOptions = fileUploadOptions;
_logger = logger;
}
public async Task<ThumbnailResult> GenerateThumbnailsAsync(string originalFilePath)
{
if (!File.Exists(originalFilePath))
{
_logger.LogError("Original file not found: {Path}", originalFilePath);
throw new FileNotFoundException("Original file not found", originalFilePath);
}
if (!IsSupportedImage(originalFilePath))
{
_logger.LogWarning("File is not a supported image format: {Path}", originalFilePath);
return new ThumbnailResult(string.Empty, string.Empty);
}
var fileNameWithoutExtension = Path.GetFileNameWithoutExtension(originalFilePath);
var thumbnailFolder = _fileUploadOptions.Value.ThumbnailFolderPath;
if (!Directory.Exists(thumbnailFolder))
{
Directory.CreateDirectory(thumbnailFolder);
}
var smallPath = Path.Combine(thumbnailFolder, $"{fileNameWithoutExtension}_small.webp");
var largePath = Path.Combine(thumbnailFolder, $"{fileNameWithoutExtension}_large.webp");
using (var image = await Image.LoadAsync(originalFilePath))
{
await Task.WhenAll(
CreateThumbnailAsync(image.Clone(x => { }), smallPath, _fileUploadOptions.Value.SmallThumbnailSize),
CreateThumbnailAsync(image.Clone(x => { }), largePath, _fileUploadOptions.Value.LargeThumbnailSize)
);
}
return new ThumbnailResult(smallPath, largePath);
}
public bool IsSupportedImage(string filePath)
{
var extension = Path.GetExtension(filePath).ToLowerInvariant();
return SupportedExtensions.Contains(extension);
}
private async Task CreateThumbnailAsync(Image image, string outputPath, int maxSize)
{
using (image)
{
int width, height;
if (image.Width > image.Height)
{
width = maxSize;
height = (int)((double)image.Height / image.Width * maxSize);
}
else
{
height = maxSize;
width = (int)((double)image.Width / image.Height * maxSize);
}
image.Mutate(x => x.Resize(new ResizeOptions
{
Size = new Size(width, height),
Mode = ResizeMode.Max
}));
await image.SaveAsWebpAsync(outputPath);
}
}
}

View File

@@ -0,0 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.8" />
<PackageReference Include="SixLabors.ImageSharp" Version="3.1.5" />
<ProjectReference Include="..\OpenArchival.Blazor.Config\OpenArchival.Blazor.Config.csproj" />
<ProjectReference Include="..\OpenArchival.DataAccess\OpenArchival.DataAccess.csproj" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,780 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v9.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v9.0": {
"OpenArchival.DataAccess.FileAccessManager/1.0.0": {
"dependencies": {
"Microsoft.EntityFrameworkCore": "9.0.8",
"OpenArchival.Blazor.Config": "1.0.0",
"OpenArchival.DataAccess": "1.0.0",
"SixLabors.ImageSharp": "3.1.5"
},
"runtime": {
"OpenArchival.DataAccess.FileAccessManager.dll": {}
}
},
"Confi/2024.110.108.4": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.8"
},
"runtime": {
"lib/net8.0/Confi.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"EFCore.NamingConventions/9.0.0": {
"dependencies": {
"Microsoft.EntityFrameworkCore": "9.0.8",
"Microsoft.EntityFrameworkCore.Relational": "9.0.8",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.8"
},
"runtime": {
"lib/net8.0/EFCore.NamingConventions.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.0.0"
}
}
},
"EntityFramework/6.5.1": {
"dependencies": {
"System.CodeDom": "6.0.0",
"System.Configuration.ConfigurationManager": "6.0.1",
"System.Data.SqlClient": "4.8.6"
},
"runtime": {
"lib/netstandard2.1/EntityFramework.SqlServer.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.500.124.31603"
},
"lib/netstandard2.1/EntityFramework.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.500.124.31603"
}
}
},
"Microsoft.AspNetCore.Cryptography.Internal/9.0.8": {
"runtime": {
"lib/net9.0/Microsoft.AspNetCore.Cryptography.Internal.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.825.36808"
}
}
},
"Microsoft.AspNetCore.Cryptography.KeyDerivation/9.0.8": {
"dependencies": {
"Microsoft.AspNetCore.Cryptography.Internal": "9.0.8"
},
"runtime": {
"lib/net9.0/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.825.36808"
}
}
},
"Microsoft.AspNetCore.Identity.EntityFrameworkCore/9.0.8": {
"dependencies": {
"Microsoft.EntityFrameworkCore.Relational": "9.0.8",
"Microsoft.Extensions.Identity.Stores": "9.0.8"
},
"runtime": {
"lib/net9.0/Microsoft.AspNetCore.Identity.EntityFrameworkCore.dll": {
"assemblyVersion": "9.0.8.0",
"fileVersion": "9.0.825.36808"
}
}
},
"Microsoft.EntityFrameworkCore/9.0.8": {
"dependencies": {
"Microsoft.EntityFrameworkCore.Abstractions": "9.0.8",
"Microsoft.Extensions.Caching.Memory": "9.0.8",
"Microsoft.Extensions.Logging": "9.0.8"
},
"runtime": {
"lib/net8.0/Microsoft.EntityFrameworkCore.dll": {
"assemblyVersion": "9.0.8.0",
"fileVersion": "9.0.825.36802"
}
}
},
"Microsoft.EntityFrameworkCore.Abstractions/9.0.8": {
"runtime": {
"lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": {
"assemblyVersion": "9.0.8.0",
"fileVersion": "9.0.825.36802"
}
}
},
"Microsoft.EntityFrameworkCore.Relational/9.0.8": {
"dependencies": {
"Microsoft.EntityFrameworkCore": "9.0.8",
"Microsoft.Extensions.Caching.Memory": "9.0.8",
"Microsoft.Extensions.Configuration.Abstractions": "9.0.8",
"Microsoft.Extensions.Logging": "9.0.8"
},
"runtime": {
"lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": {
"assemblyVersion": "9.0.8.0",
"fileVersion": "9.0.825.36802"
}
}
},
"Microsoft.Extensions.Caching.Abstractions/9.0.8": {
"dependencies": {
"Microsoft.Extensions.Primitives": "9.0.8"
},
"runtime": {
"lib/net9.0/Microsoft.Extensions.Caching.Abstractions.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.825.36511"
}
}
},
"Microsoft.Extensions.Caching.Memory/9.0.8": {
"dependencies": {
"Microsoft.Extensions.Caching.Abstractions": "9.0.8",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.8",
"Microsoft.Extensions.Logging.Abstractions": "9.0.8",
"Microsoft.Extensions.Options": "9.0.8",
"Microsoft.Extensions.Primitives": "9.0.8"
},
"runtime": {
"lib/net9.0/Microsoft.Extensions.Caching.Memory.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.825.36511"
}
}
},
"Microsoft.Extensions.Configuration.Abstractions/9.0.8": {
"dependencies": {
"Microsoft.Extensions.Primitives": "9.0.8"
},
"runtime": {
"lib/net9.0/Microsoft.Extensions.Configuration.Abstractions.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.825.36511"
}
}
},
"Microsoft.Extensions.DependencyInjection/9.0.8": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.8"
},
"runtime": {
"lib/net9.0/Microsoft.Extensions.DependencyInjection.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.825.36511"
}
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions/9.0.8": {
"runtime": {
"lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.825.36511"
}
}
},
"Microsoft.Extensions.Identity.Core/9.0.8": {
"dependencies": {
"Microsoft.AspNetCore.Cryptography.KeyDerivation": "9.0.8",
"Microsoft.Extensions.Logging": "9.0.8",
"Microsoft.Extensions.Options": "9.0.8"
},
"runtime": {
"lib/net9.0/Microsoft.Extensions.Identity.Core.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.825.36808"
}
}
},
"Microsoft.Extensions.Identity.Stores/9.0.8": {
"dependencies": {
"Microsoft.Extensions.Caching.Abstractions": "9.0.8",
"Microsoft.Extensions.Identity.Core": "9.0.8",
"Microsoft.Extensions.Logging": "9.0.8"
},
"runtime": {
"lib/net9.0/Microsoft.Extensions.Identity.Stores.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.825.36808"
}
}
},
"Microsoft.Extensions.Logging/9.0.8": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.8",
"Microsoft.Extensions.Logging.Abstractions": "9.0.8",
"Microsoft.Extensions.Options": "9.0.8"
},
"runtime": {
"lib/net9.0/Microsoft.Extensions.Logging.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.825.36511"
}
}
},
"Microsoft.Extensions.Logging.Abstractions/9.0.8": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.8"
},
"runtime": {
"lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.825.36511"
}
}
},
"Microsoft.Extensions.Options/9.0.8": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.8",
"Microsoft.Extensions.Primitives": "9.0.8"
},
"runtime": {
"lib/net9.0/Microsoft.Extensions.Options.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.825.36511"
}
}
},
"Microsoft.Extensions.Primitives/9.0.8": {
"runtime": {
"lib/net9.0/Microsoft.Extensions.Primitives.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.825.36511"
}
}
},
"Microsoft.Win32.SystemEvents/6.0.0": {
"runtime": {
"lib/net6.0/Microsoft.Win32.SystemEvents.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
}
},
"runtimeTargets": {
"runtimes/win/lib/net6.0/Microsoft.Win32.SystemEvents.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
}
}
},
"Npgsql/9.0.3": {
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "9.0.8"
},
"runtime": {
"lib/net8.0/Npgsql.dll": {
"assemblyVersion": "9.0.3.0",
"fileVersion": "9.0.3.0"
}
}
},
"Npgsql.EntityFrameworkCore.PostgreSQL/9.0.4": {
"dependencies": {
"Microsoft.EntityFrameworkCore": "9.0.8",
"Microsoft.EntityFrameworkCore.Relational": "9.0.8",
"Npgsql": "9.0.3"
},
"runtime": {
"lib/net8.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll": {
"assemblyVersion": "9.0.4.0",
"fileVersion": "9.0.4.0"
}
}
},
"Persic.EF/2025.105.129.21": {
"dependencies": {
"Microsoft.EntityFrameworkCore": "9.0.8",
"Microsoft.EntityFrameworkCore.Relational": "9.0.8"
},
"runtime": {
"lib/net9.0/Persic.EF.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"Persic.EF.Postgres/2025.106.102.11": {
"dependencies": {
"Confi": "2024.110.108.4",
"EFCore.NamingConventions": "9.0.0",
"Npgsql.EntityFrameworkCore.PostgreSQL": "9.0.4",
"Persic.EF": "2025.105.129.21"
},
"runtime": {
"lib/net9.0/Persic.EF.Postgres.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"runtime.native.System.Data.SqlClient.sni/4.7.0": {
"dependencies": {
"runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
"runtime.win-x64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
"runtime.win-x86.runtime.native.System.Data.SqlClient.sni": "4.4.0"
}
},
"runtime.win-arm64.runtime.native.System.Data.SqlClient.sni/4.4.0": {
"runtimeTargets": {
"runtimes/win-arm64/native/sni.dll": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "4.6.25512.1"
}
}
},
"runtime.win-x64.runtime.native.System.Data.SqlClient.sni/4.4.0": {
"runtimeTargets": {
"runtimes/win-x64/native/sni.dll": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "4.6.25512.1"
}
}
},
"runtime.win-x86.runtime.native.System.Data.SqlClient.sni/4.4.0": {
"runtimeTargets": {
"runtimes/win-x86/native/sni.dll": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "4.6.25512.1"
}
}
},
"SixLabors.ImageSharp/3.1.5": {
"runtime": {
"lib/net6.0/SixLabors.ImageSharp.dll": {
"assemblyVersion": "3.0.0.0",
"fileVersion": "3.1.5.0"
}
}
},
"System.CodeDom/6.0.0": {
"runtime": {
"lib/net6.0/System.CodeDom.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
}
}
},
"System.Configuration.ConfigurationManager/6.0.1": {
"dependencies": {
"System.Security.Cryptography.ProtectedData": "6.0.0",
"System.Security.Permissions": "6.0.0"
},
"runtime": {
"lib/net6.0/System.Configuration.ConfigurationManager.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.922.41905"
}
}
},
"System.Data.SqlClient/4.8.6": {
"dependencies": {
"runtime.native.System.Data.SqlClient.sni": "4.7.0"
},
"runtime": {
"lib/netcoreapp2.1/System.Data.SqlClient.dll": {
"assemblyVersion": "4.6.1.6",
"fileVersion": "4.700.23.52603"
}
},
"runtimeTargets": {
"runtimes/unix/lib/netcoreapp2.1/System.Data.SqlClient.dll": {
"rid": "unix",
"assetType": "runtime",
"assemblyVersion": "4.6.1.6",
"fileVersion": "4.700.23.52603"
},
"runtimes/win/lib/netcoreapp2.1/System.Data.SqlClient.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "4.6.1.6",
"fileVersion": "4.700.23.52603"
}
}
},
"System.Drawing.Common/6.0.0": {
"dependencies": {
"Microsoft.Win32.SystemEvents": "6.0.0"
},
"runtime": {
"lib/net6.0/System.Drawing.Common.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
}
},
"runtimeTargets": {
"runtimes/unix/lib/net6.0/System.Drawing.Common.dll": {
"rid": "unix",
"assetType": "runtime",
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
},
"runtimes/win/lib/net6.0/System.Drawing.Common.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
}
}
},
"System.Security.Cryptography.ProtectedData/6.0.0": {
"runtime": {
"lib/net6.0/System.Security.Cryptography.ProtectedData.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
}
},
"runtimeTargets": {
"runtimes/win/lib/net6.0/System.Security.Cryptography.ProtectedData.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
}
}
},
"System.Security.Permissions/6.0.0": {
"dependencies": {
"System.Windows.Extensions": "6.0.0"
},
"runtime": {
"lib/net6.0/System.Security.Permissions.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
}
}
},
"System.Windows.Extensions/6.0.0": {
"dependencies": {
"System.Drawing.Common": "6.0.0"
},
"runtime": {
"lib/net6.0/System.Windows.Extensions.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
}
},
"runtimeTargets": {
"runtimes/win/lib/net6.0/System.Windows.Extensions.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
}
}
},
"OpenArchival.Blazor.Config/1.0.0": {
"runtime": {
"OpenArchival.Blazor.Config.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"OpenArchival.DataAccess/1.0.0": {
"dependencies": {
"EntityFramework": "6.5.1",
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "9.0.8",
"Microsoft.EntityFrameworkCore": "9.0.8",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.8",
"Npgsql": "9.0.3",
"Npgsql.EntityFrameworkCore.PostgreSQL": "9.0.4",
"Persic.EF.Postgres": "2025.106.102.11"
},
"runtime": {
"OpenArchival.DataAccess.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
}
}
},
"libraries": {
"OpenArchival.DataAccess.FileAccessManager/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Confi/2024.110.108.4": {
"type": "package",
"serviceable": true,
"sha512": "sha512-jP9p14+Y8jYk3G8upkQK1oh0bIuVh7hnFxsu4nli/jp0fwr9DLxPLAtlbtERH/J0BlBLrlSpd5yzvQsbNH/2HQ==",
"path": "confi/2024.110.108.4",
"hashPath": "confi.2024.110.108.4.nupkg.sha512"
},
"EFCore.NamingConventions/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-heKIYzPdEWx+Ba4xuG6jfEssW9rEi7I0lX38eoN7wo7qgg9uw7nn8UEmDQfwGEYPzSDpetCVANnDr5tqt2Asjg==",
"path": "efcore.namingconventions/9.0.0",
"hashPath": "efcore.namingconventions.9.0.0.nupkg.sha512"
},
"EntityFramework/6.5.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-sQRP2lWg1i3aAGWqdliAM8zrGx7LHMUk+9/MoxUjwfTZYGMXvZ2JYZTlyTm1PqDxvn3c9E3U76TWDON7Y5+CVA==",
"path": "entityframework/6.5.1",
"hashPath": "entityframework.6.5.1.nupkg.sha512"
},
"Microsoft.AspNetCore.Cryptography.Internal/9.0.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-NwGO0wh/IjEthBLGA6fWfIiftsNF/paA5RxWp6ji4wWazetJgQ4truR9nU2thAzzFLiXqlg8vGjdVDA8bHu0zA==",
"path": "microsoft.aspnetcore.cryptography.internal/9.0.8",
"hashPath": "microsoft.aspnetcore.cryptography.internal.9.0.8.nupkg.sha512"
},
"Microsoft.AspNetCore.Cryptography.KeyDerivation/9.0.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-gK70xxXYwwPiXYKYVmLYMuIO5EOGrRtQghmM6PkgtZ/0lgLEjIs//xgSLvZkV/mroNHA1DEqTcqscEj9OzZ1IA==",
"path": "microsoft.aspnetcore.cryptography.keyderivation/9.0.8",
"hashPath": "microsoft.aspnetcore.cryptography.keyderivation.9.0.8.nupkg.sha512"
},
"Microsoft.AspNetCore.Identity.EntityFrameworkCore/9.0.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-z4q9roxXMQePwFM5tXXZS5sKkU78yYXVkj56NYYx9xKe+mxGkJMV1MaO0GFE6HnnM8bE3Xxhs0hAPw2jKbse6w==",
"path": "microsoft.aspnetcore.identity.entityframeworkcore/9.0.8",
"hashPath": "microsoft.aspnetcore.identity.entityframeworkcore.9.0.8.nupkg.sha512"
},
"Microsoft.EntityFrameworkCore/9.0.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-bNGdPhN762+BIIO5MFYLjafRqkSS1MqLOc/erd55InvLnFxt9H3N5JNsuag1ZHyBor1VtD42U0CHpgqkWeAYgQ==",
"path": "microsoft.entityframeworkcore/9.0.8",
"hashPath": "microsoft.entityframeworkcore.9.0.8.nupkg.sha512"
},
"Microsoft.EntityFrameworkCore.Abstractions/9.0.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-B2yfAIQRRAQ4zvvWqh+HudD+juV3YoLlpXnrog3tU0PM9AFpuq6xo0+mEglN1P43WgdcUiF+65CWBcZe35s15Q==",
"path": "microsoft.entityframeworkcore.abstractions/9.0.8",
"hashPath": "microsoft.entityframeworkcore.abstractions.9.0.8.nupkg.sha512"
},
"Microsoft.EntityFrameworkCore.Relational/9.0.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-OVhfyxiHxMvYpwQ8Jy3YZi4koy6TK5/Q7C1oq3z6db+HEGuu6x9L1BX5zDIdJxxlRePMyO4D8ORiXj/D7+MUqw==",
"path": "microsoft.entityframeworkcore.relational/9.0.8",
"hashPath": "microsoft.entityframeworkcore.relational.9.0.8.nupkg.sha512"
},
"Microsoft.Extensions.Caching.Abstractions/9.0.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-4h7bsVoKoiK+SlPM+euX/ayGnKZhl47pPCidLTiio9xyG+vgVVfcYxcYQgjm0SCrdSxjG0EGIAKF8EFr3G8Ifw==",
"path": "microsoft.extensions.caching.abstractions/9.0.8",
"hashPath": "microsoft.extensions.caching.abstractions.9.0.8.nupkg.sha512"
},
"Microsoft.Extensions.Caching.Memory/9.0.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-grR+oPyj8HVn4DT8CFUUdSw2pZZKS13KjytFe4txpHQliGM1GEDotohmjgvyl3hm7RFB3FRqvbouEX3/1ewp5A==",
"path": "microsoft.extensions.caching.memory/9.0.8",
"hashPath": "microsoft.extensions.caching.memory.9.0.8.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Abstractions/9.0.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-yNou2KM35RvzOh4vUFtl2l33rWPvOCoba+nzEDJ+BgD8aOL/jew4WPCibQvntRfOJ2pJU8ARygSMD+pdjvDHuA==",
"path": "microsoft.extensions.configuration.abstractions/9.0.8",
"hashPath": "microsoft.extensions.configuration.abstractions.9.0.8.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection/9.0.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-JJjI2Fa+QtZcUyuNjbKn04OjIUX5IgFGFu/Xc+qvzh1rXdZHLcnqqVXhR4093bGirTwacRlHiVg1XYI9xum6QQ==",
"path": "microsoft.extensions.dependencyinjection/9.0.8",
"hashPath": "microsoft.extensions.dependencyinjection.9.0.8.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection.Abstractions/9.0.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-xY3lTjj4+ZYmiKIkyWitddrp1uL5uYiweQjqo4BKBw01ZC4HhcfgLghDpPZcUlppgWAFqFy9SgkiYWOMx365pw==",
"path": "microsoft.extensions.dependencyinjection.abstractions/9.0.8",
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.9.0.8.nupkg.sha512"
},
"Microsoft.Extensions.Identity.Core/9.0.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-giUYz84GHAizDucZp5vWAusDO2s9Jrrg2jQ6HUQNGs5HQMKJVobLPMQSiyg8R4yecH0pIc0QjANh0B/Kw13BHA==",
"path": "microsoft.extensions.identity.core/9.0.8",
"hashPath": "microsoft.extensions.identity.core.9.0.8.nupkg.sha512"
},
"Microsoft.Extensions.Identity.Stores/9.0.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-sycaHcq78yI591+KxEdd53a7pJGQEl9H/wDsFkaPNE9g7loyq8vufPcc/9RH3KlGt5joR5Ey7PdoRSrlLjCgJg==",
"path": "microsoft.extensions.identity.stores/9.0.8",
"hashPath": "microsoft.extensions.identity.stores.9.0.8.nupkg.sha512"
},
"Microsoft.Extensions.Logging/9.0.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Z/7ze+0iheT7FJeZPqJKARYvyC2bmwu3whbm/48BJjdlGVvgDguoCqJIkI/67NkroTYobd5geai1WheNQvWrgA==",
"path": "microsoft.extensions.logging/9.0.8",
"hashPath": "microsoft.extensions.logging.9.0.8.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Abstractions/9.0.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-pYnAffJL7ARD/HCnnPvnFKSIHnTSmWz84WIlT9tPeQ4lHNiu0Az7N/8itihWvcF8sT+VVD5lq8V+ckMzu4SbOw==",
"path": "microsoft.extensions.logging.abstractions/9.0.8",
"hashPath": "microsoft.extensions.logging.abstractions.9.0.8.nupkg.sha512"
},
"Microsoft.Extensions.Options/9.0.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-OmTaQ0v4gxGQkehpwWIqPoEiwsPuG/u4HUsbOFoWGx4DKET2AXzopnFe/fE608FIhzc/kcg2p8JdyMRCCUzitQ==",
"path": "microsoft.extensions.options/9.0.8",
"hashPath": "microsoft.extensions.options.9.0.8.nupkg.sha512"
},
"Microsoft.Extensions.Primitives/9.0.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-tizSIOEsIgSNSSh+hKeUVPK7xmTIjR8s+mJWOu1KXV3htvNQiPMFRMO17OdI1y/4ZApdBVk49u/08QGC9yvLug==",
"path": "microsoft.extensions.primitives/9.0.8",
"hashPath": "microsoft.extensions.primitives.9.0.8.nupkg.sha512"
},
"Microsoft.Win32.SystemEvents/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-hqTM5628jSsQiv+HGpiq3WKBl2c8v1KZfby2J6Pr7pEPlK9waPdgEO6b8A/+/xn/yZ9ulv8HuqK71ONy2tg67A==",
"path": "microsoft.win32.systemevents/6.0.0",
"hashPath": "microsoft.win32.systemevents.6.0.0.nupkg.sha512"
},
"Npgsql/9.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-tPvY61CxOAWxNsKLEBg+oR646X4Bc8UmyQ/tJszL/7mEmIXQnnBhVJZrZEEUv0Bstu0mEsHZD5At3EO8zQRAYw==",
"path": "npgsql/9.0.3",
"hashPath": "npgsql.9.0.3.nupkg.sha512"
},
"Npgsql.EntityFrameworkCore.PostgreSQL/9.0.4": {
"type": "package",
"serviceable": true,
"sha512": "sha512-mw5vcY2IEc7L+IeGrxpp/J5OSnCcjkjAgJYCm/eD52wpZze8zsSifdqV7zXslSMmfJG2iIUGZyo3KuDtEFKwMQ==",
"path": "npgsql.entityframeworkcore.postgresql/9.0.4",
"hashPath": "npgsql.entityframeworkcore.postgresql.9.0.4.nupkg.sha512"
},
"Persic.EF/2025.105.129.21": {
"type": "package",
"serviceable": true,
"sha512": "sha512-eSQWJVKPkK3wGNydGl46z3r9xUR5AGirIyHMzXqQ6qodl36Rjxy8YW5izMcmCQbDUWX5Dri7+9/R/OWbuxK/RA==",
"path": "persic.ef/2025.105.129.21",
"hashPath": "persic.ef.2025.105.129.21.nupkg.sha512"
},
"Persic.EF.Postgres/2025.106.102.11": {
"type": "package",
"serviceable": true,
"sha512": "sha512-2Xwq7hvSDcXmSkP3ChOPKQjlHt8T1tFX98CSmWzIjkqJy28nmctHrrrcgmURhvRqymxbHgA/+R1d2R2mBQRmEA==",
"path": "persic.ef.postgres/2025.106.102.11",
"hashPath": "persic.ef.postgres.2025.106.102.11.nupkg.sha512"
},
"runtime.native.System.Data.SqlClient.sni/4.7.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-9kyFSIdN3T0qjDQ2R0HRXYIhS3l5psBzQi6qqhdLz+SzFyEy4sVxNOke+yyYv8Cu8rPER12c3RDjLT8wF3WBYQ==",
"path": "runtime.native.system.data.sqlclient.sni/4.7.0",
"hashPath": "runtime.native.system.data.sqlclient.sni.4.7.0.nupkg.sha512"
},
"runtime.win-arm64.runtime.native.System.Data.SqlClient.sni/4.4.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-LbrynESTp3bm5O/+jGL8v0Qg5SJlTV08lpIpFesXjF6uGNMWqFnUQbYBJwZTeua6E/Y7FIM1C54Ey1btLWupdg==",
"path": "runtime.win-arm64.runtime.native.system.data.sqlclient.sni/4.4.0",
"hashPath": "runtime.win-arm64.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512"
},
"runtime.win-x64.runtime.native.System.Data.SqlClient.sni/4.4.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-38ugOfkYJqJoX9g6EYRlZB5U2ZJH51UP8ptxZgdpS07FgOEToV+lS11ouNK2PM12Pr6X/PpT5jK82G3DwH/SxQ==",
"path": "runtime.win-x64.runtime.native.system.data.sqlclient.sni/4.4.0",
"hashPath": "runtime.win-x64.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512"
},
"runtime.win-x86.runtime.native.System.Data.SqlClient.sni/4.4.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-YhEdSQUsTx+C8m8Bw7ar5/VesXvCFMItyZF7G1AUY+OM0VPZUOeAVpJ4Wl6fydBGUYZxojTDR3I6Bj/+BPkJNA==",
"path": "runtime.win-x86.runtime.native.system.data.sqlclient.sni/4.4.0",
"hashPath": "runtime.win-x86.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512"
},
"SixLabors.ImageSharp/3.1.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-lNtlq7dSI/QEbYey+A0xn48z5w4XHSffF8222cC4F4YwTXfEImuiBavQcWjr49LThT/pRmtWJRcqA/PlL+eJ6g==",
"path": "sixlabors.imagesharp/3.1.5",
"hashPath": "sixlabors.imagesharp.3.1.5.nupkg.sha512"
},
"System.CodeDom/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-CPc6tWO1LAer3IzfZufDBRL+UZQcj5uS207NHALQzP84Vp/z6wF0Aa0YZImOQY8iStY0A2zI/e3ihKNPfUm8XA==",
"path": "system.codedom/6.0.0",
"hashPath": "system.codedom.6.0.0.nupkg.sha512"
},
"System.Configuration.ConfigurationManager/6.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-jXw9MlUu/kRfEU0WyTptAVueupqIeE3/rl0EZDMlf8pcvJnitQ8HeVEp69rZdaStXwTV72boi/Bhw8lOeO+U2w==",
"path": "system.configuration.configurationmanager/6.0.1",
"hashPath": "system.configuration.configurationmanager.6.0.1.nupkg.sha512"
},
"System.Data.SqlClient/4.8.6": {
"type": "package",
"serviceable": true,
"sha512": "sha512-2Ij/LCaTQRyAi5lAv7UUTV9R2FobC8xN9mE0fXBZohum/xLl8IZVmE98Rq5ugQHjCgTBRKqpXRb4ORulRdA6Ig==",
"path": "system.data.sqlclient/4.8.6",
"hashPath": "system.data.sqlclient.4.8.6.nupkg.sha512"
},
"System.Drawing.Common/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-NfuoKUiP2nUWwKZN6twGqXioIe1zVD0RIj2t976A+czLHr2nY454RwwXs6JU9Htc6mwqL6Dn/nEL3dpVf2jOhg==",
"path": "system.drawing.common/6.0.0",
"hashPath": "system.drawing.common.6.0.0.nupkg.sha512"
},
"System.Security.Cryptography.ProtectedData/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-rp1gMNEZpvx9vP0JW0oHLxlf8oSiQgtno77Y4PLUBjSiDYoD77Y8uXHr1Ea5XG4/pIKhqAdxZ8v8OTUtqo9PeQ==",
"path": "system.security.cryptography.protecteddata/6.0.0",
"hashPath": "system.security.cryptography.protecteddata.6.0.0.nupkg.sha512"
},
"System.Security.Permissions/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-T/uuc7AklkDoxmcJ7LGkyX1CcSviZuLCa4jg3PekfJ7SU0niF0IVTXwUiNVP9DSpzou2PpxJ+eNY2IfDM90ZCg==",
"path": "system.security.permissions/6.0.0",
"hashPath": "system.security.permissions.6.0.0.nupkg.sha512"
},
"System.Windows.Extensions/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-IXoJOXIqc39AIe+CIR7koBtRGMiCt/LPM3lI+PELtDIy9XdyeSrwXFdWV9dzJ2Awl0paLWUaknLxFQ5HpHZUog==",
"path": "system.windows.extensions/6.0.0",
"hashPath": "system.windows.extensions.6.0.0.nupkg.sha512"
},
"OpenArchival.Blazor.Config/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"OpenArchival.DataAccess/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}

View File

@@ -0,0 +1,19 @@
{
"runtimeOptions": {
"tfm": "net9.0",
"frameworks": [
{
"name": "Microsoft.NETCore.App",
"version": "9.0.0"
},
{
"name": "Microsoft.AspNetCore.App",
"version": "9.0.0"
}
],
"configProperties": {
"System.Reflection.NullabilityInfoContext.IsSupported": true,
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
}
}
}

View File

@@ -0,0 +1,20 @@
{
"runtimeOptions": {
"tfm": "net9.0",
"frameworks": [
{
"name": "Microsoft.NETCore.App",
"version": "9.0.0"
},
{
"name": "Microsoft.AspNetCore.App",
"version": "9.0.0"
}
],
"configProperties": {
"System.GC.Server": true,
"System.Reflection.NullabilityInfoContext.IsSupported": true,
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
}
}
}

View File

@@ -0,0 +1 @@
{"Version":1,"ManifestType":"Build","Endpoints":[]}

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]

View File

@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("OpenArchival.DataAccess.FileAccessManager")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+6da218358353bb54f8e6b58efa699ba221b50ff1")]
[assembly: System.Reflection.AssemblyProductAttribute("OpenArchival.DataAccess.FileAccessManager")]
[assembly: System.Reflection.AssemblyTitleAttribute("OpenArchival.DataAccess.FileAccessManager")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generated by the MSBuild WriteCodeFragment class.

View File

@@ -0,0 +1 @@
6bd1ba547d14e609f19a8f5c999881578831a2827602aa6b3966d4cdb53ae1fc

View File

@@ -0,0 +1,17 @@
is_global = true
build_property.TargetFramework = net9.0
build_property.TargetFrameworkIdentifier = .NETCoreApp
build_property.TargetFrameworkVersion = v9.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = OpenArchival.DataAccess.FileAccessManager
build_property.ProjectDir = C:\Users\Vincent\Documents\dev\Open-Archival\OpenArchival.DataAccess.FileAccessManager\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.EffectiveAnalysisLevelStyle = 9.0
build_property.EnableCodeStyleSeverity =

View File

@@ -0,0 +1,8 @@
// <auto-generated/>
global using System;
global using System.Collections.Generic;
global using System.IO;
global using System.Linq;
global using System.Net.Http;
global using System.Threading;
global using System.Threading.Tasks;

View File

@@ -0,0 +1 @@
a27d6d99441e6955dd0ced71e3c026f5aa480a5f6ad5e6965cd73298d58e8755

View File

@@ -0,0 +1,23 @@
C:\Users\Vincent\Documents\dev\Open-Archival\OpenArchival.DataAccess.FileAccessManager\bin\Debug\net9.0\OpenArchival.DataAccess.deps.json
C:\Users\Vincent\Documents\dev\Open-Archival\OpenArchival.DataAccess.FileAccessManager\bin\Debug\net9.0\OpenArchival.DataAccess.runtimeconfig.json
C:\Users\Vincent\Documents\dev\Open-Archival\OpenArchival.DataAccess.FileAccessManager\bin\Debug\net9.0\OpenArchival.DataAccess.staticwebassets.endpoints.json
C:\Users\Vincent\Documents\dev\Open-Archival\OpenArchival.DataAccess.FileAccessManager\bin\Debug\net9.0\OpenArchival.DataAccess.exe
C:\Users\Vincent\Documents\dev\Open-Archival\OpenArchival.DataAccess.FileAccessManager\bin\Debug\net9.0\OpenArchival.DataAccess.FileAccessManager.deps.json
C:\Users\Vincent\Documents\dev\Open-Archival\OpenArchival.DataAccess.FileAccessManager\bin\Debug\net9.0\OpenArchival.DataAccess.FileAccessManager.runtimeconfig.json
C:\Users\Vincent\Documents\dev\Open-Archival\OpenArchival.DataAccess.FileAccessManager\bin\Debug\net9.0\OpenArchival.DataAccess.FileAccessManager.dll
C:\Users\Vincent\Documents\dev\Open-Archival\OpenArchival.DataAccess.FileAccessManager\bin\Debug\net9.0\OpenArchival.DataAccess.FileAccessManager.pdb
C:\Users\Vincent\Documents\dev\Open-Archival\OpenArchival.DataAccess.FileAccessManager\bin\Debug\net9.0\OpenArchival.Blazor.Config.dll
C:\Users\Vincent\Documents\dev\Open-Archival\OpenArchival.DataAccess.FileAccessManager\bin\Debug\net9.0\OpenArchival.DataAccess.dll
C:\Users\Vincent\Documents\dev\Open-Archival\OpenArchival.DataAccess.FileAccessManager\bin\Debug\net9.0\OpenArchival.Blazor.Config.pdb
C:\Users\Vincent\Documents\dev\Open-Archival\OpenArchival.DataAccess.FileAccessManager\bin\Debug\net9.0\OpenArchival.DataAccess.pdb
C:\Users\Vincent\Documents\dev\Open-Archival\OpenArchival.DataAccess.FileAccessManager\obj\Debug\net9.0\OpenArchival.DataAccess.FileAccessManager.csproj.AssemblyReference.cache
C:\Users\Vincent\Documents\dev\Open-Archival\OpenArchival.DataAccess.FileAccessManager\obj\Debug\net9.0\OpenArchival.DataAccess.FileAccessManager.GeneratedMSBuildEditorConfig.editorconfig
C:\Users\Vincent\Documents\dev\Open-Archival\OpenArchival.DataAccess.FileAccessManager\obj\Debug\net9.0\OpenArchival.DataAccess.FileAccessManager.AssemblyInfoInputs.cache
C:\Users\Vincent\Documents\dev\Open-Archival\OpenArchival.DataAccess.FileAccessManager\obj\Debug\net9.0\OpenArchival.DataAccess.FileAccessManager.AssemblyInfo.cs
C:\Users\Vincent\Documents\dev\Open-Archival\OpenArchival.DataAccess.FileAccessManager\obj\Debug\net9.0\OpenArchival.DataAccess.FileAccessManager.csproj.CoreCompileInputs.cache
C:\Users\Vincent\Documents\dev\Open-Archival\OpenArchival.DataAccess.FileAccessManager\obj\Debug\net9.0\OpenArch.3C4D639F.Up2Date
C:\Users\Vincent\Documents\dev\Open-Archival\OpenArchival.DataAccess.FileAccessManager\obj\Debug\net9.0\OpenArchival.DataAccess.FileAccessManager.dll
C:\Users\Vincent\Documents\dev\Open-Archival\OpenArchival.DataAccess.FileAccessManager\obj\Debug\net9.0\refint\OpenArchival.DataAccess.FileAccessManager.dll
C:\Users\Vincent\Documents\dev\Open-Archival\OpenArchival.DataAccess.FileAccessManager\obj\Debug\net9.0\OpenArchival.DataAccess.FileAccessManager.pdb
C:\Users\Vincent\Documents\dev\Open-Archival\OpenArchival.DataAccess.FileAccessManager\obj\Debug\net9.0\OpenArchival.DataAccess.FileAccessManager.genruntimeconfig.cache
C:\Users\Vincent\Documents\dev\Open-Archival\OpenArchival.DataAccess.FileAccessManager\obj\Debug\net9.0\ref\OpenArchival.DataAccess.FileAccessManager.dll

View File

@@ -0,0 +1 @@
10eb3dbc37505539e0803555e365b3994c8c063c9172657a0919a6b8cff5c4a3

View File

@@ -0,0 +1,259 @@
{
"format": 1,
"restore": {
"C:\\Users\\Vincent\\Documents\\dev\\Open-Archival\\OpenArchival.DataAccess.FileAccessManager\\OpenArchival.DataAccess.FileAccessManager.csproj": {}
},
"projects": {
"C:\\Users\\Vincent\\Documents\\dev\\Open-Archival\\OpenArchival.Blazor.Config\\OpenArchival.Blazor.Config.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\Vincent\\Documents\\dev\\Open-Archival\\OpenArchival.Blazor.Config\\OpenArchival.Blazor.Config.csproj",
"projectName": "OpenArchival.Blazor.Config",
"projectPath": "C:\\Users\\Vincent\\Documents\\dev\\Open-Archival\\OpenArchival.Blazor.Config\\OpenArchival.Blazor.Config.csproj",
"packagesPath": "C:\\Users\\Vincent\\.nuget\\packages\\",
"outputPath": "C:\\Users\\Vincent\\Documents\\dev\\Open-Archival\\OpenArchival.Blazor.Config\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\Vincent\\Documents\\dev\\Open-Archival\\NuGet.Config",
"C:\\Users\\Vincent\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net9.0"
],
"sources": {
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net9.0": {
"targetAlias": "net9.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
},
"SdkAnalysisLevel": "10.0.100"
},
"frameworks": {
"net9.0": {
"targetAlias": "net9.0",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.103/PortableRuntimeIdentifierGraph.json"
}
}
},
"C:\\Users\\Vincent\\Documents\\dev\\Open-Archival\\OpenArchival.DataAccess.FileAccessManager\\OpenArchival.DataAccess.FileAccessManager.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\Vincent\\Documents\\dev\\Open-Archival\\OpenArchival.DataAccess.FileAccessManager\\OpenArchival.DataAccess.FileAccessManager.csproj",
"projectName": "OpenArchival.DataAccess.FileAccessManager",
"projectPath": "C:\\Users\\Vincent\\Documents\\dev\\Open-Archival\\OpenArchival.DataAccess.FileAccessManager\\OpenArchival.DataAccess.FileAccessManager.csproj",
"packagesPath": "C:\\Users\\Vincent\\.nuget\\packages\\",
"outputPath": "C:\\Users\\Vincent\\Documents\\dev\\Open-Archival\\OpenArchival.DataAccess.FileAccessManager\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\Vincent\\Documents\\dev\\Open-Archival\\NuGet.Config",
"C:\\Users\\Vincent\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net9.0"
],
"sources": {
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net9.0": {
"targetAlias": "net9.0",
"projectReferences": {
"C:\\Users\\Vincent\\Documents\\dev\\Open-Archival\\OpenArchival.Blazor.Config\\OpenArchival.Blazor.Config.csproj": {
"projectPath": "C:\\Users\\Vincent\\Documents\\dev\\Open-Archival\\OpenArchival.Blazor.Config\\OpenArchival.Blazor.Config.csproj"
},
"C:\\Users\\Vincent\\Documents\\dev\\Open-Archival\\OpenArchival.DataAccess\\OpenArchival.DataAccess.csproj": {
"projectPath": "C:\\Users\\Vincent\\Documents\\dev\\Open-Archival\\OpenArchival.DataAccess\\OpenArchival.DataAccess.csproj"
}
}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
},
"SdkAnalysisLevel": "10.0.100"
},
"frameworks": {
"net9.0": {
"targetAlias": "net9.0",
"dependencies": {
"Microsoft.EntityFrameworkCore": {
"target": "Package",
"version": "[9.0.8, )"
},
"SixLabors.ImageSharp": {
"target": "Package",
"version": "[3.1.5, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.103/PortableRuntimeIdentifierGraph.json"
}
}
},
"C:\\Users\\Vincent\\Documents\\dev\\Open-Archival\\OpenArchival.DataAccess\\OpenArchival.DataAccess.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\Vincent\\Documents\\dev\\Open-Archival\\OpenArchival.DataAccess\\OpenArchival.DataAccess.csproj",
"projectName": "OpenArchival.DataAccess",
"projectPath": "C:\\Users\\Vincent\\Documents\\dev\\Open-Archival\\OpenArchival.DataAccess\\OpenArchival.DataAccess.csproj",
"packagesPath": "C:\\Users\\Vincent\\.nuget\\packages\\",
"outputPath": "C:\\Users\\Vincent\\Documents\\dev\\Open-Archival\\OpenArchival.DataAccess\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\Vincent\\Documents\\dev\\Open-Archival\\NuGet.Config",
"C:\\Users\\Vincent\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net9.0"
],
"sources": {
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net9.0": {
"targetAlias": "net9.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
},
"SdkAnalysisLevel": "10.0.100"
},
"frameworks": {
"net9.0": {
"targetAlias": "net9.0",
"dependencies": {
"EntityFramework": {
"target": "Package",
"version": "[6.5.1, )"
},
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": {
"target": "Package",
"version": "[9.0.8, )"
},
"Microsoft.EntityFrameworkCore": {
"target": "Package",
"version": "[9.0.8, )"
},
"Microsoft.EntityFrameworkCore.Design": {
"include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive",
"suppressParent": "All",
"target": "Package",
"version": "[9.0.8, )"
},
"Microsoft.Extensions.DependencyInjection.Abstractions": {
"target": "Package",
"version": "[9.0.8, )"
},
"Npgsql": {
"target": "Package",
"version": "[9.0.3, )"
},
"Npgsql.EntityFrameworkCore.PostgreSQL": {
"target": "Package",
"version": "[9.0.4, )"
},
"Persic.EF.Postgres": {
"target": "Package",
"version": "[2025.106.102.11, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.AspNetCore.App": {
"privateAssets": "none"
},
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.103/PortableRuntimeIdentifierGraph.json"
}
}
}
}
}

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Vincent\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">7.0.0</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\Vincent\.nuget\packages\" />
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
</ItemGroup>
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)sixlabors.imagesharp\3.1.5\build\SixLabors.ImageSharp.props" Condition="Exists('$(NuGetPackageRoot)sixlabors.imagesharp\3.1.5\build\SixLabors.ImageSharp.props')" />
<Import Project="$(NuGetPackageRoot)microsoft.entityframeworkcore\9.0.8\buildTransitive\net8.0\Microsoft.EntityFrameworkCore.props" Condition="Exists('$(NuGetPackageRoot)microsoft.entityframeworkcore\9.0.8\buildTransitive\net8.0\Microsoft.EntityFrameworkCore.props')" />
<Import Project="$(NuGetPackageRoot)entityframework\6.5.1\buildTransitive\net6.0\EntityFramework.props" Condition="Exists('$(NuGetPackageRoot)entityframework\6.5.1\buildTransitive\net6.0\EntityFramework.props')" />
</ImportGroup>
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<PkgEntityFramework Condition=" '$(PkgEntityFramework)' == '' ">C:\Users\Vincent\.nuget\packages\entityframework\6.5.1</PkgEntityFramework>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)microsoft.extensions.options\9.0.8\buildTransitive\net8.0\Microsoft.Extensions.Options.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.options\9.0.8\buildTransitive\net8.0\Microsoft.Extensions.Options.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\9.0.8\buildTransitive\net8.0\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\9.0.8\buildTransitive\net8.0\Microsoft.Extensions.Logging.Abstractions.targets')" />
<Import Project="$(NuGetPackageRoot)entityframework\6.5.1\buildTransitive\net6.0\EntityFramework.targets" Condition="Exists('$(NuGetPackageRoot)entityframework\6.5.1\buildTransitive\net6.0\EntityFramework.targets')" />
</ImportGroup>
</Project>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,78 @@
{
"version": 2,
"dgSpecHash": "63EJ3RnIJjQ=",
"success": true,
"projectFilePath": "C:\\Users\\Vincent\\Documents\\dev\\Open-Archival\\OpenArchival.DataAccess.FileAccessManager\\OpenArchival.DataAccess.FileAccessManager.csproj",
"expectedPackageFiles": [
"C:\\Users\\Vincent\\.nuget\\packages\\confi\\2024.110.108.4\\confi.2024.110.108.4.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\efcore.namingconventions\\9.0.0\\efcore.namingconventions.9.0.0.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\entityframework\\6.5.1\\entityframework.6.5.1.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\microsoft.aspnetcore.cryptography.internal\\9.0.8\\microsoft.aspnetcore.cryptography.internal.9.0.8.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\microsoft.aspnetcore.cryptography.keyderivation\\9.0.8\\microsoft.aspnetcore.cryptography.keyderivation.9.0.8.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\microsoft.aspnetcore.identity.entityframeworkcore\\9.0.8\\microsoft.aspnetcore.identity.entityframeworkcore.9.0.8.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\microsoft.csharp\\4.7.0\\microsoft.csharp.4.7.0.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\microsoft.entityframeworkcore\\9.0.8\\microsoft.entityframeworkcore.9.0.8.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\microsoft.entityframeworkcore.abstractions\\9.0.8\\microsoft.entityframeworkcore.abstractions.9.0.8.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\microsoft.entityframeworkcore.analyzers\\9.0.8\\microsoft.entityframeworkcore.analyzers.9.0.8.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\microsoft.entityframeworkcore.relational\\9.0.8\\microsoft.entityframeworkcore.relational.9.0.8.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\microsoft.extensions.caching.abstractions\\9.0.8\\microsoft.extensions.caching.abstractions.9.0.8.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\microsoft.extensions.caching.memory\\9.0.8\\microsoft.extensions.caching.memory.9.0.8.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\microsoft.extensions.configuration\\8.0.0\\microsoft.extensions.configuration.8.0.0.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\9.0.8\\microsoft.extensions.configuration.abstractions.9.0.8.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\9.0.8\\microsoft.extensions.dependencyinjection.9.0.8.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\9.0.8\\microsoft.extensions.dependencyinjection.abstractions.9.0.8.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\microsoft.extensions.identity.core\\9.0.8\\microsoft.extensions.identity.core.9.0.8.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\microsoft.extensions.identity.stores\\9.0.8\\microsoft.extensions.identity.stores.9.0.8.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\microsoft.extensions.logging\\9.0.8\\microsoft.extensions.logging.9.0.8.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\9.0.8\\microsoft.extensions.logging.abstractions.9.0.8.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\microsoft.extensions.options\\9.0.8\\microsoft.extensions.options.9.0.8.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\microsoft.extensions.primitives\\9.0.8\\microsoft.extensions.primitives.9.0.8.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\microsoft.win32.registry\\4.7.0\\microsoft.win32.registry.4.7.0.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\microsoft.win32.systemevents\\6.0.0\\microsoft.win32.systemevents.6.0.0.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\npgsql\\9.0.3\\npgsql.9.0.3.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\npgsql.entityframeworkcore.postgresql\\9.0.4\\npgsql.entityframeworkcore.postgresql.9.0.4.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\persic.ef\\2025.105.129.21\\persic.ef.2025.105.129.21.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\persic.ef.postgres\\2025.106.102.11\\persic.ef.postgres.2025.106.102.11.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\runtime.native.system.data.sqlclient.sni\\4.7.0\\runtime.native.system.data.sqlclient.sni.4.7.0.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\runtime.win-arm64.runtime.native.system.data.sqlclient.sni\\4.4.0\\runtime.win-arm64.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\runtime.win-x64.runtime.native.system.data.sqlclient.sni\\4.4.0\\runtime.win-x64.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\runtime.win-x86.runtime.native.system.data.sqlclient.sni\\4.4.0\\runtime.win-x86.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\sixlabors.imagesharp\\3.1.5\\sixlabors.imagesharp.3.1.5.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\system.codedom\\6.0.0\\system.codedom.6.0.0.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\system.componentmodel.annotations\\5.0.0\\system.componentmodel.annotations.5.0.0.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\system.configuration.configurationmanager\\6.0.1\\system.configuration.configurationmanager.6.0.1.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\system.data.sqlclient\\4.8.6\\system.data.sqlclient.4.8.6.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\system.drawing.common\\6.0.0\\system.drawing.common.6.0.0.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\system.security.accesscontrol\\6.0.0\\system.security.accesscontrol.6.0.0.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\system.security.cryptography.protecteddata\\6.0.0\\system.security.cryptography.protecteddata.6.0.0.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\system.security.permissions\\6.0.0\\system.security.permissions.6.0.0.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\system.security.principal.windows\\4.7.0\\system.security.principal.windows.4.7.0.nupkg.sha512",
"C:\\Users\\Vincent\\.nuget\\packages\\system.windows.extensions\\6.0.0\\system.windows.extensions.6.0.0.nupkg.sha512"
],
"logs": [
{
"code": "NU1903",
"level": "Warning",
"message": "Package 'SixLabors.ImageSharp' 3.1.5 has a known high severity vulnerability, https://github.com/advisories/GHSA-2cmq-823j-5qj8",
"projectPath": "C:\\Users\\Vincent\\Documents\\dev\\Open-Archival\\OpenArchival.DataAccess.FileAccessManager\\OpenArchival.DataAccess.FileAccessManager.csproj",
"warningLevel": 1,
"filePath": "C:\\Users\\Vincent\\Documents\\dev\\Open-Archival\\OpenArchival.DataAccess.FileAccessManager\\OpenArchival.DataAccess.FileAccessManager.csproj",
"libraryId": "SixLabors.ImageSharp",
"targetGraphs": [
"net9.0"
]
},
{
"code": "NU1902",
"level": "Warning",
"message": "Package 'SixLabors.ImageSharp' 3.1.5 has a known moderate severity vulnerability, https://github.com/advisories/GHSA-rxmq-m78w-7wmc",
"projectPath": "C:\\Users\\Vincent\\Documents\\dev\\Open-Archival\\OpenArchival.DataAccess.FileAccessManager\\OpenArchival.DataAccess.FileAccessManager.csproj",
"warningLevel": 1,
"filePath": "C:\\Users\\Vincent\\Documents\\dev\\Open-Archival\\OpenArchival.DataAccess.FileAccessManager\\OpenArchival.DataAccess.FileAccessManager.csproj",
"libraryId": "SixLabors.ImageSharp",
"targetGraphs": [
"net9.0"
]
}
]
}