예제 #1
0
        public async Task <UserProfileResponseModel> UpdateUser(UserUpdateRequestModel model)
        {
            var dbUser = await _userRepository.GetExists(u => u.Email == model.Email);

            if (dbUser == false)
            {
                return(null);
            }

            var existUser = await _userRepository.GetUserByEmail(model.Email);

            existUser.FullName = model.FullName;
            existUser.Password = model.Password;

            var updatedUser = await _userRepository.Update(existUser);

            UserProfileResponseModel response = new UserProfileResponseModel
            {
                Id       = updatedUser.Id,
                Email    = updatedUser.Email,
                FullName = updatedUser.FullName,
                JoinedOn = updatedUser.JoinedOn,
            };

            return(response);
        }
예제 #2
0
        public async Task <ResponseModel> UpdateProfileAsync(UserUpdateRequestModel model)
        {
            var user = await _userManager.Users
                       .Include(x => x.UserRoles)
                       .ThenInclude(x => x.Role)
                       .FirstOrDefaultAsync(x => x.PhoneNumber == model.PhoneNumber);

            if (user == null)
            {
                return(new ResponseModel()
                {
                    StatusCode = System.Net.HttpStatusCode.NotFound,
                    Message = "Tài khoản này đã bị ban hoặc không tìm thấy"
                });
            }

            user.Name        = model.Name ?? user.Name;
            user.Email       = model.Email ?? user.Email;
            user.Address     = model.Address ?? user.Address;
            user.DeviceToken = model.DeviceToken ?? user.DeviceToken;

            await _userManager.UpdateAsync(user);

            return(new ResponseModel()
            {
                StatusCode = System.Net.HttpStatusCode.OK,
                Data = new UserBaseViewModel(user)
            });
        }
예제 #3
0
        public async Task <IActionResult> UpdateProfile([FromBody] UserUpdateRequestModel model)
        {
            var phoneNumber = User.FindFirst(ClaimTypes.NameIdentifier).Value;

            model.PhoneNumber = phoneNumber;
            var responseModel = await _identityService.UpdateProfileAsync(model);

            return(new CustomActionResult(responseModel));
        }
예제 #4
0
        public async Task <IActionResult> UpdateUser([FromBody] UserUpdateRequestModel model)
        {
            var user = await _userService.UpdateUser(model);

            if (user == null)
            {
                return(NotFound("User email does not exist"));
            }
            return(Ok(user));
        }
예제 #5
0
        public UserDto PutUser(Guid key, UserUpdateRequestModel requestModel) {

            var user = _membershipService.GetUser(key);
            if (user == null) {

                throw new HttpResponseException(HttpStatusCode.NotFound);
            }

            var userWithRoles = _membershipService.UpdateUser(
                user.User, requestModel.Name, requestModel.Email);

            return userWithRoles.ToUserDto();
        }
예제 #6
0
        public async Task <User> UpdateUser(UserUpdateRequestModel userRequestModel)
        {
            var user = await _userRepository.GetById(userRequestModel.Id);

            user.Email    = userRequestModel.Email;
            user.FullName = userRequestModel.FullName;
            user.MobileNo = userRequestModel.MobileNo;
            if (userRequestModel.Password != null)
            {
                user.Password = userRequestModel.Password;
            }
            return(await _userRepository.Update(user));
        }
예제 #7
0
        // take in model to create user entity to send to repository
        public async Task <bool> UpdateUser(UserUpdateRequestModel model)
        {
            var updatedUser = new User
            {
                Id       = model.Id,
                Email    = model.Email,
                Password = model.Password,
                Fullname = model.Fullname,
                JoinedOn = model.JoinedOn
            };
            await _userRepository.UpdateAsync(updatedUser);

            return(true);
        }
예제 #8
0
        public UserDto PutUser(Guid key, UserUpdateRequestModel requestModel)
        {
            var user = _membershipService.GetUser(key);

            if (user == null)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }

            var userWithRoles = _membershipService.UpdateUser(
                user.User, requestModel.Name, requestModel.Email);

            return(userWithRoles.ToUserDto());
        }
예제 #9
0
        public void UpdateUser(UserUpdateRequestModel um)
        {
            //List<string> q = new List<string>();
            //int i = 0;
            //um.Columns.ForEach(x =>
            //{
            //    q.Add(x + " = " + "@" + i);
            //    i++;
            //});
            //var sql = "update tblusers set " + string.Join(", ", q.ToArray()) + "  where userid = @" + i;

            //um.Values.Add(Convert.ToString(um.UserId));

            //Da.Update<UserModel>(sql, um.Values.ToArray());
        }
