From 2948a92492141f4d807449191901f499530d8465 Mon Sep 17 00:00:00 2001 From: transtrike Date: Thu, 14 Jan 2021 00:12:48 +0200 Subject: Fixed issues in Language & Technology and their interactions with User --- src/DevHive.Data/Interfaces/ILanguageRepository.cs | 3 ++- src/DevHive.Data/Interfaces/ITechnologyRepository.cs | 5 +++-- src/DevHive.Data/Interfaces/IUserRepository.cs | 11 ++++++----- src/DevHive.Data/Repositories/LanguageRepository.cs | 10 ++++++++-- src/DevHive.Data/Repositories/TechnologyRepository.cs | 10 ++++++++-- src/DevHive.Data/Repositories/UserRepository.cs | 5 +++++ 6 files changed, 32 insertions(+), 12 deletions(-) (limited to 'src/DevHive.Data') diff --git a/src/DevHive.Data/Interfaces/ILanguageRepository.cs b/src/DevHive.Data/Interfaces/ILanguageRepository.cs index 40dd461..0612116 100644 --- a/src/DevHive.Data/Interfaces/ILanguageRepository.cs +++ b/src/DevHive.Data/Interfaces/ILanguageRepository.cs @@ -9,5 +9,6 @@ namespace DevHive.Data.Interfaces { Task DoesLanguageExistAsync(Guid id); Task DoesLanguageNameExistAsync(string languageName); + Task GetByNameAsync(string name); } -} \ No newline at end of file +} diff --git a/src/DevHive.Data/Interfaces/ITechnologyRepository.cs b/src/DevHive.Data/Interfaces/ITechnologyRepository.cs index 7c126a4..d0de096 100644 --- a/src/DevHive.Data/Interfaces/ITechnologyRepository.cs +++ b/src/DevHive.Data/Interfaces/ITechnologyRepository.cs @@ -8,6 +8,7 @@ namespace DevHive.Data.Interfaces public interface ITechnologyRepository : IRepository { Task DoesTechnologyExistAsync(Guid id); - Task DoesTechnologyNameExist(string technologyName); + Task DoesTechnologyNameExistAsync(string technologyName); + Task GetByNameAsync(string name); } -} \ No newline at end of file +} diff --git a/src/DevHive.Data/Interfaces/IUserRepository.cs b/src/DevHive.Data/Interfaces/IUserRepository.cs index 8ee5054..bca8f71 100644 --- a/src/DevHive.Data/Interfaces/IUserRepository.cs +++ b/src/DevHive.Data/Interfaces/IUserRepository.cs @@ -11,7 +11,7 @@ namespace DevHive.Data.Interfaces Task AddFriendAsync(User user, User friend); Task AddLanguageToUserAsync(User user, Language language); Task AddTechnologyToUserAsync(User user, Technology technology); - + Task GetByUsername(string username); Language GetUserLanguage(User user, Language language); IList GetUserLanguages(User user); @@ -26,12 +26,13 @@ namespace DevHive.Data.Interfaces Task RemoveLanguageFromUserAsync(User user, Language language); Task RemoveTechnologyFromUserAsync(User user, Technology technology); - bool DoesUserHaveThisLanguage(User user, Language language); - bool DoesUserHaveThisUsername(Guid id, string username); - bool DoesUserHaveFriends(User user); 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); } -} \ No newline at end of file +} diff --git a/src/DevHive.Data/Repositories/LanguageRepository.cs b/src/DevHive.Data/Repositories/LanguageRepository.cs index c30d3bb..b867a93 100644 --- a/src/DevHive.Data/Repositories/LanguageRepository.cs +++ b/src/DevHive.Data/Repositories/LanguageRepository.cs @@ -36,6 +36,12 @@ namespace DevHive.Data.Repositories .Set() .FindAsync(id); } + + public async Task GetByNameAsync(string languageName) + { + return await this._context.Languages + .FirstOrDefaultAsync(x => x.Name == languageName); + } #endregion #region Update @@ -62,7 +68,7 @@ namespace DevHive.Data.Repositories } #endregion - #region Validations + #region Validations public async Task DoesLanguageNameExistAsync(string languageName) { @@ -77,4 +83,4 @@ namespace DevHive.Data.Repositories } #endregion } -} \ No newline at end of file +} diff --git a/src/DevHive.Data/Repositories/TechnologyRepository.cs b/src/DevHive.Data/Repositories/TechnologyRepository.cs index a8208b6..d81433c 100644 --- a/src/DevHive.Data/Repositories/TechnologyRepository.cs +++ b/src/DevHive.Data/Repositories/TechnologyRepository.cs @@ -27,6 +27,12 @@ namespace DevHive.Data.Repositories return await RepositoryMethods.SaveChangesAsync(this._context); } + + public async Task GetByNameAsync(string technologyName) + { + return await this._context.Technologies + .FirstOrDefaultAsync(x => x.Name == technologyName); + } #endregion #region Read @@ -65,7 +71,7 @@ namespace DevHive.Data.Repositories #region Validations - public async Task DoesTechnologyNameExist(string technologyName) + public async Task DoesTechnologyNameExistAsync(string technologyName) { return await this._context .Set() @@ -80,4 +86,4 @@ namespace DevHive.Data.Repositories } #endregion } -} \ No newline at end of file +} diff --git a/src/DevHive.Data/Repositories/UserRepository.cs b/src/DevHive.Data/Repositories/UserRepository.cs index 1f29bb5..b4deacd 100644 --- a/src/DevHive.Data/Repositories/UserRepository.cs +++ b/src/DevHive.Data/Repositories/UserRepository.cs @@ -226,6 +226,11 @@ namespace DevHive.Data.Repositories { return user.Langauges.Contains(language); } + + public bool DoesUserHaveThisTechnology(User user, Technology technology) + { + return user.Technologies.Contains(technology); + } #endregion } } -- cgit v1.2.3