Ejemplo n.º 1
0
        public void Then_The_Request_Data_Is_Sent(Guid id, PostVacancyRequestData data)
        {
            var actual = new PostValidateVacancyRequest(id, data);

            var actualData = actual.Data as PostVacancyRequestData;

            actualData.Should().BeEquivalentTo(data);
        }
Ejemplo n.º 2
0
        public async Task <CreateVacancyCommandResponse> Handle(CreateVacancyCommand request, CancellationToken cancellationToken)
        {
            var accountLegalEntity = await _accountLegalEntityPermissionService.GetAccountLegalEntity(
                request.AccountIdentifier, request.PostVacancyRequestData.AccountLegalEntityPublicHashedId);

            if (accountLegalEntity == null)
            {
                throw new SecurityException();
            }

            request.PostVacancyRequestData.LegalEntityName = accountLegalEntity.Name;

            if (request.AccountIdentifier.AccountType == AccountType.Provider)
            {
                request.PostVacancyRequestData.EmployerAccountId = accountLegalEntity.AccountHashedId;
            }

            if (request.PostVacancyRequestData.EmployerNameOption == EmployerNameOption.RegisteredName)
            {
                request.PostVacancyRequestData.EmployerName = accountLegalEntity.Name;
            }

            IPostApiRequest apiRequest;

            if (request.IsSandbox)
            {
                apiRequest = new PostValidateVacancyRequest(request.Id, request.PostVacancyRequestData);
            }
            else
            {
                if (request.AccountIdentifier.AccountType == AccountType.Provider)
                {
                    apiRequest = new PostVacancyRequest(request.Id, request.PostVacancyRequestData.User.Ukprn, "", request.PostVacancyRequestData);
                }
                else
                {
                    apiRequest = new PostVacancyRequest(request.Id, request.PostVacancyRequestData.User.Ukprn, request.PostVacancyRequestData.User.Email, request.PostVacancyRequestData);
                }
            }

            var result = await _recruitApiClient.PostWithResponseCode <string>(apiRequest);

            if (!((int)result.StatusCode >= 200 && (int)result.StatusCode <= 299))
            {
                if (result.StatusCode.Equals(HttpStatusCode.BadRequest))
                {
                    throw new HttpRequestContentException($"Response status code does not indicate success: {(int)result.StatusCode} ({result.StatusCode})", result.StatusCode, result.ErrorContent);
                }

                throw new Exception(
                          $"Response status code does not indicate success: {(int) result.StatusCode} ({result.StatusCode})");
            }

            return(new CreateVacancyCommandResponse
            {
                VacancyReference = result.Body
            });
        }
Ejemplo n.º 3
0
        public void Then_The_Url_Is_Correctly_Built(Guid id, PostVacancyRequestData data)
        {
            var actual = new PostValidateVacancyRequest(id, data);

            actual.PostUrl.Should().Be($"api/vacancies/{id}/validate?ukprn={data.User.Ukprn}&userEmail={data.User.Email}");
        }