aboutsummaryrefslogtreecommitdiff
path: root/src/DevHive.Data/Repositories/UserRepository.cs
diff options
context:
space:
mode:
authorDanail Dimitrov <danaildimitrov321@gmail.com>2021-01-28 17:09:57 +0200
committerDanail Dimitrov <danaildimitrov321@gmail.com>2021-01-28 17:09:57 +0200
commite86de49bd18ef007202d5f2053d87ef9cdc6ba18 (patch)
tree9f94cdfc3e0b7803208b0ca39c46c6130b2b269f /src/DevHive.Data/Repositories/UserRepository.cs
parentb13e1d473dc1c29925bd37db4c7265bb4dee350b (diff)
parente632e9241e8afe530f6b37cb683b211769135c45 (diff)
downloadDevHive-e86de49bd18ef007202d5f2053d87ef9cdc6ba18.tar
DevHive-e86de49bd18ef007202d5f2053d87ef9cdc6ba18.tar.gz
DevHive-e86de49bd18ef007202d5f2053d87ef9cdc6ba18.zip
Merge branch 'dev' of https://github.com/Team-Kaleidoscope/DevHive into dev
Diffstat (limited to 'src/DevHive.Data/Repositories/UserRepository.cs')
-rw-r--r--src/DevHive.Data/Repositories/UserRepository.cs37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/DevHive.Data/Repositories/UserRepository.cs b/src/DevHive.Data/Repositories/UserRepository.cs
index 57ae146..fe46226 100644
--- a/src/DevHive.Data/Repositories/UserRepository.cs
+++ b/src/DevHive.Data/Repositories/UserRepository.cs
@@ -1,9 +1,11 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using System.Linq;
using System.Threading.Tasks;
using DevHive.Data.Interfaces.Repositories;
using DevHive.Data.Models;
+using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
namespace DevHive.Data.Repositories
@@ -48,6 +50,41 @@ namespace DevHive.Data.Repositories
}
#endregion
+ #region Update
+ public override async Task<bool> EditAsync(Guid id, User newEntity)
+ {
+ User user = await this.GetByIdAsync(id);
+
+ user.Languages.Clear();
+ foreach (var lang in newEntity.Languages)
+ user.Languages.Add(lang);
+
+ user.Roles.Clear();
+ foreach (var role in newEntity.Roles)
+ user.Roles.Add(role);
+
+ foreach (var friend in user.Friends)
+ {
+ friend.Friends.Remove(user);
+ this._context.Entry(friend).State = EntityState.Modified;
+ }
+ user.Friends.Clear();
+ foreach (var friend in newEntity.Friends)
+ {
+ friend.Friends.Add(user);
+ user.Friends.Add(friend);
+ }
+
+ user.Technologies.Clear();
+ foreach (var tech in newEntity.Technologies)
+ user.Technologies.Add(tech);
+
+ this._context.Entry(user).State = EntityState.Modified;
+
+ return await this.SaveChangesAsync(this._context);
+ }
+ #endregion
+
#region Validations
public async Task<bool> DoesUserExistAsync(Guid id)
{