From 4f838ea0411445f6d7757273515062f2faac1ee7 Mon Sep 17 00:00:00 2001 From: Danail Dimitrov Date: Mon, 11 Jan 2021 22:17:07 +0200 Subject: Added Interfaces for all repository classes --- .../Repositories/Contracts/ILanguageRepository.cs | 13 +++++++++++ .../Repositories/Contracts/IPostRepository.cs | 21 +++++++++++++++++ .../Repositories/Contracts/IRepository.cs | 21 +++++++++++++++++ .../Repositories/Contracts/IRoleRepository.cs | 15 +++++++++++++ .../Contracts/ITechnologyRepository.cs | 13 +++++++++++ .../Repositories/Contracts/IUserRepository.cs | 26 ++++++++++++++++++++++ 6 files changed, 109 insertions(+) create mode 100644 src/DevHive.Data/Repositories/Contracts/ILanguageRepository.cs create mode 100644 src/DevHive.Data/Repositories/Contracts/IPostRepository.cs create mode 100644 src/DevHive.Data/Repositories/Contracts/IRepository.cs create mode 100644 src/DevHive.Data/Repositories/Contracts/IRoleRepository.cs create mode 100644 src/DevHive.Data/Repositories/Contracts/ITechnologyRepository.cs create mode 100644 src/DevHive.Data/Repositories/Contracts/IUserRepository.cs (limited to 'src/DevHive.Data/Repositories/Contracts') diff --git a/src/DevHive.Data/Repositories/Contracts/ILanguageRepository.cs b/src/DevHive.Data/Repositories/Contracts/ILanguageRepository.cs new file mode 100644 index 0000000..e44d27b --- /dev/null +++ b/src/DevHive.Data/Repositories/Contracts/ILanguageRepository.cs @@ -0,0 +1,13 @@ +using DevHive.Data.Models; +using System; +using System.Threading.Tasks; + +namespace DevHive.Data.Repositories.Contracts +{ + public interface ILanguageRepository : IRepository + { + public Task DoesLanguageNameExist(string languageName); + + public Task DoesLanguageExist(Guid id); + } +} diff --git a/src/DevHive.Data/Repositories/Contracts/IPostRepository.cs b/src/DevHive.Data/Repositories/Contracts/IPostRepository.cs new file mode 100644 index 0000000..930138a --- /dev/null +++ b/src/DevHive.Data/Repositories/Contracts/IPostRepository.cs @@ -0,0 +1,21 @@ +using DevHive.Data.Models; +using System; +using System.Threading.Tasks; + +namespace DevHive.Data.Repositories.Contracts +{ + public interface IPostRepository : IRepository + { + public Task AddCommentAsync(Comment entity); + + public Task GetCommentByIdAsync(Guid id); + + public Task EditCommentAsync(Comment newEntity); + + public Task DeleteCommentAsync(Comment entity); + + public Task DoesPostExist(Guid postId); + + public Task DoesCommentExist(Guid id); + } +} diff --git a/src/DevHive.Data/Repositories/Contracts/IRepository.cs b/src/DevHive.Data/Repositories/Contracts/IRepository.cs new file mode 100644 index 0000000..37c5170 --- /dev/null +++ b/src/DevHive.Data/Repositories/Contracts/IRepository.cs @@ -0,0 +1,21 @@ +using System; +using System.Threading.Tasks; + +namespace DevHive.Data.Repositories.Contracts +{ + public interface IRepository + where TEntity : class + { + //Add Entity to database + Task AddAsync(TEntity entity); + + //Find entity by id + Task GetByIdAsync(Guid id); + + //Modify Entity from database + Task EditAsync(TEntity newEntity); + + //Delete Entity from database + Task DeleteAsync(TEntity entity); + } +} \ No newline at end of file diff --git a/src/DevHive.Data/Repositories/Contracts/IRoleRepository.cs b/src/DevHive.Data/Repositories/Contracts/IRoleRepository.cs new file mode 100644 index 0000000..6cb8a4e --- /dev/null +++ b/src/DevHive.Data/Repositories/Contracts/IRoleRepository.cs @@ -0,0 +1,15 @@ +using DevHive.Data.Models; +using System; +using System.Threading.Tasks; + +namespace DevHive.Data.Repositories.Contracts +{ + public interface IRoleRepository : IRepository + { + public Task GetByNameAsync(string name); + + public Task DoesNameExist(string name); + + public Task DoesRoleExist(Guid id); + } +} diff --git a/src/DevHive.Data/Repositories/Contracts/ITechnologyRepository.cs b/src/DevHive.Data/Repositories/Contracts/ITechnologyRepository.cs new file mode 100644 index 0000000..3c4a6b6 --- /dev/null +++ b/src/DevHive.Data/Repositories/Contracts/ITechnologyRepository.cs @@ -0,0 +1,13 @@ +using DevHive.Data.Models; +using System; +using System.Threading.Tasks; + +namespace DevHive.Data.Repositories.Contracts +{ + public interface ITechnologyRepository : IRepository + { + public Task DoesTechnologyNameExist(string technologyName); + + public Task DoesTechnologyExist(Guid id); + } +} diff --git a/src/DevHive.Data/Repositories/Contracts/IUserRepository.cs b/src/DevHive.Data/Repositories/Contracts/IUserRepository.cs new file mode 100644 index 0000000..74c4486 --- /dev/null +++ b/src/DevHive.Data/Repositories/Contracts/IUserRepository.cs @@ -0,0 +1,26 @@ +using DevHive.Data.Models; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace DevHive.Data.Repositories.Contracts +{ + public interface IUserRepository : IRepository + { + public Task AddFriendAsync(User user, User friend); + + public IEnumerable QueryAll(); + + public Task GetByUsername(string username); + + public Task RemoveFriendAsync(User user, User friend); + + public bool DoesUserExist(Guid id); + + public bool DoesUserHaveThisUsername(Guid id, string username); + + public Task DoesUsernameExist(string username); + + public Task DoesEmailExist(string email); + } +} -- cgit v1.2.3