diff options
Diffstat (limited to 'src/DevHive.Data/Repositories')
| -rw-r--r-- | src/DevHive.Data/Repositories/DevHiveContext.cs | 4 | ||||
| -rw-r--r-- | src/DevHive.Data/Repositories/RoleRepository.cs | 7 | ||||
| -rw-r--r-- | src/DevHive.Data/Repositories/UserRepository.cs | 7 |
3 files changed, 17 insertions, 1 deletions
diff --git a/src/DevHive.Data/Repositories/DevHiveContext.cs b/src/DevHive.Data/Repositories/DevHiveContext.cs index 2f0fa55..373eb5e 100644 --- a/src/DevHive.Data/Repositories/DevHiveContext.cs +++ b/src/DevHive.Data/Repositories/DevHiveContext.cs @@ -18,6 +18,10 @@ namespace DevHive.Data.Repositories builder.Entity<User>() .HasIndex(x => x.UserName) .IsUnique(); + + builder.Entity<Role>() + .HasIndex(x => x.Id) + .IsUnique(); base.OnModelCreating(builder); } diff --git a/src/DevHive.Data/Repositories/RoleRepository.cs b/src/DevHive.Data/Repositories/RoleRepository.cs index 2652760..21c29db 100644 --- a/src/DevHive.Data/Repositories/RoleRepository.cs +++ b/src/DevHive.Data/Repositories/RoleRepository.cs @@ -34,6 +34,13 @@ namespace DevHive.Data.Repositories .FindAsync(id); } + public async Task<Role> GetByNameAsync(string name) + { + return await this._context + .Set<Role>() + .FirstOrDefaultAsync(x => x.Name == name); + } + //Update public async Task<bool> EditAsync(Role newEntity) { diff --git a/src/DevHive.Data/Repositories/UserRepository.cs b/src/DevHive.Data/Repositories/UserRepository.cs index f5a074b..1508947 100644 --- a/src/DevHive.Data/Repositories/UserRepository.cs +++ b/src/DevHive.Data/Repositories/UserRepository.cs @@ -33,6 +33,7 @@ namespace DevHive.Data.Repositories { return this._context .Set<User>() + .Include(x => x.Roles) .AsNoTracking() .AsEnumerable(); } @@ -41,13 +42,17 @@ namespace DevHive.Data.Repositories { return await this._context .Set<User>() - .FindAsync(id); + .Include(x => x.Roles) + // To also return the roles, you need to include the roles table, + // but then you loose FindAsync, because there is id of role and id of user + .FirstOrDefaultAsync(x => x.Id == id); } public async Task<User> GetByUsername(string username) { return await this._context .Set<User>() + .Include(u => u.Roles) .FirstOrDefaultAsync(x => x.UserName == username); } |