예제 #10
0
        public ActionResult <CommonResponeModel> Update(UserUpdateRequestModel model)
        {
            var user = userRepository.GetById(model.Id);

            if (user != null)
            {
                if (userRepository.IsExistUsername(model.Username) && user.Username != model.Username)
                {
                    string message = UserMessageGlobal.ExistUsername;
                    Result = new ErrorResult(ActionType.Login, message);
                    return(GetCommonRespone());
                }
                else
                {
                    if (model.Password == user.Password) //Not change password
                    {
                        user.Password = user.Password;   //update to old password
                    }
                    else //change password
                    {
                        user.MapFrom(model);
                        user.InitBeforeSave(RequestUsername, InitType.Update);
                        user.InitDefault();
                        user.SetPassword();
                    }

                    int result = userRepository.Update(user);

                    if (result > 0)
                    {
                        Result = new SuccessResult(ActionType.Edit, AppGlobal.EditSuccess);
                        Data   = user;
                    }
                    else
                    {
                        Result = new ErrorResult(ActionType.Edit, AppGlobal.EditError);
                        Data   = user;
                    }
                }
            }
            else
            {
                string message = UserMessageGlobal.NotExistUser;
                Result = new ErrorResult(ActionType.Login, message);
            }
            return(GetCommonRespone());
        }
예제 #11
0
        public async Task <string> UpdateUser(UserUpdateRequestModel userUpdateRequestModel)
        {
            //try
            //{
            var user       = _mapper.Map <User>(userUpdateRequestModel);
            var userMobile = _mapper.Map <List <UserMobileNumber> >(userUpdateRequestModel.UserMobileNumbers);
            await _userRepository.UpdateAsync(user);

            await _userMobileRepository.UpdateRangeAsync(userMobile);

            return(ResultStatus.SUCCESS);
            //}
            //catch (Exception)
            //{

            //return "FAILED";
            //}
        }
예제 #12
0
            Returns_400_If_Request_Authorized_But_Invalid()
            {
                // Arrange
                Guid[] keys = new[] {
                    Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid()
                };

                var config = IntegrationTestHelper
                             .GetInitialIntegrationTestConfig(
                    GetInitialServices(GetMembershipService(keys)));

                // This is a not valid user request to update one
                var userRequestModel = new UserUpdateRequestModel {
                    Name  = "ANameWhichIsMoreThan50CharsANameWhichIsMoreThan50Chars",
                    Email = "FooBarexample.com",
                };

                var request = HttpRequestMessageHelper
                              .ConstructRequest(
                    httpMethod: HttpMethod.Put,
                    uri: string.Format(
                        "https://localhost/{0}/{1}",
                        "api/users",
                        keys[1]),
                    mediaType: "application/json",
                    username: Constants.ValidAdminUserName,
                    password: Constants.ValidAdminPassword);

                request.Content = new ObjectContent <UserUpdateRequestModel>(
                    userRequestModel, new JsonMediaTypeFormatter());

                // Act
                var httpError = await IntegrationTestHelper
                                .GetResponseMessageBodyAsync <HttpError>(
                    config, request, HttpStatusCode.BadRequest);

                var modelState = (HttpError)httpError["ModelState"];
                var nameError  = modelState["requestModel.Name"] as string[];
                var emailError = modelState["requestModel.Email"] as string[];

                // Assert
                Assert.NotNull(nameError);
                Assert.NotNull(emailError);
            }
        public async Task <IActionResult> UpdateUser(UserUpdateRequestModel userModel)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState.Values));
                }

                await _userService.UpdateUser(userModel);

                return(Ok());
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(StatusCode(500, e.Message));
            }
        }
        public async Task <IActionResult> UpdateUser([FromBody] UserUpdateRequestModel userUpdateRequestModel)
        {
            try
            {
                var userId = HttpContext.User.GetUserIdClaim();
                if (userId != userUpdateRequestModel.UserId)
                {
                    return(BadRequest(new ApiResponseBadRequestResult()
                    {
                        ErrorMessage = $"Data posted is not for logged-in User."
                    }));
                }

                var user = await _userManager.FindByIdAsync(userId.ToString());

                if (null == user)
                {
                    return(BadRequest(new ApiResponseBadRequestResult()
                    {
                        ErrorMessage = $"User with Id {userId} does not exists"
                    }));
                }

                _mapper.Map(userUpdateRequestModel, user);
                var result = await _userManager.UpdateAsync(user);

                return(Ok(new ApiResponseOKResult()
                {
                    StatusCode = StatusCodes.Status200OK, Data = result.Succeeded
                }));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Failed to update user details");
                return(StatusCode((int)HttpStatusCode.InternalServerError, new ApiResponseFailure()
                {
                    ErrorMessage = "Failed to update user details"
                }));
            }
        }
