Ejemplo n.º 1
0
        public async Task <IdentityUserDto> UpdateAsync(Guid id, BaseIdentityUserUpdateDto input)
        {
            var user = await UserManager.GetByIdAsync(id);

            user.ConcurrencyStamp = input.ConcurrencyStamp;

            (await UserManager.SetUserNameAsync(user, input.UserName)).CheckErrors();

            await UpdateUserByInput(user, input);

            input.MapExtraPropertiesTo(user);

            (await UserManager.UpdateAsync(user)).CheckErrors();

            if (!input.Password.IsNullOrEmpty())
            {
                (await UserManager.RemovePasswordAsync(user)).CheckErrors();
                (await UserManager.AddPasswordAsync(user, input.Password)).CheckErrors();
            }

            var dto = ObjectMapper.Map <IdentityUser, IdentityUserDto>(user);

            await _userJobsRepository.DeleteAsync(_ => _.UserId == id);

            foreach (var jid in input.JobIds)
            {
                await _userJobsRepository.InsertAsync(new UserJob(CurrentTenant.Id, id, jid));
            }

            await _userOrgsRepository.DeleteAsync(_ => _.UserId == id);

            foreach (var oid in input.OrganizationIds)
            {
                await _userOrgsRepository.InsertAsync(new UserOrganization(CurrentTenant.Id, id, oid));
            }

            await CurrentUnitOfWork.SaveChangesAsync();

            return(dto);
        }
Ejemplo n.º 2
0
 public Task <IdentityUserDto> UpdateAsync(Guid id, BaseIdentityUserUpdateDto input)
 {
     return(_userAppService.UpdateAsync(id, input));
 }