|
|
|
@@ -161,24 +161,29 @@ namespace IRaCIS.Core.Application.Service
|
|
|
|
|
{
|
|
|
|
|
_userInfo.IsNotNeedInspection = true;
|
|
|
|
|
|
|
|
|
|
var userList = _userRoleRepository.Where().ToList();
|
|
|
|
|
|
|
|
|
|
foreach (var item in userList.GroupBy(t => t.EMail.Trim()))
|
|
|
|
|
if ((await _identityUserRepository.FirstOrDefaultAsync()) == null)
|
|
|
|
|
{
|
|
|
|
|
var emailUserIdList = item.Select(t => t.Id).ToList();
|
|
|
|
|
var userList = _userRoleRepository.Where().ToList();
|
|
|
|
|
|
|
|
|
|
var identityUserId = NewId.NextSequentialGuid();
|
|
|
|
|
foreach (var item in userList.GroupBy(t => t.EMail.Trim()))
|
|
|
|
|
{
|
|
|
|
|
var emailUserIdList = item.Select(t => t.Id).ToList();
|
|
|
|
|
|
|
|
|
|
var identityUser = _mapper.Map<IdentityUser>(item.FirstOrDefault());
|
|
|
|
|
var identityUserId = NewId.NextSequentialGuid();
|
|
|
|
|
|
|
|
|
|
identityUser.Id = identityUserId;
|
|
|
|
|
var identityUser = _mapper.Map<IdentityUser>(item.FirstOrDefault());
|
|
|
|
|
|
|
|
|
|
await _identityUserRepository.AddAsync(identityUser);
|
|
|
|
|
identityUser.Id = identityUserId;
|
|
|
|
|
|
|
|
|
|
await _userRoleRepository.BatchUpdateNoTrackingAsync(t => emailUserIdList.Contains(t.Id), u => new UserRole() { IdentityUserId = identityUserId });
|
|
|
|
|
await _identityUserRepository.AddAsync(identityUser);
|
|
|
|
|
|
|
|
|
|
await _userRoleRepository.BatchUpdateNoTrackingAsync(t => emailUserIdList.Contains(t.Id), u => new UserRole() { IdentityUserId = identityUserId });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await _identityUserRepository.SaveChangesAsync();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await _identityUserRepository.SaveChangesAsync();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return ResponseOutput.Ok();
|
|
|
|
|
}
|
|
|
|
@@ -192,37 +197,43 @@ namespace IRaCIS.Core.Application.Service
|
|
|
|
|
{
|
|
|
|
|
_userInfo.IsNotNeedInspection = true;
|
|
|
|
|
|
|
|
|
|
var list = _trialUserRoleReposiotry.Where().Select(t => new { t.TrialId, t.UserRole.IdentityUserId, t.UserId, t.JoinTime, t.RemoveTime }).ToList();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
foreach (var item in list.GroupBy(t => new { t.IdentityUserId, t.TrialId }))
|
|
|
|
|
if ((await _trialIdentityUserRepository.FirstOrDefaultAsync()) == null)
|
|
|
|
|
{
|
|
|
|
|
var list = _trialUserRoleReposiotry.Where().Select(t => new { t.TrialId, t.UserRole.IdentityUserId, t.UserId, t.JoinTime, t.RemoveTime }).ToList();
|
|
|
|
|
|
|
|
|
|
var id = NewId.NextSequentialGuid();
|
|
|
|
|
|
|
|
|
|
var userRoleList = item.ToList();
|
|
|
|
|
|
|
|
|
|
var userIdList = item.Select(t => t.UserId).ToList();
|
|
|
|
|
|
|
|
|
|
var first = userRoleList.First();
|
|
|
|
|
|
|
|
|
|
var haveJoin = userRoleList.Any(t => t.JoinTime != null);
|
|
|
|
|
|
|
|
|
|
if (haveJoin)
|
|
|
|
|
foreach (var item in list.GroupBy(t => new { t.IdentityUserId, t.TrialId }))
|
|
|
|
|
{
|
|
|
|
|
await _trialIdentityUserRepository.AddAsync(new TrialIdentityUser() { Id = id, IdentityUserId = item.Key.IdentityUserId, TrialId = item.Key.TrialId, JoinTime = userRoleList.Min(t => t.JoinTime) });
|
|
|
|
|
|
|
|
|
|
var id = NewId.NextSequentialGuid();
|
|
|
|
|
|
|
|
|
|
var userRoleList = item.ToList();
|
|
|
|
|
|
|
|
|
|
var userIdList = item.Select(t => t.UserId).ToList();
|
|
|
|
|
|
|
|
|
|
var first = userRoleList.First();
|
|
|
|
|
|
|
|
|
|
var haveJoin = userRoleList.Any(t => t.JoinTime != null);
|
|
|
|
|
|
|
|
|
|
if (haveJoin)
|
|
|
|
|
{
|
|
|
|
|
await _trialIdentityUserRepository.AddAsync(new TrialIdentityUser() { Id = id, IdentityUserId = item.Key.IdentityUserId, TrialId = item.Key.TrialId, JoinTime = userRoleList.Min(t => t.JoinTime) });
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
await _trialIdentityUserRepository.AddAsync(new TrialIdentityUser() { Id = id, IdentityUserId = item.Key.IdentityUserId, TrialId = item.Key.TrialId, RemoveTime = userRoleList.Max(t => t.RemoveTime) });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await _trialUserRoleReposiotry.BatchUpdateNoTrackingAsync(t => t.TrialId == item.Key.TrialId && userIdList.Contains(t.UserId), u => new TrialUserRole() { TrialUserId = id });
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
await _trialIdentityUserRepository.AddAsync(new TrialIdentityUser() { Id = id, IdentityUserId = item.Key.IdentityUserId, TrialId = item.Key.TrialId, RemoveTime = userRoleList.Max(t => t.RemoveTime) });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await _trialUserRoleReposiotry.BatchUpdateNoTrackingAsync(t => t.TrialId == item.Key.TrialId && userIdList.Contains(t.UserId), u => new TrialUserRole() { TrialUserId = id });
|
|
|
|
|
|
|
|
|
|
await _trialIdentityUserRepository.SaveChangesAsync();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await _trialIdentityUserRepository.SaveChangesAsync();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return ResponseOutput.Ok();
|
|
|
|
|
}
|
|
|
|
|