예제 #15
0
            Returns_404_If_Request_Authorized_But_User_Does_Not_Exist()
            {
                // Arrange
                Guid[] keys = new[] {
                    Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid()
                };

                var invalidUserKey = Guid.NewGuid();

                var config = IntegrationTestHelper
                             .GetInitialIntegrationTestConfig(
                    GetInitialServices(GetMembershipService(keys)));

                // This is a valid user request to update one
                var userRequestModel = new UserUpdateRequestModel {
                    Name  = "FooBar",
                    Email = "*****@*****.**",
                };

                var request = HttpRequestMessageHelper
                              .ConstructRequest(
                    httpMethod: HttpMethod.Put,
                    uri: string.Format(
                        "https://localhost/{0}/{1}",
                        "api/users",
                        invalidUserKey),
                    mediaType: "application/json",
                    username: Constants.ValidAdminUserName,
                    password: Constants.ValidAdminPassword);

                request.Content = new ObjectContent <UserUpdateRequestModel>(
                    userRequestModel, new JsonMediaTypeFormatter());

                var response = await IntegrationTestHelper
                               .GetResponseAsync(config, request);

                // Assert
                Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
            }
예제 #16
0
            Returns_200_And_User_If_Request_Authorized_But_Request_Is_Valid()
            {
                // Arrange
                Guid[] keys = new[] {
                    Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid()
                };

                var config = IntegrationTestHelper
                             .GetInitialIntegrationTestConfig(
                    GetInitialServices(GetMembershipService(keys)));

                // This is a valid user request to update one
                var userRequestModel = new UserUpdateRequestModel {
                    Name  = "FooBar",
                    Email = "*****@*****.**",
                };

                var request = HttpRequestMessageHelper
                              .ConstructRequest(
                    httpMethod: HttpMethod.Put,
                    uri: string.Format(
                        "https://localhost/{0}/{1}",
                        "api/users",
                        keys[2]),
                    mediaType: "application/json",
                    username: Constants.ValidAdminUserName,
                    password: Constants.ValidAdminPassword);

                request.Content = new ObjectContent <UserUpdateRequestModel>(
                    userRequestModel, new JsonMediaTypeFormatter());

                // Act
                var userDto = await IntegrationTestHelper.GetResponseMessageBodyAsync <UserDto>(config, request, HttpStatusCode.OK);

                // Assert
                Assert.Equal(userRequestModel.Name, userDto.Name);
                Assert.Equal(userRequestModel.Email, userDto.Email);
            }
