public ActionResult CreateApiUser(ApiUserViewModel viewModel)
        {
            var response = _adminMediator.CreateApiUser(viewModel);

            ModelState.Clear();

            SetUserMessage(response.Message);

            switch (response.Code)
            {
            case AdminMediatorCodes.CreateApiUser.FailedValidation:
                response.ValidationResult.AddToModelState(ModelState, "SearchViewModel");
                return(View(response.ViewModel));

            case AdminMediatorCodes.CreateApiUser.CompanyIdAlreadyExists:
                return(View(response.ViewModel));

            case AdminMediatorCodes.CreateApiUser.UnknownCompanyId:
                return(View(response.ViewModel));

            case AdminMediatorCodes.CreateApiUser.Error:
                return(View(response.ViewModel));

            case AdminMediatorCodes.CreateApiUser.Ok:
                return(View("ApiUser", response.ViewModel));

            default:
                throw new InvalidMediatorCodeException(response.Code);
            }
        }
Exemple #2
0
        public ApiUserViewModel SaveApiUser(ApiUserViewModel viewModel)
        {
            var apiUser = _apiUserRepository.GetApiUser(viewModel.ExternalSystemId);

            //Copy over changes
            apiUser.AuthorisedApiEndpoints = ApiUserMappers.Map <IList <ApiEndpointViewModel>, IList <ApiEndpoint> >(viewModel.ApiEndpoints);

            var updatedApiUser = _apiUserRepository.Update(apiUser);

            return(ApiUserMappers.Map <ApiUser, ApiUserViewModel>(updatedApiUser));
        }
Exemple #3
0
        public ActionResult Edit(Guid id, ApiUserViewModel model)
        {
            if (id != null && id != Guid.Empty)
            {
                if (!string.IsNullOrEmpty(model.Password) && !model.Password.Equals(model.PasswordConfirmation, StringComparison.InvariantCulture))
                {
                    return(View(model)); // TODO: add password mismatch error
                }

                _apiUserUpdator.Update(id, model.Name, model.IsActive, model.Password);
            }

            return(RedirectToAction("List"));
        }
        public MediatorResponse <ApiUserViewModel> ResetApiUserPassword(ApiUserViewModel viewModel)
        {
            try
            {
                viewModel = _apiUserProvider.ResetApiUserPassword(viewModel);

                return(GetMediatorResponse(AdminMediatorCodes.ResetApiUserPassword.Ok, viewModel, ApiUserViewModelMessages.ResetApiUserPasswordSuccessfully, UserMessageLevel.Info));
            }
            catch (Exception ex)
            {
                _logService.Error($"Failed to save api user with external system id={viewModel.ExternalSystemId}", ex);
                viewModel = _apiUserProvider.GetApiUserViewModel(viewModel.ExternalSystemId);
                return(GetMediatorResponse(AdminMediatorCodes.ResetApiUserPassword.Error, viewModel, ApiUserViewModelMessages.ResetApiUserPasswordError, UserMessageLevel.Error));
            }
        }
        public MediatorResponse <ApiUserViewModel> CreateApiUser(ApiUserViewModel viewModel)
        {
            var validatonResult = _apiUserViewModelServerValidator.Validate(viewModel);

            if (!validatonResult.IsValid)
            {
                return(GetMediatorResponse(AdminMediatorCodes.CreateApiUser.FailedValidation, viewModel, validatonResult));
            }

            var searchResultsViewModel = _apiUserProvider.SearchApiUsers(new ApiUserSearchViewModel {
                Id = viewModel.CompanyId, PerformSearch = true
            });

            if (searchResultsViewModel.ApiUsers.Count > 0)
            {
                return(GetMediatorResponse(AdminMediatorCodes.CreateApiUser.CompanyIdAlreadyExists, viewModel, ApiUserViewModelMessages.CompanyIdAlreadyExists, UserMessageLevel.Error));
            }

            var viewModelToCreate = _apiUserProvider.GetApiUserViewModel(viewModel.CompanyId);

            if (viewModelToCreate == null)
            {
                return(GetMediatorResponse(AdminMediatorCodes.CreateApiUser.UnknownCompanyId, viewModel, ApiUserViewModelMessages.UnknownCompanyId, UserMessageLevel.Error));
            }

            viewModelToCreate.ExternalSystemId = viewModel.ExternalSystemId;
            viewModelToCreate.Password         = viewModel.Password;
            viewModelToCreate.ApiEndpoints     = viewModel.ApiEndpoints;

            try
            {
                viewModel = _apiUserProvider.CreateApiUser(viewModelToCreate);

                return(GetMediatorResponse(AdminMediatorCodes.CreateApiUser.Ok, viewModel, ApiUserViewModelMessages.ApiUserCreatedSuccessfully, UserMessageLevel.Info));
            }
            catch (Exception ex)
            {
                _logService.Error($"Failed to create API user for company with id={viewModel.CompanyId}", ex);
                return(GetMediatorResponse(AdminMediatorCodes.CreateApiUser.Error, viewModel, ApiUserViewModelMessages.ApiUserCreationError, UserMessageLevel.Error));
            }
        }
