Skip to content
Snippets Groups Projects
Commit a95a4461 authored by Kimia Beheshti's avatar Kimia Beheshti
Browse files

Merge branch 'Topic/1046-MergeUserProperties' into 'Product/1044-mergeUserProperties'

Update: Improve merge of user properties

See merge request coscine/api/sts!63
parents 3de229c4 9aed0caf
No related branches found
No related tags found
2 merge requests!64Update: Improve merge of user properties,!63Update: Improve merge of user properties
......@@ -5,6 +5,9 @@ using Coscine.Configuration;
using Coscine.Database.DataModel;
using Coscine.Database.Models;
using LinqToDB.Tools;
using Microsoft.IdentityModel.Protocols.WSFederation.Metadata;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Coscine.Api.STS.Utils
......@@ -46,6 +49,7 @@ namespace Coscine.Api.STS.Utils
MergeUserDiscipline(mergeIntoUser, mergeFromUser);
MergeResourceOwner(mergeIntoUser, mergeFromUser);
MergeTOSAccepted(mergeIntoUser, mergeFromUser);
MergeUserProperties(mergeIntoUser, mergeFromUser);
// ExternalId gets merged last, in case something goes wrong
MergeExternalId(mergeIntoUser, mergeFromUser);
DeleteUser(mergeFromUser);
......@@ -169,6 +173,41 @@ namespace Coscine.Api.STS.Utils
}
}
private void MergeUserProperties(User mergeIntoUser, User mergeFromUser)
{
if (string.IsNullOrEmpty(mergeIntoUser.EmailAddress) && !string.IsNullOrEmpty(mergeFromUser.EmailAddress))
{
mergeIntoUser.EmailAddress = mergeFromUser.EmailAddress;
}
if (string.IsNullOrEmpty(mergeIntoUser.Surname) && !string.IsNullOrEmpty(mergeFromUser.Surname))
{
mergeIntoUser.Surname = mergeIntoUser.Surname;
}
if (string.IsNullOrEmpty(mergeIntoUser.Givenname) && !string.IsNullOrEmpty(mergeFromUser.Givenname))
{
mergeIntoUser.Givenname = mergeIntoUser.Givenname;
}
if (mergeIntoUser.TitleId == null && mergeFromUser.TitleId != null)
{
mergeIntoUser.TitleId = mergeFromUser.TitleId;
}
if (string.IsNullOrEmpty(mergeIntoUser.Organization) && !string.IsNullOrEmpty(mergeFromUser.Organization))
{
mergeIntoUser.Organization = mergeFromUser.Organization;
}
if (string.IsNullOrEmpty(mergeIntoUser.Institute) && !string.IsNullOrEmpty(mergeFromUser.Institute))
{
mergeIntoUser.Institute = mergeFromUser.Institute;
}
_userModel.Update(mergeIntoUser);
}
private void DeleteUser(User user)
{
_userModel.Delete(user);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment