using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; using System.Diagnostics.CodeAnalysis; namespace OpenArchival.DataAccess; public class ArtifactGroupingProvider : IArtifactGroupingProvider { private readonly ArchiveDbContext _context; private readonly ILogger _logger; [SetsRequiredMembers] public ArtifactGroupingProvider(ArchiveDbContext context, ILogger logger) { _context = context; _logger = logger; } public async Task GetGroupingAsync(int id) { return await _context.ArtifactGroupings.Where(g => g.Id == id).FirstOrDefaultAsync(); } public async Task GetGroupingAsync(string artifactGroupingIdentifier) { return await _context.ArtifactGroupings.Where(g => g.ArtifactGroupingIdentifier == artifactGroupingIdentifier).FirstOrDefaultAsync(); } public async Task CreateGroupingAsync(ArtifactGrouping grouping) { _context.ArtifactGroupings.Add(grouping); await _context.SaveChangesAsync(); } public async Task UpdateGroupingAsync(ArtifactGrouping grouping) { _context.ArtifactGroupings.Update(grouping); await _context.SaveChangesAsync(); } public async Task DeleteGroupingAsync(ArtifactGrouping grouping) { _context.ArtifactGroupings.Remove(grouping); await _context.SaveChangesAsync(); } }