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.cs8
-rw-r--r--src/DevHive.Data/Repositories/UserRepository.cs9
2 files changed, 16 insertions, 1 deletions
diff --git a/src/DevHive.Data/Repositories/DevHiveContext.cs b/src/DevHive.Data/Repositories/DevHiveContext.cs
index 373eb5e..7fa8130 100644
--- a/src/DevHive.Data/Repositories/DevHiveContext.cs
+++ b/src/DevHive.Data/Repositories/DevHiveContext.cs
@@ -18,7 +18,13 @@ namespace DevHive.Data.Repositories
builder.Entity<User>()
.HasIndex(x => x.UserName)
.IsUnique();
-
+
+ builder.Entity<User>()
+ .HasMany(x => x.Roles);
+
+ builder.Entity<User>()
+ .HasMany(x => x.Friends);
+
builder.Entity<Role>()
.HasIndex(x => x.Id)
.IsUnique();
diff --git a/src/DevHive.Data/Repositories/UserRepository.cs b/src/DevHive.Data/Repositories/UserRepository.cs
index 130f96e..577f02f 100644
--- a/src/DevHive.Data/Repositories/UserRepository.cs
+++ b/src/DevHive.Data/Repositories/UserRepository.cs
@@ -43,6 +43,7 @@ namespace DevHive.Data.Repositories
return await this._context
.Set<User>()
.Include(x => x.Roles)
+ .Include(x => x.Friends)
.FirstOrDefaultAsync(x => x.Id == id);
}
@@ -115,5 +116,13 @@ namespace DevHive.Data.Repositories
.AsNoTracking()
.AnyAsync(u => u.Email == email);
}
+
+ public async Task<bool> AddFriend(User user, User friend)
+ {
+ this._context.Update(user);
+ user.Friends.Add(friend);
+
+ return await RepositoryMethods.SaveChangesAsync(this._context);
+ }
}
}