aboutsummaryrefslogtreecommitdiff
path: root/src/DevHive.Data/Repositories
diff options
context:
space:
mode:
authortranstrike <transtrike@gmail.com>2021-01-21 19:12:04 +0200
committertranstrike <transtrike@gmail.com>2021-01-21 19:12:04 +0200
commit9e86699c9b3aff17e0c4d19850b41b792a9625ef (patch)
tree8504470031e886e9defcb6399fc7365bab17ddff /src/DevHive.Data/Repositories
parent1001c3d5c6f979c56daf98e7ed82cee2ff09ab7f (diff)
downloadDevHive-9e86699c9b3aff17e0c4d19850b41b792a9625ef.tar
DevHive-9e86699c9b3aff17e0c4d19850b41b792a9625ef.tar.gz
DevHive-9e86699c9b3aff17e0c4d19850b41b792a9625ef.zip
Removed HTTP Patch; Refactored HTTP Put; Fixed Update bug
Diffstat (limited to 'src/DevHive.Data/Repositories')
-rw-r--r--src/DevHive.Data/Repositories/LanguageRepository.cs7
-rw-r--r--src/DevHive.Data/Repositories/TechnologyRepository.cs1
-rw-r--r--src/DevHive.Data/Repositories/UserRepository.cs15
3 files changed, 16 insertions, 7 deletions
diff --git a/src/DevHive.Data/Repositories/LanguageRepository.cs b/src/DevHive.Data/Repositories/LanguageRepository.cs
index 108b307..4c51cf3 100644
--- a/src/DevHive.Data/Repositories/LanguageRepository.cs
+++ b/src/DevHive.Data/Repositories/LanguageRepository.cs
@@ -20,8 +20,7 @@ namespace DevHive.Data.Repositories
public async Task<bool> AddAsync(Language entity)
{
- await this._context
- .Set<Language>()
+ await this._context.Languages
.AddAsync(entity);
return await this.SaveChangesAsync(this._context);
@@ -32,14 +31,14 @@ namespace DevHive.Data.Repositories
public async Task<Language> GetByIdAsync(Guid id)
{
- return await this._context
- .Set<Language>()
+ return await this._context.Languages
.FindAsync(id);
}
public async Task<Language> GetByNameAsync(string languageName)
{
return await this._context.Languages
+ .AsNoTracking()
.FirstOrDefaultAsync(x => x.Name == languageName);
}
#endregion
diff --git a/src/DevHive.Data/Repositories/TechnologyRepository.cs b/src/DevHive.Data/Repositories/TechnologyRepository.cs
index 390ad3f..a41d4fb 100644
--- a/src/DevHive.Data/Repositories/TechnologyRepository.cs
+++ b/src/DevHive.Data/Repositories/TechnologyRepository.cs
@@ -40,6 +40,7 @@ namespace DevHive.Data.Repositories
public async Task<Technology> GetByNameAsync(string technologyName)
{
return await this._context.Technologies
+ .AsNoTracking()
.FirstOrDefaultAsync(x => x.Name == technologyName);
}
#endregion
diff --git a/src/DevHive.Data/Repositories/UserRepository.cs b/src/DevHive.Data/Repositories/UserRepository.cs
index 3f9af70..c769f7e 100644
--- a/src/DevHive.Data/Repositories/UserRepository.cs
+++ b/src/DevHive.Data/Repositories/UserRepository.cs
@@ -6,6 +6,7 @@ using DevHive.Common.Models.Misc;
using DevHive.Data.Interfaces.Repositories;
using DevHive.Data.Models;
using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.ChangeTracking;
namespace DevHive.Data.Repositories
{
@@ -78,7 +79,9 @@ namespace DevHive.Data.Repositories
public async Task<User> GetByUsernameAsync(string username)
{
return await this._context.Users
- .Include(u => u.Roles)
+ .AsNoTracking()
+ .Include(x => x.Languages)
+ .Include(x => x.Technologies)
.FirstOrDefaultAsync(x => x.UserName == username);
}
@@ -107,9 +110,13 @@ namespace DevHive.Data.Repositories
#region Update
- public async Task<bool> EditAsync(User newEntity)
+ public async Task<bool> EditAsync(User entity)
{
- this._context.Update(newEntity);
+ User user = await this._context.Users
+ .FirstOrDefaultAsync(x => x.Id == entity.Id);
+
+ this._context.Update(user);
+ this._context.Entry(entity).CurrentValues.SetValues(entity);
return await this.SaveChangesAsync(this._context);
}
@@ -177,6 +184,7 @@ namespace DevHive.Data.Repositories
public async Task<bool> DoesUserExistAsync(Guid id)
{
return await this._context.Users
+ .AsNoTracking()
.AnyAsync(x => x.Id == id);
}
@@ -208,6 +216,7 @@ namespace DevHive.Data.Repositories
public bool DoesUserHaveThisUsername(Guid id, string username)
{
return this._context.Users
+ .AsNoTracking()
.Any(x => x.Id == id &&
x.UserName == username);
}