using System; using System.Linq; using Microsoft.EntityFrameworkCore; using Dough.Models.Database; namespace Dough.Models { public static class DbSetOverrides { public static T SingleOrDefault(this DbSet entity, Guid id, bool includeHidden = false) where T : BaseModel { if (includeHidden) return entity.SingleOrDefault(c => c.Id == id); return entity.SingleOrDefault(c => c.Id == id && !c.Hidden); } public static User SingleByNameOrDefault(this DbSet users, string username, bool includeHidden = false) { if (includeHidden) return users.SingleOrDefault(c => c.Username == username); return users.SingleOrDefault(c => c.Username == username && !c.Hidden); } } }