aboutsummaryrefslogtreecommitdiff
path: root/src/DevHive.Data/Repositories/UserRepository.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/DevHive.Data/Repositories/UserRepository.cs')
-rw-r--r--src/DevHive.Data/Repositories/UserRepository.cs54
1 files changed, 21 insertions, 33 deletions
diff --git a/src/DevHive.Data/Repositories/UserRepository.cs b/src/DevHive.Data/Repositories/UserRepository.cs
index a2298db..d319ce7 100644
--- a/src/DevHive.Data/Repositories/UserRepository.cs
+++ b/src/DevHive.Data/Repositories/UserRepository.cs
@@ -8,7 +8,20 @@ using Microsoft.EntityFrameworkCore;
namespace DevHive.Data.Repositories
{
- public class UserRepository : BaseRepository<User>, IUserRepository
+ public interface IUserRepository
+ {
+ Task<bool> DoesEmailExistAsync(string email);
+ Task<bool> DoesUserExistAsync(Guid id);
+ Task<bool> DoesUserHaveThisFriendAsync(Guid userId, Guid friendId);
+ bool DoesUserHaveThisUsername(Guid id, string username);
+ Task<bool> DoesUsernameExistAsync(string username);
+ Task<bool> EditAsync(Guid id, User newEntity);
+ Task<User> GetByIdAsync(Guid id);
+ Task<User> GetByUsernameAsync(string username);
+ IEnumerable<User> QueryAll();
+ }
+
+ public class UserRepository : BaseRepository<User>, IUserRepository, IUserRepository
{
private readonly DevHiveContext _context;
@@ -48,27 +61,17 @@ namespace DevHive.Data.Repositories
.Include(x => x.Technologies)
.FirstOrDefaultAsync(x => x.UserName == username);
}
+ #endregion
- public HashSet<Language> GetUserLanguages(User user)
- {
- return user.Languages;
- }
-
- public Language GetUserLanguage(User user, Language language)
+ #region Update
+ public override async Task<bool> EditAsync(Guid id, User newEntity)
{
- return user.Languages
- .FirstOrDefault(x => x.Id == language.Id);
- }
+ User user = await GetByIdAsync(id);
- public HashSet<Technology> GetUserTechnologies(User user)
- {
- return user.Technologies;
- }
+ this._context.Update(user);
+ user = newEntity;
- public Technology GetUserTechnology(User user, Technology technology)
- {
- return user.Technologies
- .FirstOrDefault(x => x.Id == technology.Id);
+ return await this.SaveChangesAsync(this._context);
}
#endregion
@@ -113,21 +116,6 @@ namespace DevHive.Data.Repositories
.Any(x => x.Id == id &&
x.UserName == username);
}
-
- public bool DoesUserHaveFriends(User user)
- {
- return user.Friends.Count >= 1;
- }
-
- public bool DoesUserHaveThisLanguage(User user, Language language)
- {
- return user.Languages.Contains(language);
- }
-
- public bool DoesUserHaveThisTechnology(User user, Technology technology)
- {
- return user.Technologies.Contains(technology);
- }
#endregion
}
}