private void InitVariables()
        {
            _personId = Guid.NewGuid();
            _adUserId = Guid.NewGuid();
            _payload  = new UpdateAccountDetailsRequest
            {
                FirstName       = "New",
                LastName        = "Me",
                CurrentUsername = "******"
            };

            _updatedUserResponse = new UserResponse
            {
                Email       = "*****@*****.**",
                DisplayName = "New Me",
                FirstName   = "New",
                LastName    = "Me"
            };
        }
        public async Task <ActionResult <IList <PersonResponse> > > UpdatePersonDetails([FromRoute] Guid personId,
                                                                                        [FromBody] UpdateAccountDetailsRequest payload)
        {
            try
            {
                var useridString = await _userAccountService.GetAdUserIdForUsername(payload.CurrentUsername);

                var userId        = Guid.Parse(useridString);
                var updatedPerson =
                    await _userAccountService.UpdateUserAccountDetails(userId, payload.FirstName, payload.LastName);

                var updateBookingPersonRequest = new UpdatePersonDetailsRequest
                {
                    FirstName = updatedPerson.FirstName,
                    LastName  = updatedPerson.LastName,
                    Username  = updatedPerson.Email
                };
                await _bookingsApiClient.UpdatePersonDetailsAsync(personId, updateBookingPersonRequest);

                return(Accepted());
            }
            catch (UserApiException e)
            {
                return(StatusCode(e.StatusCode, e.Response));
            }
            catch (BookingsApiException e)
            {
                return(StatusCode(e.StatusCode, e.Response));
            }
        }
Esempio n. 3
0
        public async Task <IActionResult> UpdateAccountDetails([FromBody] UpdateAccountDetailsRequest request)
        {
            var response = await _accountService.UpdateAccountDetailsAsync(request);

            return(SendResponse(response));
        }
Esempio n. 4
0
        public async Task <ServiceResponse <UpdateAccountDetailsResponse> > UpdateAccountDetailsAsync(UpdateAccountDetailsRequest request)
        {
            if (CurrentlyLoggedUser == null)
            {
                throw new RestException(HttpStatusCode.Unauthorized);
            }

            Mapper.Map(request, CurrentlyLoggedUser);
            var result = await UserManager.UpdateAsync(CurrentlyLoggedUser);

            if (result.Succeeded)
            {
                var response = Mapper.Map <ApplicationUser, UpdateAccountDetailsResponse>(CurrentlyLoggedUser);
                var roles    = await UserManager.GetRolesAsync(CurrentlyLoggedUser);

                response.Roles = roles.ToList();
                return(new ServiceResponse <UpdateAccountDetailsResponse>(HttpStatusCode.OK, response));
            }

            var resultErrors = result.Errors.Select(e => e.Description);

            ErrorResultToReturn = new ErrorResult(Errors.AccountErrors.ErrorOccuredWhileUpdatingUser, resultErrors);

            throw new RestException(HttpStatusCode.BadRequest, ErrorResultToReturn);
        }