From 6deaa6edcd8e347d5ed28ee3389cb8712cc64ea3 Mon Sep 17 00:00:00 2001 From: transtrike Date: Wed, 13 Jan 2021 11:05:26 +0200 Subject: The return of the interfaces --- src/DevHive.Data/Interfaces/IUserRepository.cs | 37 ++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/DevHive.Data/Interfaces/IUserRepository.cs (limited to 'src/DevHive.Data/Interfaces/IUserRepository.cs') 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 + { + 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); + IList GetUserTechnologies(User user); + Technology GetUserTechnology(User user, Technology technology); + IEnumerable QueryAll(); + + Task EditUserLanguage(User user, Language oldLang, Language newLang); + Task EditUserTechnologies(User user, Technology oldTech, Technology newTech); + + Task RemoveFriendAsync(User user, User friend); + 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); + } +} \ No newline at end of file -- cgit v1.2.3