diff options
| author | Danail Dimitrov <danaildimitrov321@gmail.com> | 2021-01-28 17:09:57 +0200 |
|---|---|---|
| committer | Danail Dimitrov <danaildimitrov321@gmail.com> | 2021-01-28 17:09:57 +0200 |
| commit | e86de49bd18ef007202d5f2053d87ef9cdc6ba18 (patch) | |
| tree | 9f94cdfc3e0b7803208b0ca39c46c6130b2b269f /src/DevHive.Data/Repositories/UserRepository.cs | |
| parent | b13e1d473dc1c29925bd37db4c7265bb4dee350b (diff) | |
| parent | e632e9241e8afe530f6b37cb683b211769135c45 (diff) | |
| download | DevHive-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.cs | 37 |
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) { |
