From f1515439c5fd26a96817723db5d48b77baa82fb6 Mon Sep 17 00:00:00 2001 From: transtrike Date: Tue, 26 Jan 2021 14:38:21 +0200 Subject: Working on Update User; Currently not updating user in UserRepo --- .../Interfaces/Repositories/IUserRepository.cs | 9 +--- src/DevHive.Data/Repositories/UserRepository.cs | 54 +++++++++------------- 2 files changed, 22 insertions(+), 41 deletions(-) (limited to 'src/DevHive.Data') diff --git a/src/DevHive.Data/Interfaces/Repositories/IUserRepository.cs b/src/DevHive.Data/Interfaces/Repositories/IUserRepository.cs index c29669d..4346e9c 100644 --- a/src/DevHive.Data/Interfaces/Repositories/IUserRepository.cs +++ b/src/DevHive.Data/Interfaces/Repositories/IUserRepository.cs @@ -10,20 +10,13 @@ namespace DevHive.Data.Interfaces.Repositories { //Read Task GetByUsernameAsync(string username); - Language GetUserLanguage(User user, Language language); - HashSet GetUserLanguages(User user); - HashSet GetUserTechnologies(User user); - Technology GetUserTechnology(User user, Technology technology); IEnumerable QueryAll(); //Validations Task DoesEmailExistAsync(string email); Task DoesUserExistAsync(Guid id); Task DoesUserHaveThisFriendAsync(Guid userId, Guid friendId); - Task DoesUsernameExistAsync(string username); - bool DoesUserHaveThisLanguage(User user, Language language); bool DoesUserHaveThisUsername(Guid id, string username); - bool DoesUserHaveFriends(User user); - bool DoesUserHaveThisTechnology(User user, Technology technology); + Task DoesUsernameExistAsync(string username); } } 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, IUserRepository + public interface IUserRepository + { + Task DoesEmailExistAsync(string email); + Task DoesUserExistAsync(Guid id); + Task DoesUserHaveThisFriendAsync(Guid userId, Guid friendId); + bool DoesUserHaveThisUsername(Guid id, string username); + Task DoesUsernameExistAsync(string username); + Task EditAsync(Guid id, User newEntity); + Task GetByIdAsync(Guid id); + Task GetByUsernameAsync(string username); + IEnumerable QueryAll(); + } + + public class UserRepository : BaseRepository, 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 GetUserLanguages(User user) - { - return user.Languages; - } - - public Language GetUserLanguage(User user, Language language) + #region Update + public override async Task EditAsync(Guid id, User newEntity) { - return user.Languages - .FirstOrDefault(x => x.Id == language.Id); - } + User user = await GetByIdAsync(id); - public HashSet 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 } } -- cgit v1.2.3