Got the new ui flow working and the models updated. Need to get changes written to the database.

This commit is contained in:
Vincent Allen
2025-08-11 10:02:45 -04:00
parent 6475a28263
commit 3d82040e75
456 changed files with 17237 additions and 3851 deletions

View File

@@ -0,0 +1,80 @@
using Microsoft.EntityFrameworkCore;
using System.Diagnostics.CodeAnalysis;
namespace OpenArchival.DataAccess;
public class ArchiveCategoryProvider : IArchiveCategoryProvider
{
private Microsoft.EntityFrameworkCore.IDbContextFactory<ArchiveDbContext> _dbFactory;
private ILogger _logger;
[SetsRequiredMembers]
public ArchiveCategoryProvider(Microsoft.EntityFrameworkCore.IDbContextFactory<ArchiveDbContext> dbFactory, ILogger<ArchiveCategoryProvider> logger)
{
_dbFactory = dbFactory;
_logger = logger;
}
public async Task CreateCategoryAsync(ArchiveCategory category)
{
await using var context = await _dbFactory.CreateDbContextAsync();
context.ArchiveCategories.Add(category);
await context.SaveChangesAsync();
}
public async Task UpdateCategoryAsync(ArchiveCategory category)
{
await using var context = await _dbFactory.CreateDbContextAsync();
context.ArchiveCategories.Update(category);
await context.SaveChangesAsync();
}
public async Task DeleteCategoryAsync(ArchiveCategory category)
{
await using var context = await _dbFactory.CreateDbContextAsync();
context.ArchiveCategories.Remove(category);
await context.SaveChangesAsync();
}
public async Task<List<ArchiveCategory>?> GetArchiveCategory(string categoryName)
{
await using var context = await _dbFactory.CreateDbContextAsync();
return await context.ArchiveCategories.Where(a => a.Name == categoryName).ToListAsync();
}
public async Task<ArchiveCategory?> GetArchiveCategory(int id)
{
await using var context = await _dbFactory.CreateDbContextAsync();
return await context.ArchiveCategories.Where(a => a.Id == id).FirstOrDefaultAsync();
}
public async Task<List<ArchiveCategory>?> GetAllArchiveCategories()
{
await using var context = await _dbFactory.CreateDbContextAsync();
return await context.ArchiveCategories.ToListAsync();
}
public async Task<List<ArchiveCategory>?> Search(string query)
{
await using var context = await _dbFactory.CreateDbContextAsync();
return await context.ArchiveCategories
.Where(p => p.Name.ToLower().Contains(query.ToLower())).ToListAsync();
}
public async Task<List<ArchiveCategory>?> Top(int count)
{
await using var context = await _dbFactory.CreateDbContextAsync();
return await context.ArchiveCategories
.OrderBy(p => p.Name)
.Take(count)
.ToListAsync();
}
}