Adding of archive items is mostly operational. Need to handle file upload
This commit is contained in:
@@ -1,12 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OpenArchival.Database
|
||||
{
|
||||
internal class ArchiveEntryProvider
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
using Dapper;
|
||||
using Npgsql;
|
||||
|
||||
namespace OpenArchival.Database;
|
||||
|
||||
public class ArchiveStorageLocationProvider : IArchiveStorageLocationProvider
|
||||
{
|
||||
private NpgsqlDataSource _dataSource;
|
||||
|
||||
public ArchiveStorageLocationProvider(NpgsqlDataSource dataSource)
|
||||
{
|
||||
_dataSource = dataSource;
|
||||
}
|
||||
|
||||
public async Task<bool> ContainsLocation(string location)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = @"SELECT EXISTS(SELECT 1 FROM archivestoragelocations WHERE location = @Location)";
|
||||
|
||||
return await connection.ExecuteScalarAsync<bool>(sql, new {Location = location});
|
||||
}
|
||||
|
||||
public async Task<bool> AddLocation(string location)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = @"INSERT INTO archivestoragelocations (location) VALUES (@Location)";
|
||||
|
||||
var rowsAffected = await connection.ExecuteAsync(sql, new { Location = location });
|
||||
|
||||
return rowsAffected == 1;
|
||||
}
|
||||
|
||||
public async Task<bool> RemoveLocation(string location)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = @"DELETE FROM archivestoragelocations WHERE location = @Location";
|
||||
|
||||
var rowsAffected = await connection.ExecuteAsync(sql, new { Location = location });
|
||||
|
||||
return rowsAffected == 1;
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<string>> SearchLocations(string query)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = @"SELECT location FROM archivestoragelocations WHERE POSITION(LOWER(@Query) in LOWER(location)) > 0";
|
||||
|
||||
return await connection.QueryAsync<string>(sql, new {Query=query});
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<string>> TopLocations(int resultCount)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = $@"SELECT location FROM archivestoragelocations ORDER BY location ASC LIMIT {resultCount}";
|
||||
|
||||
return await connection.QueryAsync<string>(sql);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OpenArchival.Database;
|
||||
|
||||
public interface IArchiveStorageLocationProvider
|
||||
{
|
||||
public Task<bool> ContainsLocation(string location);
|
||||
|
||||
public Task<bool> AddLocation(string location);
|
||||
|
||||
public Task<bool> RemoveLocation(string location);
|
||||
|
||||
public Task<IEnumerable<string>> SearchLocations(string query);
|
||||
|
||||
public Task<IEnumerable<string>> TopLocations(int resultCount);
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
using Dapper;
|
||||
using Npgsql;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OpenArchival.Database;
|
||||
|
||||
public class ArtifactAssociatedNamesProvider : IArtifactAssociatedNamesProvider
|
||||
{
|
||||
private NpgsqlDataSource _dataSource;
|
||||
|
||||
public ArtifactAssociatedNamesProvider(NpgsqlDataSource dataSource)
|
||||
{
|
||||
_dataSource = dataSource;
|
||||
}
|
||||
|
||||
public async Task<bool> ContainsName(string name)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = @"SELECT EXISTS(SELECT 1 FROM artifactassociatednames WHERE name = @Name)";
|
||||
|
||||
return await connection.ExecuteScalarAsync<bool>(sql, new { Name = name });
|
||||
}
|
||||
|
||||
public async Task<bool> InsertName(string name)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = @"INSERT INTO artifactassociatednames (name) VALUES (@Name)";
|
||||
|
||||
int rowsAffected = await connection.ExecuteAsync(sql, new {Name=name});
|
||||
|
||||
return rowsAffected == 1;
|
||||
}
|
||||
|
||||
public async Task<bool> RemoveName(string name)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = @"DELETE FROM artifactassociatednames WHERE name = @Name";
|
||||
|
||||
int rowsAffected = await connection.ExecuteAsync(sql, new { Name = name });
|
||||
|
||||
return rowsAffected > 0;
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<string>> SearchNames(string query)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = @"SELECT name FROM artifactassociatednames WHERE POSITION(LOWER(@Query) in LOWER(name)) > 0";
|
||||
|
||||
return await connection.QueryAsync<string>(sql, new { Query = query });
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<string>> TopNames(int resultCount)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = $@"SELECT name FROM artifactassociatednames ORDER BY name ASC LIMIT {resultCount}";
|
||||
|
||||
return await connection.QueryAsync<string>(sql);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OpenArchival.Database;
|
||||
|
||||
public interface IArtifactAssociatedNamesProvider
|
||||
{
|
||||
public Task<bool> ContainsName(string name);
|
||||
|
||||
public Task<bool> InsertName(string name);
|
||||
|
||||
public Task<bool> RemoveName(string name);
|
||||
|
||||
public Task<IEnumerable<string>> SearchNames(string query);
|
||||
|
||||
public Task<IEnumerable<string>> TopNames(int resultCount);
|
||||
}
|
||||
63
OpenArchival.Database/ArtifactTypes/ArtifactTypesProvider.cs
Normal file
63
OpenArchival.Database/ArtifactTypes/ArtifactTypesProvider.cs
Normal file
@@ -0,0 +1,63 @@
|
||||
using Npgsql;
|
||||
using Dapper;
|
||||
|
||||
namespace OpenArchival.Database;
|
||||
|
||||
public class ArtifactTypesProvider : IArtifactTypesProvider
|
||||
{
|
||||
private NpgsqlDataSource _dataSource;
|
||||
|
||||
public ArtifactTypesProvider(NpgsqlDataSource dataSource)
|
||||
{
|
||||
_dataSource = dataSource;
|
||||
}
|
||||
|
||||
public async Task<bool> ContainsType(string type)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = @"SELECT EXISTS(SELECT 1 FROM artifacttypes WHERE type = @Value)";
|
||||
|
||||
return await connection.ExecuteScalarAsync<bool>(sql, new { Value=type});
|
||||
}
|
||||
|
||||
public async Task<bool> AddType(string type)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = @"INSERT INTO artifacttypes (type) VALUES (@Type)";
|
||||
|
||||
int rowsAffected = await connection.ExecuteAsync(sql, new { Type = type });
|
||||
|
||||
return rowsAffected == 1;
|
||||
}
|
||||
|
||||
public async Task<bool> RemoveType(string type)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = @"DELETE FROM artifacttypes WHERE value = @Value";
|
||||
|
||||
int rowsAffected = await connection.ExecuteAsync(sql, new { Value = type });
|
||||
|
||||
return rowsAffected > 0;
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<string>> SearchTypes(string query)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = @"SELECT type FROM artifacttypes WHERE POSITION(LOWER(@Query) in LOWER(type)) > 0";
|
||||
|
||||
return await connection.QueryAsync<string>(sql, new {Query=query});
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<string>> TopTypes(int resultCount)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = @$"SELECT type FROM artifacttypes ORDER BY type ASC LIMIT {resultCount}";
|
||||
|
||||
return await connection.QueryAsync<string>(sql);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OpenArchival.Database;
|
||||
|
||||
public interface IArtifactTypesProvider
|
||||
{
|
||||
public Task<bool> ContainsType(string type);
|
||||
|
||||
public Task<bool> AddType(string type);
|
||||
|
||||
public Task<bool> RemoveType(string type);
|
||||
|
||||
public Task<IEnumerable<string>> SearchTypes(string query);
|
||||
|
||||
public Task<IEnumerable<string>> TopTypes(int resultCount);
|
||||
}
|
||||
@@ -1,62 +1,17 @@
|
||||
using Microsoft.Extensions.Options;
|
||||
using Npgsql;
|
||||
using Dapper;
|
||||
using OpenArchival.Core;
|
||||
|
||||
namespace OpenArchival.Database.Category;
|
||||
|
||||
public class Category
|
||||
{
|
||||
public int CategoryId { get; set; }
|
||||
public required string CategoryName { get; set; }
|
||||
public required string FieldSeparator { get; set; }
|
||||
public required string[] FieldNames { get; set; }
|
||||
public required string[] FieldDescriptions { get; set; }
|
||||
}
|
||||
|
||||
public class CategoryFieldOption
|
||||
{
|
||||
public required int CategoryId { get; set; }
|
||||
public required int FieldNumber { get; set; }
|
||||
public required string Value { get; set; }
|
||||
public required string Name { get; set; }
|
||||
public string? Description { get; set; }
|
||||
|
||||
}
|
||||
namespace OpenArchival.Database;
|
||||
|
||||
public class CategoryProvider : ICategoryProvider
|
||||
{
|
||||
public static string TableCreationQuery = """
|
||||
DROP TABLE IF EXISTS Categories CASCADE;
|
||||
CREATE TABLE IF NOT EXISTS Categories (
|
||||
categoryid SERIAL PRIMARY KEY,
|
||||
categoryname TEXT NOT NULL,
|
||||
fieldseparator TEXT NOT NULL,
|
||||
fieldnames TEXT [] NOT NULL,
|
||||
fielddescriptions TEXT [] NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS CategoryFieldOptions (
|
||||
categoryid INT NOT NULL,
|
||||
fieldnumber INT NOT NULL,
|
||||
value TEXT NOT NULL,
|
||||
name TEXT NOT NULL,
|
||||
FOREIGN KEY (categoryid) REFERENCES Categories(categoryid)
|
||||
);
|
||||
""";
|
||||
|
||||
private readonly PostgresConnectionOptions _options;
|
||||
|
||||
private readonly NpgsqlDataSource _dataSource;
|
||||
|
||||
public CategoryProvider(IOptions<PostgresConnectionOptions> options, NpgsqlDataSource databaseConnection)
|
||||
public CategoryProvider(NpgsqlDataSource databaseConnection)
|
||||
{
|
||||
_options = options?.Value ?? throw new ArgumentNullException(nameof(options), "Postgres connection options cannot be null.");
|
||||
_dataSource = databaseConnection ?? throw new ArgumentNullException(nameof(databaseConnection), "Database connection cannot be null.");
|
||||
|
||||
if (_options.Host == null || _options.Port <= 0 || _options.Database == null || _options.Username == null || _options.Password == null)
|
||||
{
|
||||
throw new ArgumentException("Postgres connection options are not properly configured.");
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<Category?> GetCategoryAsync(string categoryName)
|
||||
@@ -68,6 +23,17 @@ public class CategoryProvider : ICategoryProvider
|
||||
return await connection.QueryFirstOrDefaultAsync<Category>(sql, new {CategoryName=categoryName});
|
||||
}
|
||||
|
||||
public async Task<bool> RemoveCategory(string categoryName)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = @"DELETE FROM Categories WHERE categoryname = @CategoryName";
|
||||
|
||||
int rowsAffected = await connection.ExecuteAsync(sql, new { CategoryName = categoryName });
|
||||
|
||||
return rowsAffected > 0;
|
||||
}
|
||||
|
||||
public async Task<int?> GetCategoryId(string categoryName)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
@@ -86,6 +52,24 @@ public class CategoryProvider : ICategoryProvider
|
||||
return await connection.QueryAsync<Category>(sql);
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<Category>> SearchCategories(string searchQuery)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = @"SELECT * FROM Categories WHERE POSITION(LOWER(@SearchQuery) in LOWER(categoryname)) > 0";
|
||||
|
||||
return await connection.QueryAsync<Category>(sql, new {SearchQuery=searchQuery});
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<Category>> TopCategories(int numResults)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = $@"SELECT * FROM Categories ORDER BY categoryname ASC LIMIT {numResults}";
|
||||
|
||||
return await connection.QueryAsync<Category>(sql);
|
||||
}
|
||||
|
||||
public async Task<int> InsertCategoryAsync(Category category)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
@@ -99,8 +83,6 @@ public class CategoryProvider : ICategoryProvider
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
// 1. Add commas between each SET assignment.
|
||||
// 2. Use a distinct parameter (e.g., @OldCategoryName) in the WHERE clause.
|
||||
const string sql = @"
|
||||
UPDATE Categories
|
||||
SET
|
||||
@@ -110,16 +92,13 @@ public class CategoryProvider : ICategoryProvider
|
||||
fielddescriptions = @FieldDescriptions
|
||||
WHERE categoryname = @OldCategoryName;";
|
||||
|
||||
// 3. Create a parameter object that includes the value for the WHERE clause.
|
||||
var parameters = new
|
||||
{
|
||||
// These parameters come from the 'category' object for the SET clause
|
||||
category.CategoryName,
|
||||
category.FieldSeparator,
|
||||
category.FieldNames,
|
||||
category.FieldDescriptions,
|
||||
|
||||
// This parameter comes from the method argument for the WHERE clause
|
||||
OldCategoryName = oldCategoryName
|
||||
};
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
namespace OpenArchival.Database.Category;
|
||||
using OpenArchival.Core;
|
||||
|
||||
namespace OpenArchival.Database;
|
||||
|
||||
public interface ICategoryProvider
|
||||
{
|
||||
@@ -6,6 +8,10 @@ public interface ICategoryProvider
|
||||
|
||||
public Task<int?> GetCategoryId(string categoryName);
|
||||
|
||||
public Task<IEnumerable<Category>> TopCategories(int numResults);
|
||||
|
||||
public Task<IEnumerable<Category>> SearchCategories(string searchQuery);
|
||||
|
||||
public Task<int> InsertCategoryAsync(Category category);
|
||||
|
||||
public Task<int> UpdateCategoryAsync(string categoryName, Category category);
|
||||
|
||||
69
OpenArchival.Database/Defects/DefectsProvider.cs
Normal file
69
OpenArchival.Database/Defects/DefectsProvider.cs
Normal file
@@ -0,0 +1,69 @@
|
||||
using Dapper;
|
||||
using Npgsql;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net.Quic;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OpenArchival.Database;
|
||||
|
||||
public class DefectsProvider : IDefectsProvider
|
||||
{
|
||||
NpgsqlDataSource _dataSource;
|
||||
|
||||
public DefectsProvider(NpgsqlDataSource dataSource)
|
||||
{
|
||||
_dataSource = dataSource;
|
||||
}
|
||||
|
||||
public async Task<bool> AddDefect(string defect)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = @"INSERT INTO defects (defect) VALUES (@Defect)";
|
||||
|
||||
var rowsAffected = await connection.ExecuteAsync(sql, new {Defect=defect});
|
||||
|
||||
return rowsAffected == 1;
|
||||
}
|
||||
|
||||
public async Task<bool> RemoveDefect(string defect)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = @"DELETE FROM defects WHERE defect = @Defect";
|
||||
|
||||
var rowsAffected = await connection.ExecuteAsync(sql, new {Defect=defect});
|
||||
|
||||
return rowsAffected == 1;
|
||||
}
|
||||
|
||||
public async Task<bool> ContainsDefect(string defect)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = @"SELECT EXISTS(SELECT 1 FROM defects WHERE defect = @Defect)";
|
||||
|
||||
return await connection.QueryFirstOrDefaultAsync<bool>(sql, new { Defect = defect });
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<string>> SearchDefects(string query)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = @"SELECT defect FROM defects WHERE POSITION(LOWER(@Query) in LOWER(defect)) > 0";
|
||||
|
||||
return await connection.QueryAsync<string>(sql, new { Query=query });
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<string>> TopDefects(int resultCount)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = $@"SELECT defect FROM defects ORDER BY defect ASC LIMIT {resultCount}";
|
||||
|
||||
return await connection.QueryAsync<string>(sql);
|
||||
}
|
||||
}
|
||||
20
OpenArchival.Database/Defects/IDefectsProvider.cs
Normal file
20
OpenArchival.Database/Defects/IDefectsProvider.cs
Normal file
@@ -0,0 +1,20 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OpenArchival.Database;
|
||||
|
||||
public interface IDefectsProvider
|
||||
{
|
||||
public Task<bool> AddDefect(string defect);
|
||||
|
||||
public Task<bool> RemoveDefect(string defect);
|
||||
|
||||
public Task<bool> ContainsDefect(string defect);
|
||||
|
||||
public Task<IEnumerable<string>> SearchDefects(string query);
|
||||
|
||||
public Task<IEnumerable<string>> TopDefects(int resultCount);
|
||||
}
|
||||
59
OpenArchival.Database/FilePathProvider/FilePathProvider.cs
Normal file
59
OpenArchival.Database/FilePathProvider/FilePathProvider.cs
Normal file
@@ -0,0 +1,59 @@
|
||||
using Dapper;
|
||||
using Npgsql;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OpenArchival.Database;
|
||||
|
||||
public class FilePathProvider : IFilePathProvider
|
||||
{
|
||||
NpgsqlDataSource _dataSource;
|
||||
|
||||
public FilePathProvider(NpgsqlDataSource dataSource)
|
||||
{
|
||||
_dataSource = dataSource;
|
||||
}
|
||||
|
||||
public async Task<bool> AddFile(string path)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = @"INSERT INTO archivefiles (filename, path) VALUES (@Filename, @Path)";
|
||||
|
||||
var rowsAffected = await connection.ExecuteAsync(sql, new { Filename = Path.GetFileName(path), Path = path});
|
||||
|
||||
return rowsAffected == 1;
|
||||
}
|
||||
|
||||
public async Task<bool> RemoveFile(string path)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = @"DELETE FROM archivefiles WHERE path = @Path";
|
||||
|
||||
var rowsAffected = await connection.ExecuteAsync(sql, new { Path = path });
|
||||
|
||||
return rowsAffected == 1;
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<FileInfo>> SearchFiles(string filename)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = @"SELECT * FROM archivefiles WHERE POSITION(LOWER(@Query) in LOWER(filename)) > 0";
|
||||
|
||||
return await connection.QueryAsync<FileInfo>(sql, new { Query = filename });
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<FileInfo>> TopFiles(int resultsCount)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = $@"SELECT * FROM archivefiles ORDER BY filename ASC LIMIT {resultsCount}";
|
||||
|
||||
return await connection.QueryAsync<FileInfo>(sql);
|
||||
}
|
||||
}
|
||||
18
OpenArchival.Database/FilePathProvider/IFilePathProvider.cs
Normal file
18
OpenArchival.Database/FilePathProvider/IFilePathProvider.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OpenArchival.Database;
|
||||
|
||||
public interface IFilePathProvider
|
||||
{
|
||||
public Task<bool> AddFile(string path);
|
||||
|
||||
public Task<bool> RemoveFile(string path);
|
||||
|
||||
public Task<IEnumerable<FileInfo>> SearchFiles(string filename);
|
||||
|
||||
public Task<IEnumerable<FileInfo>> TopFiles(int resultsCount);
|
||||
}
|
||||
@@ -7,6 +7,11 @@
|
||||
<OutputType>Exe</OutputType>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Remove="ArtifactTypes\ArtifactTypesProvider.cs~RF1193acf.TMP" />
|
||||
<None Remove="Tables.cs~RF142e541.TMP" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Content Include="appsettings.Development.json">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
@@ -29,4 +34,8 @@
|
||||
<PackageReference Include="Npgsql.DependencyInjection" Version="9.0.3" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\OpenArchival.Core\OpenArchival.Core.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -4,6 +4,7 @@ using Dapper;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using OpenArchival.Core;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Npgsql;
|
||||
@@ -36,7 +37,7 @@ public class Program
|
||||
services.AddNpgsqlDataSource(postgresOptions.ConnectionString);
|
||||
|
||||
// 3. Register your provider and its interface
|
||||
services.AddScoped<OpenArchival.Database.Category.ICategoryProvider, OpenArchival.Database.Category.CategoryProvider>();
|
||||
services.AddScoped<ICategoryProvider, CategoryProvider>();
|
||||
services.AddOptions<PostgresConnectionOptions>().BindConfiguration("PostgresConnectionOptions");
|
||||
})
|
||||
.Build();
|
||||
@@ -52,14 +53,18 @@ public class Program
|
||||
logger.LogInformation("Initializing database schema...");
|
||||
var dataSource = services.GetRequiredService<NpgsqlDataSource>();
|
||||
await using var connection = await dataSource.OpenConnectionAsync();
|
||||
await connection.ExecuteAsync(OpenArchival.Database.Category.CategoryProvider.TableCreationQuery);
|
||||
|
||||
await connection.ExecuteAsync(Tables.CategoryTable);
|
||||
await connection.ExecuteAsync(Tables.ArtifactAssociatedNamesTable);
|
||||
await connection.ExecuteAsync(Tables.ArtifactTypesTable);
|
||||
|
||||
logger.LogInformation("Schema initialized successfully.");
|
||||
|
||||
// B. Get the provider service
|
||||
var provider = services.GetRequiredService<OpenArchival.Database.Category.ICategoryProvider>();
|
||||
var provider = services.GetRequiredService<ICategoryProvider>();
|
||||
|
||||
// C. Create a new category to insert
|
||||
var newCategory = new OpenArchival.Database.Category.Category
|
||||
var newCategory = new Category
|
||||
{
|
||||
CategoryName = "Invoices",
|
||||
FieldSeparator = ",",
|
||||
|
||||
83
OpenArchival.Database/Tables.cs
Normal file
83
OpenArchival.Database/Tables.cs
Normal file
@@ -0,0 +1,83 @@
|
||||
using Npgsql;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OpenArchival.Database;
|
||||
|
||||
public static class Tables
|
||||
{
|
||||
public const string CategoryTable = """
|
||||
DROP TABLE IF EXISTS Categories CASCADE;
|
||||
CREATE TABLE IF NOT EXISTS Categories (
|
||||
categoryid SERIAL PRIMARY KEY,
|
||||
categoryname TEXT NOT NULL,
|
||||
fieldseparator TEXT NOT NULL,
|
||||
fieldnames TEXT [] NOT NULL,
|
||||
fielddescriptions TEXT [] NOT NULL
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS categoryfieldoptions;
|
||||
CREATE TABLE IF NOT EXISTS categoryfieldoptions (
|
||||
categoryid INT NOT NULL,
|
||||
fieldnumber INT NOT NULL,
|
||||
value TEXT NOT NULL,
|
||||
name TEXT NOT NULL,
|
||||
FOREIGN KEY (categoryid) REFERENCES Categories(categoryid)
|
||||
);
|
||||
""";
|
||||
|
||||
public const string ArtifactTypesTable = """
|
||||
DROP TABLE IF EXISTS artifacttypes;
|
||||
CREATE TABLE IF NOT EXISTS artifacttypes (
|
||||
type TEXT NOT NULL
|
||||
);
|
||||
""";
|
||||
|
||||
public const string ArtifactAssociatedNamesTable = """
|
||||
DROP TABLE IF EXISTS artifactassociatednames;
|
||||
CREATE TABLE IF NOT EXISTS artifactassociatednames(
|
||||
name TEXT NOT NULL
|
||||
);
|
||||
""";
|
||||
|
||||
public const string ArchiveStorageLocationTable = """
|
||||
DROP TABLE IF EXISTS archivestoragelocations;
|
||||
CREATE TABLE IF NOT EXISTS archivestoragelocations(
|
||||
location TEXT NOT NULL
|
||||
);
|
||||
""";
|
||||
|
||||
public const string TagsTable = """
|
||||
DROP TABLE IF EXISTS tags;
|
||||
CREATE TABLE IF NOT EXISTS tags (
|
||||
tag TEXT NOT NULL
|
||||
);
|
||||
""";
|
||||
|
||||
public const string DefectsTable = """
|
||||
DROP TABLE IF EXISTS defects;
|
||||
CREATE TABLE IF NOT EXISTS defects (
|
||||
defect TEXT NOT NULL
|
||||
);
|
||||
""";
|
||||
|
||||
public const string ArchiveFiles = """
|
||||
DROP TABLE IF EXISTS archivefiles;
|
||||
CREATE TABLE IF NOT EXISTS archivefiles (
|
||||
id SERIAL PRIMARY KEY,
|
||||
filename TEXT NOT NULL,
|
||||
path TEXT NOT NULL
|
||||
);
|
||||
""";
|
||||
|
||||
static async Task<bool> InitTables(NpgsqlDataSource dataSource)
|
||||
{
|
||||
await using var connection = await dataSource.OpenConnectionAsync();
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
namespace OpenArchival.Database;
|
||||
|
||||
public static class TablesConstants
|
||||
{
|
||||
public static string CreateCategoriesTable = """
|
||||
CREATE TABLE IF NOT EXISTS Categories (
|
||||
categoryname TEXT NOT NULL PRIMARY KEY,
|
||||
fieldseperator TEXT NOT NULL,
|
||||
fieldnames TEXT [] NOT NULL
|
||||
);
|
||||
""";
|
||||
}
|
||||
20
OpenArchival.Database/Tags/ITagsProvider.cs
Normal file
20
OpenArchival.Database/Tags/ITagsProvider.cs
Normal file
@@ -0,0 +1,20 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OpenArchival.Database;
|
||||
|
||||
public interface ITagsProvider
|
||||
{
|
||||
public Task<bool> AddTag(string tag);
|
||||
|
||||
public Task<bool> RemoveTag(string tag);
|
||||
|
||||
public Task<bool> ContainsTag(string tag);
|
||||
|
||||
public Task<IEnumerable<string>> TopTags(int resultCount);
|
||||
|
||||
public Task<IEnumerable<string>> SearchTags(string query);
|
||||
}
|
||||
68
OpenArchival.Database/Tags/TagsProvider.cs
Normal file
68
OpenArchival.Database/Tags/TagsProvider.cs
Normal file
@@ -0,0 +1,68 @@
|
||||
using Dapper;
|
||||
using Npgsql;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OpenArchival.Database;
|
||||
|
||||
public class TagsProvider : ITagsProvider
|
||||
{
|
||||
private NpgsqlDataSource _dataSource;
|
||||
|
||||
public TagsProvider(NpgsqlDataSource dataSource)
|
||||
{
|
||||
_dataSource = dataSource;
|
||||
}
|
||||
|
||||
public async Task<bool> AddTag(string tag)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = @"INSERT INTO tags (tag) VALUES (@Tag)";
|
||||
|
||||
var rowsAffected = await connection.ExecuteAsync(sql, new { Tag = tag });
|
||||
|
||||
return rowsAffected == 1;
|
||||
}
|
||||
|
||||
public async Task<bool> RemoveTag(string tag)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = @"DELETE FROM tags WHERE tag = @Tag";
|
||||
|
||||
var rowsAffected = await connection.ExecuteAsync(sql, new { Tag = tag });
|
||||
|
||||
return rowsAffected == 1;
|
||||
}
|
||||
|
||||
public async Task<bool> ContainsTag(string tag)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = @"SELECT EXISTS(SELECT 1 FROM tags WHERE tag = @Tag)";
|
||||
|
||||
return await connection.QueryFirstOrDefaultAsync<bool>(sql, new { Tag = tag});
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<string>> TopTags(int resultCount)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = $@"SELECT FROM tags ORDER BY tag ASC LIMIT {resultCount}";
|
||||
|
||||
return await connection.QueryAsync<string>(sql);
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<string>> SearchTags(string query)
|
||||
{
|
||||
await using var connection = await _dataSource.OpenConnectionAsync();
|
||||
|
||||
var sql = @"SELECT tag FROM tags WHERE POSITION(LOWER(@Query) in LOWER(tag)) > 0";
|
||||
|
||||
return await connection.QueryAsync<string>(sql, new { Query = query });
|
||||
}
|
||||
}
|
||||
BIN
OpenArchival.Database/bin/Debug/net9.0/OpenArchival.Core.dll
Normal file
BIN
OpenArchival.Database/bin/Debug/net9.0/OpenArchival.Core.dll
Normal file
Binary file not shown.
BIN
OpenArchival.Database/bin/Debug/net9.0/OpenArchival.Core.pdb
Normal file
BIN
OpenArchival.Database/bin/Debug/net9.0/OpenArchival.Core.pdb
Normal file
Binary file not shown.
@@ -13,7 +13,8 @@
|
||||
"Microsoft.Extensions.Hosting": "9.0.7",
|
||||
"Microsoft.Extensions.Options": "9.0.7",
|
||||
"Npgsql": "9.0.3",
|
||||
"Npgsql.DependencyInjection": "9.0.3"
|
||||
"Npgsql.DependencyInjection": "9.0.3",
|
||||
"OpenArchival.Core": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"OpenArchival.Database.dll": {}
|
||||
@@ -430,6 +431,14 @@
|
||||
"fileVersion": "9.0.725.31616"
|
||||
}
|
||||
}
|
||||
},
|
||||
"OpenArchival.Core/1.0.0": {
|
||||
"runtime": {
|
||||
"OpenArchival.Core.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -655,6 +664,11 @@
|
||||
"sha512": "sha512-AJ+9fyCtQUImntxAJ9l4PZiCd4iepuk4pm7Qcno7PBIWQnfXlvwKuFsGk2H+QyY69GUVzDP2heELW6ho5BCXUg==",
|
||||
"path": "system.diagnostics.eventlog/9.0.7",
|
||||
"hashPath": "system.diagnostics.eventlog.9.0.7.nupkg.sha512"
|
||||
},
|
||||
"OpenArchival.Core/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -14,7 +14,7 @@ using System.Reflection;
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("OpenArchival.Database")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+84108877d5ad14c6dd163e0a72938744d05be938")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+167a8f6fc66bf3d9361bcbe1b051e38e703d0c04")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("OpenArchival.Database")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("OpenArchival.Database")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
@@ -1 +1 @@
|
||||
39487af9488d18c6c19ca0dd9d4ff31fd9b5482a2898c3d5413fec45938ac989
|
||||
7eed4242338fc24f72884699ee19504af2c566997ec15e03521abb9fb7efe0f0
|
||||
|
||||
@@ -8,7 +8,7 @@ build_property.PlatformNeutralAssembly =
|
||||
build_property.EnforceExtendedAnalyzerRules =
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property.RootNamespace = OpenArchival.Database
|
||||
build_property.ProjectDir = C:\Users\Vincent Allen\source\repos\vtallen\Open-Archival\OpenArchival.Database\
|
||||
build_property.ProjectDir = D:\Open-Archival\OpenArchival.Database\
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||
build_property.EffectiveAnalysisLevelStyle = 9.0
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
41ca4e4957c495e4d772d31ce4c0909ecb670b1f0c7dbdd1d05f8b19fb19006f
|
||||
781e3d7b702806d9a71dcc16d2ac03b6ef345b844f57a0f190774b191bc8a018
|
||||
|
||||
@@ -50,3 +50,57 @@ C:\Users\Vincent Allen\source\repos\vtallen\Open-Archival\OpenArchival.Database\
|
||||
C:\Users\Vincent Allen\source\repos\vtallen\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\runtimes\win\lib\net9.0\System.Diagnostics.EventLog.dll
|
||||
C:\Users\Vincent Allen\source\repos\vtallen\Open-Archival\OpenArchival.Database\obj\Debug\net9.0\OpenArch.9D2D866F.Up2Date
|
||||
C:\Users\Vincent Allen\source\repos\vtallen\Open-Archival\OpenArchival.Database\obj\Debug\net9.0\OpenArchival.Database.genruntimeconfig.cache
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\appsettings.Development.json
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\appsettings.json
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\OpenArchival.Database.exe
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\OpenArchival.Database.deps.json
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\OpenArchival.Database.runtimeconfig.json
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\OpenArchival.Database.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\OpenArchival.Database.pdb
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Dapper.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.Configuration.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.Configuration.Abstractions.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.Configuration.Binder.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.Configuration.CommandLine.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.Configuration.EnvironmentVariables.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.Configuration.FileExtensions.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.Configuration.Json.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.Configuration.UserSecrets.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.DependencyInjection.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.Diagnostics.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.Diagnostics.Abstractions.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.FileProviders.Abstractions.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.FileProviders.Physical.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.FileSystemGlobbing.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.Hosting.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.Hosting.Abstractions.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.Logging.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.Logging.Abstractions.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.Logging.Configuration.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.Logging.Console.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.Logging.Debug.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.Logging.EventLog.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.Logging.EventSource.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.Options.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.Options.ConfigurationExtensions.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Microsoft.Extensions.Primitives.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Npgsql.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\Npgsql.DependencyInjection.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\System.Diagnostics.EventLog.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\runtimes\win\lib\net9.0\System.Diagnostics.EventLog.Messages.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\runtimes\win\lib\net9.0\System.Diagnostics.EventLog.dll
|
||||
D:\Open-Archival\OpenArchival.Database\obj\Debug\net9.0\OpenArchival.Database.csproj.AssemblyReference.cache
|
||||
D:\Open-Archival\OpenArchival.Database\obj\Debug\net9.0\OpenArchival.Database.GeneratedMSBuildEditorConfig.editorconfig
|
||||
D:\Open-Archival\OpenArchival.Database\obj\Debug\net9.0\OpenArchival.Database.AssemblyInfoInputs.cache
|
||||
D:\Open-Archival\OpenArchival.Database\obj\Debug\net9.0\OpenArchival.Database.AssemblyInfo.cs
|
||||
D:\Open-Archival\OpenArchival.Database\obj\Debug\net9.0\OpenArchival.Database.csproj.CoreCompileInputs.cache
|
||||
D:\Open-Archival\OpenArchival.Database\obj\Debug\net9.0\OpenArchival.Database.sourcelink.json
|
||||
D:\Open-Archival\OpenArchival.Database\obj\Debug\net9.0\OpenArch.9D2D866F.Up2Date
|
||||
D:\Open-Archival\OpenArchival.Database\obj\Debug\net9.0\OpenArchival.Database.dll
|
||||
D:\Open-Archival\OpenArchival.Database\obj\Debug\net9.0\refint\OpenArchival.Database.dll
|
||||
D:\Open-Archival\OpenArchival.Database\obj\Debug\net9.0\OpenArchival.Database.pdb
|
||||
D:\Open-Archival\OpenArchival.Database\obj\Debug\net9.0\OpenArchival.Database.genruntimeconfig.cache
|
||||
D:\Open-Archival\OpenArchival.Database\obj\Debug\net9.0\ref\OpenArchival.Database.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\OpenArchival.Core.dll
|
||||
D:\Open-Archival\OpenArchival.Database\bin\Debug\net9.0\OpenArchival.Core.pdb
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
ff1b6a70f81f78cde2f5b25ba91f614bef7c6b3f581f582b2733d533fd2fd2a7
|
||||
902651e4af3f69aa05747117da15536afe1f46eb383b5abc3cd44d4cfd6d83e6
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
{"documents":{"C:\\Users\\Vincent Allen\\source\\repos\\vtallen\\Open-Archival\\*":"https://raw.githubusercontent.com/vtallen/Open-Archival/84108877d5ad14c6dd163e0a72938744d05be938/*"}}
|
||||
{"documents":{"D:\\Open-Archival\\*":"https://raw.githubusercontent.com/vtallen/Open-Archival/167a8f6fc66bf3d9361bcbe1b051e38e703d0c04/*"}}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,23 +1,23 @@
|
||||
{
|
||||
"format": 1,
|
||||
"restore": {
|
||||
"C:\\Users\\Vincent Allen\\source\\repos\\vtallen\\Open-Archival\\OpenArchival.Database\\OpenArchival.Database.csproj": {}
|
||||
"D:\\Open-Archival\\OpenArchival.Database\\OpenArchival.Database.csproj": {}
|
||||
},
|
||||
"projects": {
|
||||
"C:\\Users\\Vincent Allen\\source\\repos\\vtallen\\Open-Archival\\OpenArchival.Database\\OpenArchival.Database.csproj": {
|
||||
"D:\\Open-Archival\\OpenArchival.Core\\OpenArchival.Core.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "C:\\Users\\Vincent Allen\\source\\repos\\vtallen\\Open-Archival\\OpenArchival.Database\\OpenArchival.Database.csproj",
|
||||
"projectName": "OpenArchival.Database",
|
||||
"projectPath": "C:\\Users\\Vincent Allen\\source\\repos\\vtallen\\Open-Archival\\OpenArchival.Database\\OpenArchival.Database.csproj",
|
||||
"packagesPath": "C:\\Users\\Vincent Allen\\.nuget\\packages\\",
|
||||
"outputPath": "C:\\Users\\Vincent Allen\\source\\repos\\vtallen\\Open-Archival\\OpenArchival.Database\\obj\\",
|
||||
"projectUniqueName": "D:\\Open-Archival\\OpenArchival.Core\\OpenArchival.Core.csproj",
|
||||
"projectName": "OpenArchival.Core",
|
||||
"projectPath": "D:\\Open-Archival\\OpenArchival.Core\\OpenArchival.Core.csproj",
|
||||
"packagesPath": "C:\\Users\\vallen\\.nuget\\packages\\",
|
||||
"outputPath": "D:\\Open-Archival\\OpenArchival.Core\\obj\\",
|
||||
"projectStyle": "PackageReference",
|
||||
"fallbackFolders": [
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||
],
|
||||
"configFilePaths": [
|
||||
"C:\\Users\\Vincent Allen\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||
"C:\\Users\\vallen\\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"
|
||||
],
|
||||
@@ -26,8 +26,7 @@
|
||||
],
|
||||
"sources": {
|
||||
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
|
||||
"C:\\Program Files\\dotnet\\library-packs": {},
|
||||
"https://api.nuget.org/v3/index.json": {}
|
||||
"https://pkgs.dev.azure.com/gateway-ticketing-systems/_packaging/gts-nuget-packages/nuget/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"net9.0": {
|
||||
@@ -47,6 +46,75 @@
|
||||
},
|
||||
"SdkAnalysisLevel": "9.0.300"
|
||||
},
|
||||
"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\\9.0.301/PortableRuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
},
|
||||
"D:\\Open-Archival\\OpenArchival.Database\\OpenArchival.Database.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "D:\\Open-Archival\\OpenArchival.Database\\OpenArchival.Database.csproj",
|
||||
"projectName": "OpenArchival.Database",
|
||||
"projectPath": "D:\\Open-Archival\\OpenArchival.Database\\OpenArchival.Database.csproj",
|
||||
"packagesPath": "C:\\Users\\vallen\\.nuget\\packages\\",
|
||||
"outputPath": "D:\\Open-Archival\\OpenArchival.Database\\obj\\",
|
||||
"projectStyle": "PackageReference",
|
||||
"fallbackFolders": [
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||
],
|
||||
"configFilePaths": [
|
||||
"C:\\Users\\vallen\\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": {
|
||||
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
|
||||
"https://pkgs.dev.azure.com/gateway-ticketing-systems/_packaging/gts-nuget-packages/nuget/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"net9.0": {
|
||||
"targetAlias": "net9.0",
|
||||
"projectReferences": {
|
||||
"D:\\Open-Archival\\OpenArchival.Core\\OpenArchival.Core.csproj": {
|
||||
"projectPath": "D:\\Open-Archival\\OpenArchival.Core\\OpenArchival.Core.csproj"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
"warnAsError": [
|
||||
"NU1605"
|
||||
]
|
||||
},
|
||||
"restoreAuditProperties": {
|
||||
"enableAudit": "true",
|
||||
"auditLevel": "low",
|
||||
"auditMode": "direct"
|
||||
},
|
||||
"SdkAnalysisLevel": "9.0.300"
|
||||
},
|
||||
"frameworks": {
|
||||
"net9.0": {
|
||||
"targetAlias": "net9.0",
|
||||
@@ -92,7 +160,7 @@
|
||||
"privateAssets": "all"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.302/PortableRuntimeIdentifierGraph.json"
|
||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.301/PortableRuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,12 +5,12 @@
|
||||
<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 Allen\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
|
||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\vallen\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
|
||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.14.0</NuGetToolVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<SourceRoot Include="C:\Users\Vincent Allen\.nuget\packages\" />
|
||||
<SourceRoot Include="C:\Users\vallen\.nuget\packages\" />
|
||||
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
|
||||
</ItemGroup>
|
||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
|
||||
@@ -14,7 +14,7 @@ using System.Reflection;
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("OpenArchival.Database")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+84108877d5ad14c6dd163e0a72938744d05be938")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+167a8f6fc66bf3d9361bcbe1b051e38e703d0c04")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("OpenArchival.Database")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("OpenArchival.Database")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
@@ -1 +1 @@
|
||||
9479a9b0ac563aa9059390e0f77bb858196b56d3bfcd6eda9137c1aa742befb5
|
||||
8ee1b719112c51d66a41c4d77187069c393328b39b2ba88dabd2108839d67727
|
||||
|
||||
@@ -649,6 +649,16 @@
|
||||
"rid": "win"
|
||||
}
|
||||
}
|
||||
},
|
||||
"OpenArchival.Core/1.0.0": {
|
||||
"type": "project",
|
||||
"framework": ".NETCoreApp,Version=v9.0",
|
||||
"compile": {
|
||||
"bin/placeholder/OpenArchival.Core.dll": {}
|
||||
},
|
||||
"runtime": {
|
||||
"bin/placeholder/OpenArchival.Core.dll": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1577,6 +1587,11 @@
|
||||
"system.diagnostics.eventlog.nuspec",
|
||||
"useSharedDesignerContext.txt"
|
||||
]
|
||||
},
|
||||
"OpenArchival.Core/1.0.0": {
|
||||
"type": "project",
|
||||
"path": "../OpenArchival.Core/OpenArchival.Core.csproj",
|
||||
"msbuildProject": "../OpenArchival.Core/OpenArchival.Core.csproj"
|
||||
}
|
||||
},
|
||||
"projectFileDependencyGroups": {
|
||||
@@ -1586,27 +1601,28 @@
|
||||
"Microsoft.Extensions.Hosting >= 9.0.7",
|
||||
"Microsoft.Extensions.Options >= 9.0.7",
|
||||
"Npgsql >= 9.0.3",
|
||||
"Npgsql.DependencyInjection >= 9.0.3"
|
||||
"Npgsql.DependencyInjection >= 9.0.3",
|
||||
"OpenArchival.Core >= 1.0.0"
|
||||
]
|
||||
},
|
||||
"packageFolders": {
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\": {},
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\": {},
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {}
|
||||
},
|
||||
"project": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "C:\\Users\\Vincent Allen\\source\\repos\\vtallen\\Open-Archival\\OpenArchival.Database\\OpenArchival.Database.csproj",
|
||||
"projectUniqueName": "D:\\Open-Archival\\OpenArchival.Database\\OpenArchival.Database.csproj",
|
||||
"projectName": "OpenArchival.Database",
|
||||
"projectPath": "C:\\Users\\Vincent Allen\\source\\repos\\vtallen\\Open-Archival\\OpenArchival.Database\\OpenArchival.Database.csproj",
|
||||
"packagesPath": "C:\\Users\\Vincent Allen\\.nuget\\packages\\",
|
||||
"outputPath": "C:\\Users\\Vincent Allen\\source\\repos\\vtallen\\Open-Archival\\OpenArchival.Database\\obj\\",
|
||||
"projectPath": "D:\\Open-Archival\\OpenArchival.Database\\OpenArchival.Database.csproj",
|
||||
"packagesPath": "C:\\Users\\vallen\\.nuget\\packages\\",
|
||||
"outputPath": "D:\\Open-Archival\\OpenArchival.Database\\obj\\",
|
||||
"projectStyle": "PackageReference",
|
||||
"fallbackFolders": [
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||
],
|
||||
"configFilePaths": [
|
||||
"C:\\Users\\Vincent Allen\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||
"C:\\Users\\vallen\\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"
|
||||
],
|
||||
@@ -1615,13 +1631,16 @@
|
||||
],
|
||||
"sources": {
|
||||
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
|
||||
"C:\\Program Files\\dotnet\\library-packs": {},
|
||||
"https://api.nuget.org/v3/index.json": {}
|
||||
"https://pkgs.dev.azure.com/gateway-ticketing-systems/_packaging/gts-nuget-packages/nuget/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"net9.0": {
|
||||
"targetAlias": "net9.0",
|
||||
"projectReferences": {}
|
||||
"projectReferences": {
|
||||
"D:\\Open-Archival\\OpenArchival.Core\\OpenArchival.Core.csproj": {
|
||||
"projectPath": "D:\\Open-Archival\\OpenArchival.Core\\OpenArchival.Core.csproj"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
@@ -1681,7 +1700,7 @@
|
||||
"privateAssets": "all"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.302/PortableRuntimeIdentifierGraph.json"
|
||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.301/PortableRuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,40 +1,40 @@
|
||||
{
|
||||
"version": 2,
|
||||
"dgSpecHash": "1eJSue3NvNI=",
|
||||
"dgSpecHash": "69kCIEyT7Tc=",
|
||||
"success": true,
|
||||
"projectFilePath": "C:\\Users\\Vincent Allen\\source\\repos\\vtallen\\Open-Archival\\OpenArchival.Database\\OpenArchival.Database.csproj",
|
||||
"projectFilePath": "D:\\Open-Archival\\OpenArchival.Database\\OpenArchival.Database.csproj",
|
||||
"expectedPackageFiles": [
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\dapper\\2.1.66\\dapper.2.1.66.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.configuration\\9.0.7\\microsoft.extensions.configuration.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\9.0.7\\microsoft.extensions.configuration.abstractions.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.configuration.binder\\9.0.7\\microsoft.extensions.configuration.binder.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.configuration.commandline\\9.0.7\\microsoft.extensions.configuration.commandline.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.configuration.environmentvariables\\9.0.7\\microsoft.extensions.configuration.environmentvariables.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.configuration.fileextensions\\9.0.7\\microsoft.extensions.configuration.fileextensions.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.configuration.json\\9.0.7\\microsoft.extensions.configuration.json.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.configuration.usersecrets\\9.0.7\\microsoft.extensions.configuration.usersecrets.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\9.0.7\\microsoft.extensions.dependencyinjection.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\9.0.7\\microsoft.extensions.dependencyinjection.abstractions.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.diagnostics\\9.0.7\\microsoft.extensions.diagnostics.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.diagnostics.abstractions\\9.0.7\\microsoft.extensions.diagnostics.abstractions.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.fileproviders.abstractions\\9.0.7\\microsoft.extensions.fileproviders.abstractions.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.fileproviders.physical\\9.0.7\\microsoft.extensions.fileproviders.physical.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.filesystemglobbing\\9.0.7\\microsoft.extensions.filesystemglobbing.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.hosting\\9.0.7\\microsoft.extensions.hosting.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.hosting.abstractions\\9.0.7\\microsoft.extensions.hosting.abstractions.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.logging\\9.0.7\\microsoft.extensions.logging.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\9.0.7\\microsoft.extensions.logging.abstractions.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.logging.configuration\\9.0.7\\microsoft.extensions.logging.configuration.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.logging.console\\9.0.7\\microsoft.extensions.logging.console.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.logging.debug\\9.0.7\\microsoft.extensions.logging.debug.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.logging.eventlog\\9.0.7\\microsoft.extensions.logging.eventlog.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.logging.eventsource\\9.0.7\\microsoft.extensions.logging.eventsource.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.options\\9.0.7\\microsoft.extensions.options.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.options.configurationextensions\\9.0.7\\microsoft.extensions.options.configurationextensions.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\microsoft.extensions.primitives\\9.0.7\\microsoft.extensions.primitives.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\npgsql\\9.0.3\\npgsql.9.0.3.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\npgsql.dependencyinjection\\9.0.3\\npgsql.dependencyinjection.9.0.3.nupkg.sha512",
|
||||
"C:\\Users\\Vincent Allen\\.nuget\\packages\\system.diagnostics.eventlog\\9.0.7\\system.diagnostics.eventlog.9.0.7.nupkg.sha512"
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\dapper\\2.1.66\\dapper.2.1.66.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.configuration\\9.0.7\\microsoft.extensions.configuration.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\9.0.7\\microsoft.extensions.configuration.abstractions.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.configuration.binder\\9.0.7\\microsoft.extensions.configuration.binder.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.configuration.commandline\\9.0.7\\microsoft.extensions.configuration.commandline.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.configuration.environmentvariables\\9.0.7\\microsoft.extensions.configuration.environmentvariables.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.configuration.fileextensions\\9.0.7\\microsoft.extensions.configuration.fileextensions.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.configuration.json\\9.0.7\\microsoft.extensions.configuration.json.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.configuration.usersecrets\\9.0.7\\microsoft.extensions.configuration.usersecrets.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\9.0.7\\microsoft.extensions.dependencyinjection.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\9.0.7\\microsoft.extensions.dependencyinjection.abstractions.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.diagnostics\\9.0.7\\microsoft.extensions.diagnostics.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.diagnostics.abstractions\\9.0.7\\microsoft.extensions.diagnostics.abstractions.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.fileproviders.abstractions\\9.0.7\\microsoft.extensions.fileproviders.abstractions.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.fileproviders.physical\\9.0.7\\microsoft.extensions.fileproviders.physical.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.filesystemglobbing\\9.0.7\\microsoft.extensions.filesystemglobbing.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.hosting\\9.0.7\\microsoft.extensions.hosting.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.hosting.abstractions\\9.0.7\\microsoft.extensions.hosting.abstractions.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.logging\\9.0.7\\microsoft.extensions.logging.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\9.0.7\\microsoft.extensions.logging.abstractions.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.logging.configuration\\9.0.7\\microsoft.extensions.logging.configuration.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.logging.console\\9.0.7\\microsoft.extensions.logging.console.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.logging.debug\\9.0.7\\microsoft.extensions.logging.debug.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.logging.eventlog\\9.0.7\\microsoft.extensions.logging.eventlog.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.logging.eventsource\\9.0.7\\microsoft.extensions.logging.eventsource.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.options\\9.0.7\\microsoft.extensions.options.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.options.configurationextensions\\9.0.7\\microsoft.extensions.options.configurationextensions.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\microsoft.extensions.primitives\\9.0.7\\microsoft.extensions.primitives.9.0.7.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\npgsql\\9.0.3\\npgsql.9.0.3.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\npgsql.dependencyinjection\\9.0.3\\npgsql.dependencyinjection.9.0.3.nupkg.sha512",
|
||||
"C:\\Users\\vallen\\.nuget\\packages\\system.diagnostics.eventlog\\9.0.7\\system.diagnostics.eventlog.9.0.7.nupkg.sha512"
|
||||
],
|
||||
"logs": []
|
||||
}
|
||||
Reference in New Issue
Block a user