diff options
Diffstat (limited to 'src/server/Models/DbSetOverrides.cs')
| -rw-r--r-- | src/server/Models/DbSetOverrides.cs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/server/Models/DbSetOverrides.cs b/src/server/Models/DbSetOverrides.cs new file mode 100644 index 0000000..24622bc --- /dev/null +++ b/src/server/Models/DbSetOverrides.cs @@ -0,0 +1,25 @@ +using System; +using System.Linq; +using Microsoft.EntityFrameworkCore; +using Dough.Models.Database; + +namespace Dough.Models +{ + public static class DbSetOverrides + { + public static T SingleOrDefault<T>(this DbSet<T> 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<User> users, string username, bool includeHidden = false) + { + if (includeHidden) + return users.SingleOrDefault(c => c.Username == username); + return users.SingleOrDefault(c => c.Username == username && !c.Hidden); + } + } +} |
