aboutsummaryrefslogtreecommitdiff
path: root/src/DevHive.Data/Repositories
diff options
context:
space:
mode:
Diffstat (limited to 'src/DevHive.Data/Repositories')
-rw-r--r--src/DevHive.Data/Repositories/DevHiveContext.cs4
-rw-r--r--src/DevHive.Data/Repositories/RoleRepository.cs7
-rw-r--r--src/DevHive.Data/Repositories/UserRepository.cs7
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);
}