diff options
| author | transtrike <transtrike@gmail.com> | 2021-01-13 11:05:26 +0200 |
|---|---|---|
| committer | transtrike <transtrike@gmail.com> | 2021-01-13 11:05:26 +0200 |
| commit | 6deaa6edcd8e347d5ed28ee3389cb8712cc64ea3 (patch) | |
| tree | 620b8867f3b5f96aa76c0e5e38e985db91498696 /src/DevHive.Data/Interfaces/IUserRepository.cs | |
| parent | 8a18cdf741bed465b4b24626e15370c33365cf11 (diff) | |
| download | DevHive-6deaa6edcd8e347d5ed28ee3389cb8712cc64ea3.tar DevHive-6deaa6edcd8e347d5ed28ee3389cb8712cc64ea3.tar.gz DevHive-6deaa6edcd8e347d5ed28ee3389cb8712cc64ea3.zip | |
The return of the interfaces
Diffstat (limited to 'src/DevHive.Data/Interfaces/IUserRepository.cs')
| -rw-r--r-- | src/DevHive.Data/Interfaces/IUserRepository.cs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/DevHive.Data/Interfaces/IUserRepository.cs b/src/DevHive.Data/Interfaces/IUserRepository.cs new file mode 100644 index 0000000..8ee5054 --- /dev/null +++ b/src/DevHive.Data/Interfaces/IUserRepository.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using DevHive.Data.Models; +using DevHive.Data.Repositories.Interfaces; + +namespace DevHive.Data.Interfaces +{ + public interface IUserRepository : IRepository<User> + { + 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); + IList<Technology> GetUserTechnologies(User user); + Technology GetUserTechnology(User user, Technology technology); + IEnumerable<User> QueryAll(); + + Task<bool> EditUserLanguage(User user, Language oldLang, Language newLang); + Task<bool> EditUserTechnologies(User user, Technology oldTech, Technology newTech); + + Task<bool> RemoveFriendAsync(User user, User friend); + 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); + } +}
\ No newline at end of file |
