aboutsummaryrefslogtreecommitdiff
path: root/src/DevHive.Data
diff options
context:
space:
mode:
authortranstrike <transtrike@gmail.com>2021-01-13 11:05:26 +0200
committertranstrike <transtrike@gmail.com>2021-01-13 11:05:26 +0200
commit6deaa6edcd8e347d5ed28ee3389cb8712cc64ea3 (patch)
tree620b8867f3b5f96aa76c0e5e38e985db91498696 /src/DevHive.Data
parent8a18cdf741bed465b4b24626e15370c33365cf11 (diff)
downloadDevHive-6deaa6edcd8e347d5ed28ee3389cb8712cc64ea3.tar
DevHive-6deaa6edcd8e347d5ed28ee3389cb8712cc64ea3.tar.gz
DevHive-6deaa6edcd8e347d5ed28ee3389cb8712cc64ea3.zip
The return of the interfaces
Diffstat (limited to 'src/DevHive.Data')
-rw-r--r--src/DevHive.Data/Interfaces/ILanguageRepository.cs13
-rw-r--r--src/DevHive.Data/Interfaces/IPostRepository.cs20
-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.cs15
-rw-r--r--src/DevHive.Data/Interfaces/ITechnologyRepository.cs13
-rw-r--r--src/DevHive.Data/Interfaces/IUserRepository.cs37
-rw-r--r--src/DevHive.Data/Repositories/LanguageRepository.cs4
-rw-r--r--src/DevHive.Data/Repositories/PostRepository.cs13
-rw-r--r--src/DevHive.Data/Repositories/RoleRepository.cs5
-rw-r--r--src/DevHive.Data/Repositories/TechnologyRepository.cs9
-rw-r--r--src/DevHive.Data/Repositories/UserRepository.cs7
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);