diff options
| author | transtrike <transtrike@gmail.com> | 2021-01-14 00:12:48 +0200 |
|---|---|---|
| committer | transtrike <transtrike@gmail.com> | 2021-01-14 00:12:48 +0200 |
| commit | 2948a92492141f4d807449191901f499530d8465 (patch) | |
| tree | 36d30886af22351d86d937f03558c501254ad621 /src/DevHive.Data | |
| parent | d77add41838823ad50caf8d1ae5ee8e61c1bb26b (diff) | |
| download | DevHive-2948a92492141f4d807449191901f499530d8465.tar DevHive-2948a92492141f4d807449191901f499530d8465.tar.gz DevHive-2948a92492141f4d807449191901f499530d8465.zip | |
Fixed issues in Language & Technology and their interactions with User
Diffstat (limited to 'src/DevHive.Data')
6 files changed, 32 insertions, 12 deletions
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<bool> DoesLanguageExistAsync(Guid id); Task<bool> DoesLanguageNameExistAsync(string languageName); + Task<Language> 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<Technology> { Task<bool> DoesTechnologyExistAsync(Guid id); - Task<bool> DoesTechnologyNameExist(string technologyName); + Task<bool> DoesTechnologyNameExistAsync(string technologyName); + Task<Technology> 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<bool> AddFriendAsync(User user, User friend); Task<bool> AddLanguageToUserAsync(User user, Language language); Task<bool> AddTechnologyToUserAsync(User user, Technology technology); - + Task<User> GetByUsername(string username); Language GetUserLanguage(User user, Language language); IList<Language> GetUserLanguages(User user); @@ -26,12 +26,13 @@ namespace DevHive.Data.Interfaces Task<bool> RemoveLanguageFromUserAsync(User user, Language language); Task<bool> RemoveTechnologyFromUserAsync(User user, Technology technology); - bool DoesUserHaveThisLanguage(User user, Language language); - bool DoesUserHaveThisUsername(Guid id, string username); - bool DoesUserHaveFriends(User user); Task<bool> DoesEmailExistAsync(string email); Task<bool> DoesUserExistAsync(Guid id); Task<bool> DoesUserHaveThisFriendAsync(Guid userId, Guid friendId); Task<bool> 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<Language>() .FindAsync(id); } + + public async Task<Language> 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<bool> 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<Technology> 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<bool> DoesTechnologyNameExist(string technologyName) + public async Task<bool> DoesTechnologyNameExistAsync(string technologyName) { return await this._context .Set<Technology>() @@ -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 } } |
