Files
MilkyShots/Lactose/Repositories/FolderRepository.cs
T
REDCODE 26674e05e5 refactor: quality improvements from desloppify scan
- 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
2026-07-29 19:52:49 +02:00

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();
}