diff options
| author | transtrike <transtrike@gmail.com> | 2021-01-15 16:45:30 +0200 |
|---|---|---|
| committer | transtrike <transtrike@gmail.com> | 2021-01-15 16:45:30 +0200 |
| commit | 5514f1109cb3689fa81b29bb2d7dcf84cc05f65f (patch) | |
| tree | eb7804834b13f210403efa77bf0f0ece0218584f /src/DevHive.Data/Interfaces/Repositories | |
| parent | e0c6b1a631fb50b2bb985a85ddf6af57cb76e09b (diff) | |
| download | DevHive-5514f1109cb3689fa81b29bb2d7dcf84cc05f65f.tar DevHive-5514f1109cb3689fa81b29bb2d7dcf84cc05f65f.tar.gz DevHive-5514f1109cb3689fa81b29bb2d7dcf84cc05f65f.zip | |
Extracted Interfaces from every DevHive.Data class; Tidied up the DevHive.Interfaces
Diffstat (limited to 'src/DevHive.Data/Interfaces/Repositories')
6 files changed, 122 insertions, 0 deletions
diff --git a/src/DevHive.Data/Interfaces/Repositories/ILanguageRepository.cs b/src/DevHive.Data/Interfaces/Repositories/ILanguageRepository.cs new file mode 100644 index 0000000..f1d7248 --- /dev/null +++ b/src/DevHive.Data/Interfaces/Repositories/ILanguageRepository.cs @@ -0,0 +1,14 @@ +using System; +using System.Threading.Tasks; +using DevHive.Data.Models; +using DevHive.Data.Repositories.Interfaces; + +namespace DevHive.Data.Interfaces.Repositories +{ + public interface ILanguageRepository : IRepository<Language> + { + Task<bool> DoesLanguageExistAsync(Guid id); + Task<bool> DoesLanguageNameExistAsync(string languageName); + Task<Language> GetByNameAsync(string name); + } +} diff --git a/src/DevHive.Data/Interfaces/Repositories/IPostRepository.cs b/src/DevHive.Data/Interfaces/Repositories/IPostRepository.cs new file mode 100644 index 0000000..913d8c4 --- /dev/null +++ b/src/DevHive.Data/Interfaces/Repositories/IPostRepository.cs @@ -0,0 +1,20 @@ +using System; +using System.Threading.Tasks; +using DevHive.Data.Models; +using DevHive.Data.Repositories.Interfaces; + +namespace DevHive.Data.Interfaces.Repositories +{ + public interface IPostRepository : IRepository<Post> + { + Task<bool> AddCommentAsync(Comment entity); + + Task<Comment> GetCommentByIdAsync(Guid id); + + Task<bool> EditCommentAsync(Comment newEntity); + + Task<bool> DeleteCommentAsync(Comment entity); + Task<bool> DoesCommentExist(Guid id); + Task<bool> DoesPostExist(Guid postId); + } +} diff --git a/src/DevHive.Data/Interfaces/Repositories/IRepository.cs b/src/DevHive.Data/Interfaces/Repositories/IRepository.cs new file mode 100644 index 0000000..40a78de --- /dev/null +++ b/src/DevHive.Data/Interfaces/Repositories/IRepository.cs @@ -0,0 +1,21 @@ +using System; +using System.Threading.Tasks; + +namespace DevHive.Data.Repositories.Interfaces +{ + public interface IRepository<TEntity> + where TEntity : class + { + //Add Entity to database + Task<bool> AddAsync(TEntity entity); + + //Find entity by id + Task<TEntity> GetByIdAsync(Guid id); + + //Modify Entity from database + Task<bool> EditAsync(TEntity newEntity); + + //Delete Entity from database + Task<bool> DeleteAsync(TEntity entity); + } +}
\ No newline at end of file diff --git a/src/DevHive.Data/Interfaces/Repositories/IRoleRepository.cs b/src/DevHive.Data/Interfaces/Repositories/IRoleRepository.cs new file mode 100644 index 0000000..e834369 --- /dev/null +++ b/src/DevHive.Data/Interfaces/Repositories/IRoleRepository.cs @@ -0,0 +1,15 @@ +using System; +using System.Threading.Tasks; +using DevHive.Data.Models; +using DevHive.Data.Repositories.Interfaces; + +namespace DevHive.Data.Interfaces.Repositories +{ + public interface IRoleRepository : IRepository<Role> + { + Task<Role> GetByNameAsync(string name); + + Task<bool> DoesNameExist(string name); + Task<bool> DoesRoleExist(Guid id); + } +} diff --git a/src/DevHive.Data/Interfaces/Repositories/ITechnologyRepository.cs b/src/DevHive.Data/Interfaces/Repositories/ITechnologyRepository.cs new file mode 100644 index 0000000..fb0ba20 --- /dev/null +++ b/src/DevHive.Data/Interfaces/Repositories/ITechnologyRepository.cs @@ -0,0 +1,14 @@ +using System; +using System.Threading.Tasks; +using DevHive.Data.Models; +using DevHive.Data.Repositories.Interfaces; + +namespace DevHive.Data.Interfaces.Repositories +{ + public interface ITechnologyRepository : IRepository<Technology> + { + Task<bool> DoesTechnologyExistAsync(Guid id); + Task<bool> DoesTechnologyNameExistAsync(string technologyName); + Task<Technology> GetByNameAsync(string name); + } +} diff --git a/src/DevHive.Data/Interfaces/Repositories/IUserRepository.cs b/src/DevHive.Data/Interfaces/Repositories/IUserRepository.cs new file mode 100644 index 0000000..3a22911 --- /dev/null +++ b/src/DevHive.Data/Interfaces/Repositories/IUserRepository.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using DevHive.Data.Models; +using DevHive.Data.Repositories.Interfaces; + +namespace DevHive.Data.Interfaces.Repositories +{ + 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> GetByUsernameAsync(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> EditUserLanguageAsync(User user, Language oldLang, Language newLang); + Task<bool> EditUserTechnologyAsync(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); + + 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); + } +} |