예제 #17
0
        public async Task <UserResponseModel> UpdateUser(UserUpdateRequestModel userUpdateRequestModel)
        {
            var updateUser = new User
            {
                Id       = userUpdateRequestModel.Id,
                Email    = userUpdateRequestModel.Email,
                Fullname = userUpdateRequestModel.Fullname,
                Password = userUpdateRequestModel.Password,
                JoinedOn = userUpdateRequestModel.JoinedOn
            };

            var updatedUser = await _userRepository.UpdateAsync(updateUser);

            var updatedUserResponseModel = new UserResponseModel
            {
                Id       = updatedUser.Id,
                Email    = updatedUser.Email,
                Fullname = updatedUser.Fullname,
                JoinedOn = updatedUser.JoinedOn
            };

            return(updatedUserResponseModel);
        }
                Returns_200_And_User_If_Request_Authorized_But_Request_Is_Valid() {

                // Arrange
                Guid[] keys = new[] { 
                    Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid()
                };

                var config = IntegrationTestHelper
                    .GetInitialIntegrationTestConfig(
                        GetInitialServices(GetMembershipService(keys)));

                // This is a valid user request to update one
                var userRequestModel = new UserUpdateRequestModel {
                    Name = "FooBar",
                    Email = "*****@*****.**",
                };

                var request = HttpRequestMessageHelper
                    .ConstructRequest(
                        httpMethod: HttpMethod.Put,
                        uri: string.Format(
                            "https://localhost/{0}/{1}",
                            "api/users",
                            keys[2]),
                        mediaType: "application/json",
                        username: Constants.ValidAdminUserName,
                        password: Constants.ValidAdminPassword);

                request.Content = new ObjectContent<UserUpdateRequestModel>(
                    userRequestModel, new JsonMediaTypeFormatter());

                // Act
                var userDto = await IntegrationTestHelper.GetResponseMessageBodyAsync<UserDto>(config, request, HttpStatusCode.OK);

                // Assert
                Assert.Equal(userRequestModel.Name, userDto.Name);
                Assert.Equal(userRequestModel.Email, userDto.Email);
            }
                Returns_400_If_Request_Authorized_But_Invalid() {

                // Arrange
                Guid[] keys = new[] { 
                    Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid()
                };

                var config = IntegrationTestHelper
                    .GetInitialIntegrationTestConfig(
                        GetInitialServices(GetMembershipService(keys)));

                // This is a not valid user request to update one
                var userRequestModel = new UserUpdateRequestModel {
                    Name = "ANameWhichIsMoreThan50CharsANameWhichIsMoreThan50Chars",
                    Email = "FooBarexample.com",
                };

                var request = HttpRequestMessageHelper
                    .ConstructRequest(
                        httpMethod: HttpMethod.Put,
                        uri: string.Format(
                            "https://localhost/{0}/{1}",
                            "api/users",
                            keys[1]),
                        mediaType: "application/json",
                        username: Constants.ValidAdminUserName,
                        password: Constants.ValidAdminPassword);

                request.Content = new ObjectContent<UserUpdateRequestModel>(
                    userRequestModel, new JsonMediaTypeFormatter());

                // Act
                var httpError = await IntegrationTestHelper
                    .GetResponseMessageBodyAsync<HttpError>(
                        config, request, HttpStatusCode.BadRequest);

                var modelState = (HttpError)httpError["ModelState"];
                var nameError = modelState["requestModel.Name"] as string[];
                var emailError = modelState["requestModel.Email"] as string[];

                // Assert
                Assert.NotNull(nameError);
                Assert.NotNull(emailError);
            }
                Returns_404_If_Request_Authorized_But_User_Does_Not_Exist() {

                // Arrange
                Guid[] keys = new[] { 
                    Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid()
                };

                var invalidUserKey = Guid.NewGuid();

                var config = IntegrationTestHelper
                    .GetInitialIntegrationTestConfig(
                        GetInitialServices(GetMembershipService(keys)));

                // This is a valid user request to update one
                var userRequestModel = new UserUpdateRequestModel {
                    Name = "FooBar",
                    Email = "*****@*****.**",
                };

                var request = HttpRequestMessageHelper
                    .ConstructRequest(
                        httpMethod: HttpMethod.Put,
                        uri: string.Format(
                            "https://localhost/{0}/{1}",
                            "api/users",
                            invalidUserKey),
                        mediaType: "application/json",
                        username: Constants.ValidAdminUserName,
                        password: Constants.ValidAdminPassword);

                request.Content = new ObjectContent<UserUpdateRequestModel>(
                    userRequestModel, new JsonMediaTypeFormatter());

                var response = await IntegrationTestHelper
                    .GetResponseAsync(config, request);

                // Assert
                Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
            }
예제 #21
0
        public async Task <IActionResult> UpdateUser(UserUpdateRequestModel model)
        {
            var updatedUser = await _userService.UpdateUser(model);

            return(Ok(updatedUser));
        }
예제 #22
0
        public async Task <IActionResult> Update([FromBody] UserUpdateRequestModel userUpdateRequestModel)
        {
            var result = await _userService.UpdateUser(userUpdateRequestModel);

            return(Ok(new GenericResponse(true)));
        }
예제 #23
0
        public IHttpActionResult Post(UserUpdateRequestModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return this.BadRequest(this.ModelState);
            }

            var currentUserId = this.User.Identity.GetUserId();

            var updatedProfileId = this.users.Update(currentUserId, model.FirstName, model.LastName, model.DateOfBirth, model.IsMale, model.Description);

            return this.Ok(updatedProfileId);
        }