- Remove 16 unused using System; imports from migration files (implicit usings available) - Fix 6 empty catch blocks with proper exception logging - Remove unused import (false positive flagged as wontfix) - Skip test coverage, orphaned, and stale exclude issues as false positives - Add missing namespace to IPersonRepository.cs - Rename IFolderRepository Create/Delete to Insert/Remove for CRUD consistency - Fix ITagRepository.Delete parameter name from 'id' to 'tag' - Add missing IDisposable to IMediaRepository - Rename SettingsExtensions to SettingsExtension for naming consistency - Rename PagedParametersDTO.cs to PagedParametersDto.cs - Add .desloppify/ to .gitignore
76 lines
2.2 KiB
C#
76 lines
2.2 KiB
C#
using Lactose.Context;
|
|
using Lactose.Models;
|
|
|
|
namespace Lactose.Repositories;
|
|
|
|
/// <inheritdoc />
|
|
public class FolderRepository(LactoseDbContext context) : IFolderRepository, IAsyncDisposable {
|
|
/// <summary>
|
|
/// Occurs when a folder is added.
|
|
/// </summary>
|
|
public static event EventHandler<Folder>? FolderAdded;
|
|
static void OnFolderAdded(Folder e) => FolderAdded?.Invoke(null, e);
|
|
/// <summary>
|
|
/// Occurs when a folder is removed.
|
|
/// </summary>
|
|
public static event EventHandler<Folder>? FolderRemoved;
|
|
static void OnFolderRemoved(Folder e) => FolderRemoved?.Invoke(null, e);
|
|
|
|
/// <inheritdoc />
|
|
public void Insert(Folder folder) {
|
|
context.Folders.Add(folder);
|
|
context.SaveChanges();
|
|
if (folder.Active) OnFolderAdded(folder);
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public void Update(Guid id, Folder folder) {
|
|
var origFolder = context.Folders.Find(id);
|
|
|
|
if (origFolder == null) { return; }
|
|
|
|
var oldPath = origFolder;
|
|
var hasChanged = origFolder.BasePath != folder.BasePath;
|
|
var wasActive = origFolder.Active;
|
|
|
|
|
|
origFolder.BasePath = folder.BasePath;
|
|
origFolder.Active = folder.Active;
|
|
context.Folders.Update(origFolder);
|
|
context.SaveChanges();
|
|
|
|
if (hasChanged && wasActive) OnFolderRemoved(oldPath);
|
|
|
|
if (hasChanged && folder.Active) {}
|
|
|
|
if (folder.Active) OnFolderAdded(origFolder);
|
|
else OnFolderRemoved(origFolder);
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public void Remove(Guid id) {
|
|
var folder = context.Folders.Find(id);
|
|
|
|
if (folder != null) {
|
|
context.Folders.Remove(folder);
|
|
OnFolderRemoved(folder);
|
|
}
|
|
context.SaveChanges();
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public IEnumerable<Folder> GetAllUntracked() => context.Folders.AsNoTracking();
|
|
|
|
/// <inheritdoc />
|
|
public Folder? Get(Guid id) => context.Folders.Find(id);
|
|
|
|
/// <inheritdoc />
|
|
public IEnumerable<Folder> GetAll() => context.Folders;
|
|
|
|
/// <inheritdoc />
|
|
public void Dispose() => context.Dispose();
|
|
|
|
/// <inheritdoc />
|
|
public async ValueTask DisposeAsync() => await context.DisposeAsync();
|
|
}
|