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 => string.Equals(c.Username, username, StringComparison.InvariantCultureIgnoreCase)); return users.SingleOrDefault(c => string.Equals(c.Username, username, StringComparison.InvariantCultureIgnoreCase) && !c.Hidden); } } }