diff options
Diffstat (limited to 'src/DevHive.Data')
| -rw-r--r-- | src/DevHive.Data/Interfaces/ILanguageRepository.cs | 13 | ||||
| -rw-r--r-- | src/DevHive.Data/Interfaces/IPostRepository.cs | 20 | ||||
| -rw-r--r-- | src/DevHive.Data/Interfaces/IRepository.cs (renamed from src/DevHive.Data/Repositories/IRepository.cs) | 2 | ||||
| -rw-r--r-- | src/DevHive.Data/Interfaces/IRoleRepository.cs | 15 | ||||
| -rw-r--r-- | src/DevHive.Data/Interfaces/ITechnologyRepository.cs | 13 | ||||
| -rw-r--r-- | src/DevHive.Data/Interfaces/IUserRepository.cs | 37 | ||||
| -rw-r--r-- | src/DevHive.Data/Repositories/LanguageRepository.cs | 4 | ||||
| -rw-r--r-- | src/DevHive.Data/Repositories/PostRepository.cs | 13 | ||||
| -rw-r--r-- | src/DevHive.Data/Repositories/RoleRepository.cs | 5 | ||||
| -rw-r--r-- | src/DevHive.Data/Repositories/TechnologyRepository.cs | 9 | ||||
| -rw-r--r-- | src/DevHive.Data/Repositories/UserRepository.cs | 7 |
11 files changed, 120 insertions, 18 deletions
diff --git a/src/DevHive.Data/Interfaces/ILanguageRepository.cs b/src/DevHive.Data/Interfaces/ILanguageRepository.cs new file mode 100644 index 0000000..40dd461 --- /dev/null +++ b/src/DevHive.Data/Interfaces/ILanguageRepository.cs @@ -0,0 +1,13 @@ +using System; +using System.Threading.Tasks; +using DevHive.Data.Models; +using DevHive.Data.Repositories.Interfaces; + +namespace DevHive.Data.Interfaces +{ + public interface ILanguageRepository : IRepository<Language> + { + Task<bool> DoesLanguageExistAsync(Guid id); + Task<bool> DoesLanguageNameExistAsync(string languageName); + } +}
\ No newline at end of file diff --git a/src/DevHive.Data/Interfaces/IPostRepository.cs b/src/DevHive.Data/Interfaces/IPostRepository.cs new file mode 100644 index 0000000..9c75ecc --- /dev/null +++ b/src/DevHive.Data/Interfaces/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 +{ + 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); + } +}
\ No newline at end of file diff --git a/src/DevHive.Data/Repositories/IRepository.cs b/src/DevHive.Data/Interfaces/IRepository.cs index 920ba13..40a78de 100644 --- a/src/DevHive.Data/Repositories/IRepository.cs +++ b/src/DevHive.Data/Interfaces/IRepository.cs @@ -1,7 +1,7 @@ using System; using System.Threading.Tasks; -namespace DevHive.Data.Repositories +namespace DevHive.Data.Repositories.Interfaces { public interface IRepository<TEntity> where TEntity : class diff --git a/src/DevHive.Data/Interfaces/IRoleRepository.cs b/src/DevHive.Data/Interfaces/IRoleRepository.cs new file mode 100644 index 0000000..48761db --- /dev/null +++ b/src/DevHive.Data/Interfaces/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 +{ + public interface IRoleRepository : IRepository<Role> + { + Task<Role> GetByNameAsync(string name); + + Task<bool> DoesNameExist(string name); + Task<bool> DoesRoleExist(Guid id); + } +}
\ No newline at end of file diff --git a/src/DevHive.Data/Interfaces/ITechnologyRepository.cs b/src/DevHive.Data/Interfaces/ITechnologyRepository.cs new file mode 100644 index 0000000..7c126a4 --- /dev/null +++ b/src/DevHive.Data/Interfaces/ITechnologyRepository.cs @@ -0,0 +1,13 @@ +using System; +using System.Threading.Tasks; +using DevHive.Data.Models; +using DevHive.Data.Repositories.Interfaces; + +namespace DevHive.Data.Interfaces +{ + public interface ITechnologyRepository : IRepository<Technology> + { + Task<bool> DoesTechnologyExistAsync(Guid id); + Task<bool> DoesTechnologyNameExist(string technologyName); + } +}
\ No newline at end of file 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 diff --git a/src/DevHive.Data/Repositories/LanguageRepository.cs b/src/DevHive.Data/Repositories/LanguageRepository.cs index 5d8217a..c30d3bb 100644 --- a/src/DevHive.Data/Repositories/LanguageRepository.cs +++ b/src/DevHive.Data/Repositories/LanguageRepository.cs @@ -1,13 +1,13 @@ using System; -using System.Linq; using System.Threading.Tasks; using DevHive.Common.Models.Misc; +using DevHive.Data.Interfaces; using DevHive.Data.Models; using Microsoft.EntityFrameworkCore; namespace DevHive.Data.Repositories { - public class LanguageRepository : IRepository<Language> + public class LanguageRepository : ILanguageRepository { private readonly DevHiveContext _context; diff --git a/src/DevHive.Data/Repositories/PostRepository.cs b/src/DevHive.Data/Repositories/PostRepository.cs index 002fb17..f5e9b7b 100644 --- a/src/DevHive.Data/Repositories/PostRepository.cs +++ b/src/DevHive.Data/Repositories/PostRepository.cs @@ -1,12 +1,13 @@ using System; using System.Threading.Tasks; using DevHive.Common.Models.Misc; +using DevHive.Data.Interfaces; using DevHive.Data.Models; using Microsoft.EntityFrameworkCore; namespace DevHive.Data.Repositories { - public class PostRepository : IRepository<Post> + public class PostRepository : IPostRepository { private readonly DevHiveContext _context; @@ -52,9 +53,9 @@ namespace DevHive.Data.Repositories //Update public async Task<bool> EditAsync(Post newPost) { - this._context - .Set<Post>() - .Update(newPost); + this._context + .Set<Post>() + .Update(newPost); return await RepositoryMethods.SaveChangesAsync(this._context); } @@ -77,7 +78,7 @@ namespace DevHive.Data.Repositories return await RepositoryMethods.SaveChangesAsync(this._context); } - + public async Task<bool> DeleteCommentAsync(Comment entity) { this._context @@ -86,7 +87,7 @@ namespace DevHive.Data.Repositories return await RepositoryMethods.SaveChangesAsync(this._context); } - + #region Validations public async Task<bool> DoesPostExist(Guid postId) diff --git a/src/DevHive.Data/Repositories/RoleRepository.cs b/src/DevHive.Data/Repositories/RoleRepository.cs index 0ca1646..4cd5b79 100644 --- a/src/DevHive.Data/Repositories/RoleRepository.cs +++ b/src/DevHive.Data/Repositories/RoleRepository.cs @@ -1,12 +1,13 @@ using System; using System.Threading.Tasks; using DevHive.Common.Models.Misc; +using DevHive.Data.Interfaces; using DevHive.Data.Models; using Microsoft.EntityFrameworkCore; namespace DevHive.Data.Repositories { - public class RoleRepository : IRepository<Role> + public class RoleRepository : IRoleRepository { private readonly DevHiveContext _context; @@ -52,7 +53,7 @@ namespace DevHive.Data.Repositories return await RepositoryMethods.SaveChangesAsync(this._context); } - + //Delete public async Task<bool> DeleteAsync(Role entity) { diff --git a/src/DevHive.Data/Repositories/TechnologyRepository.cs b/src/DevHive.Data/Repositories/TechnologyRepository.cs index 21d69a3..a8208b6 100644 --- a/src/DevHive.Data/Repositories/TechnologyRepository.cs +++ b/src/DevHive.Data/Repositories/TechnologyRepository.cs @@ -1,13 +1,14 @@ using System; using System.Threading.Tasks; using DevHive.Common.Models.Misc; +using DevHive.Data.Interfaces; using DevHive.Data.Models; using Microsoft.EntityFrameworkCore; namespace DevHive.Data.Repositories { - public class TechnologyRepository : IRepository<Technology> + public class TechnologyRepository : ITechnologyRepository { private readonly DevHiveContext _context; @@ -42,9 +43,9 @@ namespace DevHive.Data.Repositories public async Task<bool> EditAsync(Technology newEntity) { - this._context - .Set<Technology>() - .Update(newEntity); + this._context + .Set<Technology>() + .Update(newEntity); return await RepositoryMethods.SaveChangesAsync(this._context); } diff --git a/src/DevHive.Data/Repositories/UserRepository.cs b/src/DevHive.Data/Repositories/UserRepository.cs index 64a81ae..1f29bb5 100644 --- a/src/DevHive.Data/Repositories/UserRepository.cs +++ b/src/DevHive.Data/Repositories/UserRepository.cs @@ -3,12 +3,13 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using DevHive.Common.Models.Misc; +using DevHive.Data.Interfaces; using DevHive.Data.Models; using Microsoft.EntityFrameworkCore; namespace DevHive.Data.Repositories { - public class UserRepository : IRepository<User> + public class UserRepository : IUserRepository { private readonly DevHiveContext _context; @@ -91,7 +92,7 @@ namespace DevHive.Data.Repositories return user.Langauges .FirstOrDefault(x => x.Id == language.Id); } - + public IList<Technology> GetUserTechnologies(User user) { return user.Technologies; @@ -220,7 +221,7 @@ namespace DevHive.Data.Repositories { return user.Friends.Count >= 1; } - + public bool DoesUserHaveThisLanguage(User user, Language language) { return user.Langauges.Contains(language); |
