예제 #1
0
        public async Task <IdentityResult> EditUserAsync(CreateOrUpdateUserRequest input)
        {
            var user = await _UserManager.FindByIdAsync(input.User.Id.ToString());

            if (user.UserName == input.User.UserName && user.Id != input.User.Id)
            {
                return(IdentityResult.Failed(new IdentityError
                {
                    Code = "UserNameAlreadyExist",
                    Description = "This user name is already exist!"
                }));
            }

            if (!string.IsNullOrEmpty(input.User.Password))
            {
                var changePasswordResult = await ChangePassword(user, input.User.Password);

                if (!changePasswordResult.Succeeded)
                {
                    return(changePasswordResult);
                }
            }

            return(await UpdateUser(input, user));
        }
예제 #2
0
 private async Task <IdentityResult> UpdateUser(CreateOrUpdateUserRequest input, User user)
 {
     user.UserName      = input.User.UserName;
     user.Email         = input.User.Email;
     user.SecurityStamp = Guid.NewGuid().ToString();
     user.UserRoleId    = input.GrantedRoleId;
     return(await _UserManager.UpdateAsync(user));
 }
예제 #3
0
        public async Task <IdentityResult> AddUserAsync(CreateOrUpdateUserRequest input)
        {
            var user = new User
            {
                Id       = input.User.Id,
                UserName = input.User.UserName,
                Email    = input.User.Email
            };

            return(await _UserManager.CreateAsync(user, input.User.Password));
        }
예제 #4
0
        public Task <BaseResponse <string> > CreateOrUpdateUser(CreateOrUpdateUserRequest request)
        {
            string id = "";

            if (!request.Data.Id.HasValue)
            {
                var itemNew = AutoMapper.Map <UserDto, SysUser>(request.Data);
                id = _repoUser.Insert(itemNew).Id.ToString();
            }
            else
            {
                var item = _repoUser.FindById(request.Data.Id.Value);
                item.Email    = request.Data.Email;
                item.Fullname = request.Data.Fullname;
                id            = _repoUser.Update(item).Id.ToString();
            }

            return(Task.FromResult(new BaseResponse <string>
            {
                Data = id
            }));
        }
예제 #5
0
        public async Task <IActionResult> CreateOrUpdate(Guid id, [FromBody] CreateOrUpdateUserRequest request)
        {
            if (request is null)
            {
                return(BadRequest());
            }

            if (!await _users.Find(new BsonDocument("_id", id)).AnyAsync())
            {
                await _bus.Publish <CreateUser>(new
                {
                    Id = id,
                    request.DisplayName,
                    request.FirstName,
                    request.LastName,
                    request.LoginName,
                    request.Email,
                    request.Avatar,
                    UserId
                });
            }
            else
            {
                await _bus.Publish <UpdateUser>(new
                {
                    Id             = id,
                    NewDisplayName = request.DisplayName,
                    NewFirstName   = request.FirstName,
                    NewLastName    = request.LastName,
                    request.LoginName,
                    NewEmail  = request.Email,
                    NewAvatar = request.Avatar,
                    UserId
                });
            }

            return(AcceptedAtRoute("GetUserById", new { id }, null));
        }