Exemple #6
0
        public void ConvertApiEndpoints()
        {
            var apiUserViewModel = new ApiUserViewModel
            {
                ApiEndpoints = new List <ApiEndpointViewModel>
                {
                    new ApiEndpointViewModel {
                        Endpoint = ApiEndpoint.BulkVacancyUpload, Authorised = true
                    },
                    new ApiEndpointViewModel {
                        Endpoint = ApiEndpoint.VacancyDetail, Authorised = true
                    },
                    new ApiEndpointViewModel {
                        Endpoint = ApiEndpoint.VacancySummary, Authorised = true
                    },
                    new ApiEndpointViewModel {
                        Endpoint = ApiEndpoint.ReferenceData, Authorised = false
                    },
                    new ApiEndpointViewModel {
                        Endpoint = ApiEndpoint.ApplicationTracking, Authorised = false
                    }
                }
            };

            var apiUser = new ApiUserMappers().Map <ApiUserViewModel, ApiUser>(apiUserViewModel);

            apiUser.AuthorisedApiEndpoints.Count.Should().Be(3);
            apiUser.AuthorisedApiEndpoints.Contains(ApiEndpoint.VacancySummary).Should().BeTrue();
            apiUser.AuthorisedApiEndpoints.Contains(ApiEndpoint.VacancyDetail).Should().BeTrue();
            apiUser.AuthorisedApiEndpoints.Contains(ApiEndpoint.ReferenceData).Should().BeFalse();
            apiUser.AuthorisedApiEndpoints.Contains(ApiEndpoint.BulkVacancyUpload).Should().BeTrue();
            apiUser.AuthorisedApiEndpoints.Contains(ApiEndpoint.ApplicationTracking).Should().BeFalse();

            apiUser.AuthorisedApiEndpoints[0].Should().Be(ApiEndpoint.VacancySummary);
            apiUser.AuthorisedApiEndpoints[1].Should().Be(ApiEndpoint.VacancyDetail);
            apiUser.AuthorisedApiEndpoints[2].Should().Be(ApiEndpoint.BulkVacancyUpload);
        }
        public ActionResult ResetApiUserPassword(ApiUserViewModel viewModel)
        {
            var response = _adminMediator.ResetApiUserPassword(viewModel);

            ModelState.Clear();

            SetUserMessage(response.Message);

            switch (response.Code)
            {
            case AdminMediatorCodes.ResetApiUserPassword.FailedValidation:
                response.ValidationResult.AddToModelState(ModelState, "SearchViewModel");
                return(View("ResetApiUserPassword", response.ViewModel));

            case AdminMediatorCodes.ResetApiUserPassword.Error:
                return(RedirectToRoute(ManagementRouteNames.AdminResetApiUserPassword, new { viewModel.ExternalSystemId }));

            case AdminMediatorCodes.ResetApiUserPassword.Ok:
                return(View("ApiUser", response.ViewModel));

            default:
                throw new InvalidMediatorCodeException(response.Code);
            }
        }
Exemple #8
0
        public ApiUserViewModel ResetApiUserPassword(ApiUserViewModel viewModel)
        {
            var apiUser = _apiUserRepository.ResetApiUserPassword(viewModel.ExternalSystemId);

            return(ApiUserMappers.Map <ApiUser, ApiUserViewModel>(apiUser));
        }
Exemple #9
0
        public ApiUserViewModel CreateApiUser(ApiUserViewModel viewModel)
        {
            var apiUser = ApiUserMappers.Map <ApiUserViewModel, ApiUser>(viewModel);

            return(ApiUserMappers.Map <ApiUser, ApiUserViewModel>(_apiUserRepository.Create(apiUser)));
        }