public async Task <IHttpActionResult> Create([FromBody] CreateApprenticeshipParameters createApprenticeshipParameters) { var headers = Request.GetApimUserContextHeaders(); var result = await _orchestrator.CreateApprenticeshipAsync(createApprenticeshipParameters, headers); return(Ok(result)); }
public async Task <int> CreateApprenticeshipAsync(CreateApprenticeshipParameters parameters) { var serialized = JsonConvert.SerializeObject(parameters); _logger.Info($"Sandbox Request for Create Apprenticeship : {serialized}"); return(await Task.FromResult(0)); }
public async Task SetUp() { var fixture = new Fixture().Customize(new AutoMoqCustomization()); _actualParameters = fixture.Create <CreateApprenticeshipParameters>(); _expectedMediatorResponse = fixture.Create <CreateApprenticeshipResponse>(); _expectedMapperResponse = fixture.Create <ApiTypes.CreateApprenticeshipResponse>(); _expectedRequest = new CreateApprenticeshipRequest(); _expectedErrorMessage = fixture.Create <string>(); _mockRequestMapper = fixture.Freeze <Mock <ICreateApprenticeshipRequestMapper> >(composer => composer.Do(mock => mock .Setup(mapper => mapper.MapFromApiParameters(_actualParameters, It.IsAny <int>(), It.IsAny <string>())) .Returns(_expectedRequest))); _mockMediator = fixture.Freeze <Mock <IMediator> >(composer => composer.Do(mock => mock .Setup(mediator => mediator.Send(It.IsAny <CreateApprenticeshipRequest>(), It.IsAny <CancellationToken>())) .ReturnsAsync(_expectedMediatorResponse))); _mockResponseMapper = fixture.Freeze <Mock <ICreateApprenticeshipResponseMapper> >(composer => composer.Do(mock => mock .Setup(mapper => mapper.MapToApiResponse(It.IsAny <CreateApprenticeshipResponse>())) .Returns(_expectedMapperResponse))); _mockValidationExceptionBuilder = fixture.Freeze <Mock <IValidationExceptionBuilder> >(composer => composer.Do(mock => mock .Setup(builder => builder.Build(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())) .Returns(new ValidationException(new List <ValidationFailure> { new ValidationFailure("", _expectedErrorMessage) })) )); _orchestrator = fixture.Create <CreateApprenticeshipOrchestrator>(); _actualResponse = await _orchestrator.CreateApprenticeshipAsync(_actualParameters, _validHeader); }
public async Task<int> CreateApprenticeshipAsync(CreateApprenticeshipParameters parameters) { return await _sqlDatabaseService.ExecuteWithRetryAsync("Create Apprenticeship Vacancy", async sqlConn => { var dynamicParameters = new DynamicParameters(parameters); dynamicParameters.Add("VacancyReferenceNumber", dbType: DbType.Int32, direction: ParameterDirection.Output); _logger.Info($"Command to create new Apprenticeship Vacancy in AVMS database, Title: [{parameters.Title}]."); await sqlConn.ExecuteAsync( CreateApprenticeshipVacancySqlSproc, dynamicParameters, commandType: CommandType.StoredProcedure); var referenceNumber = dynamicParameters.Get<int>("VacancyReferenceNumber"); if (referenceNumber == int.MinValue) throw new InfrastructureException(new Exception($"Failed to get reference number for new Apprenticeship Vacancy [{parameters.Title}]")); _logger.Info($"Created Apprenticeship Vacancy for [{referenceNumber}] from AVMS database."); return referenceNumber; }); }
public CreateApprenticeshipParameters MapFromRequest(CreateApprenticeshipRequest request, EmployerInformation employerInformation) { var parameters = new CreateApprenticeshipParameters { Title = request.Title, ShortDescription = request.ShortDescription, Description = request.LongDescription, ApplicationClosingDate = request.ApplicationClosingDate.Date, DesiredSkills = request.DesiredSkills, DesiredPersonalQualities = request.DesiredPersonalQualities, DesiredQualifications = request.DesiredQualifications, FutureProspects = request.FutureProspects, ThingsToConsider = request.ThingsToConsider, TrainingToBeProvided = request.TrainingToBeProvided, DurationValue = request.ExpectedDuration, DurationTypeId = (int)_durationMapper.MapTypeToDomainType(request.DurationType), ExpectedStartDate = request.ExpectedStartDate.Date, WorkingWeek = request.WorkingWeek, HoursPerWeek = request.HoursPerWeek, WageType = (int)_wageTypeMapper.MapToLegacy(request), WageTypeReason = request.WageTypeReason, WageUnitId = (int)request.WageUnit, WeeklyWage = request.FixedWage, WageLowerBound = request.MinWage, WageUpperBound = request.MaxWage, WageText = _wageTextFormatter.GetWageText(request), LocationTypeId = request.LocationType == LocationType.Nationwide ? NationwideLocationType : StandardLocationType, NumberOfPositions = request.NumberOfPositions, VacancyOwnerRelationshipId = employerInformation.VacancyOwnerRelationshipId, EmployerDescription = string.IsNullOrWhiteSpace(request.EmployerDescription) ? employerInformation.EmployerDescription : request.EmployerDescription, EmployerWebsite = string.IsNullOrWhiteSpace(request.EmployerWebsiteUrl) ? employerInformation.EmployerWebsite : request.EmployerWebsiteUrl, ProviderId = employerInformation.ProviderId, ProviderSiteId = employerInformation.ProviderSiteId, ApplyOutsideNAVMS = request.ApplicationMethod == ApplicationMethod.Offline, SupplementaryQuestion1 = request.SupplementaryQuestion1, SupplementaryQuestion2 = request.SupplementaryQuestion2, EmployersRecruitmentWebsite = request.ExternalApplicationUrl, EmployersApplicationInstructions = request.ExternalApplicationInstructions, ContactName = request.ContactName, ContactEmail = request.ContactEmail, ContactNumber = request.ContactNumber, TrainingTypeId = (int)request.TrainingType, ApprenticeshipType = GetApprenticeshipType(request.EducationLevel), IsDisabilityConfident = request.IsEmployerDisabilityConfident.GetValueOrDefault(), AdditionalLocationInformation = request.AdditionalLocationInformation, HistoryUserName = request.UserEmail }; MapLocationFields(request, employerInformation, parameters); MapTrainingCode(request, parameters); return(parameters); }
private static void MapTrainingCode(CreateApprenticeshipRequest request, CreateApprenticeshipParameters parameters) { if (request.TrainingType == TrainingType.Standard) { parameters.TrainingCode = request.TrainingCode; } else { var length = request.TrainingCode.IndexOf("-", StringComparison.Ordinal); parameters.TrainingCode = request.TrainingCode.Substring(0, length); } }
public void Setup() { var fixture = new Fixture().Customize(new AutoMoqCustomization()); _createApprenticeshipRequest = fixture.Build <CreateApprenticeshipRequest>() .With(request => request.LocationType, LocationType.OtherLocation) .Create(); _employerInformation = fixture.Create <EmployerInformation>(); var mapper = fixture.Create <CreateApprenticeshipParametersMapper>(); _mappedParameters = mapper.MapFromRequest(_createApprenticeshipRequest, _employerInformation); }
public async Task SetUp() { _fixture = new Fixture().Customize(new AutoMoqCustomization()); _employerInformation = _fixture.Create <EmployerInformation>(); _expectedRefNumber = _fixture.Create <int>(); _expectedParameters = _fixture.Freeze <CreateApprenticeshipParameters>(); _validRequest = _fixture.Create <CreateApprenticeshipRequest>(); _mockValidator = _fixture.Freeze <Mock <IValidator <CreateApprenticeshipRequest> > >(composer => composer.Do(mock => mock .Setup(validator => validator.ValidateAsync(It.IsAny <CreateApprenticeshipRequest>(), It.IsAny <CancellationToken>())) .ReturnsAsync(new ValidationResult()))); _mockVacancyOwnerService = _fixture.Freeze <Mock <IVacancyOwnerService> >(composer => composer.Do(mock => mock .Setup(svc => svc.GetEmployersInformationAsync(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>())) .ReturnsAsync(_employerInformation))); _mockMapper = _fixture.Freeze <Mock <ICreateApprenticeshipParametersMapper> >(composer => composer.Do(mock => mock .Setup(mapper => mapper.MapFromRequest(It.IsAny <CreateApprenticeshipRequest>(), It.IsAny <EmployerInformation>())) .Returns(_expectedParameters))); _mockService = _fixture.Freeze <Mock <ICreateApprenticeshipService> >(composer => composer.Do(mock => mock .Setup(repository => repository.CreateApprenticeshipAsync(It.IsAny <CreateApprenticeshipParameters>())) .ReturnsAsync(_expectedRefNumber))); _trainingDetails = new List <TrainingDetail>() { new TrainingDetail() { TrainingCode = _validRequest.TrainingCode, Level = 1 } }; _mockTrainingDetailService = _fixture.Freeze <Mock <ITrainingDetailService> >(composer => composer.Do(mock => { mock .Setup(svc => svc.GetAllFrameworkDetailsAsync()) .ReturnsAsync(_trainingDetails); mock .Setup(svc => svc.GetAllStandardDetailsAsync()) .ReturnsAsync(_trainingDetails); })); _handler = _fixture.Create <CreateApprenticeshipCommandHandler>(); _createApprenticeshipResponse = await _handler.Handle(_validRequest); }
public async Task <CreateApprenticeshipResponse> CreateApprenticeshipAsync( CreateApprenticeshipParameters parameters, Dictionary <string, string> requestHeaders) { if (parameters == null) { throw _validationExceptionBuilder.Build( ErrorCodes.CreateApprenticeship.CreateApprenticeshipParametersIsNull, ErrorMessages.CreateApprenticeship.CreateApprenticeshipParametersIsNull, CreateApprenticeshipParametersName); } var ukprn = int.Parse(requestHeaders[Constants.RequestHeaderNames.ProviderUkprn]); var userEmail = requestHeaders[Constants.RequestHeaderNames.UserEmail]; var request = _createApprenticeshipRequestMapper.MapFromApiParameters(parameters, ukprn, userEmail); var response = await _mediator.Send(request); return(_apprenticeshipResponseMapper.MapToApiResponse(response)); }
public void SetUp() { var fixture = new Fixture(); var randomWageType = fixture.Create <int>(); var randomWageUnit = fixture.Create <int>(); var randomLocationType = fixture.Create <int>(); var randomApplicationMethod = fixture.Create <int>(); _apiParameters = fixture.Build <CreateApprenticeshipParameters>() .With(parameters => parameters.LocationType, (ApiTypes.LocationType)randomLocationType) .With(parameters => parameters.WageType, (ApiTypes.WageType)randomWageType) .With(parameters => parameters.WageUnit, (Vacancy.Api.Types.Request.WageUnit)randomWageUnit) .With(parameters => parameters.ApplicationMethod, (ApiTypes.ApplicationMethod)randomApplicationMethod) .Create(); var mapper = new CreateApprenticeshipRequestMapper(); _mappedRequest = mapper.MapFromApiParameters(_apiParameters, _ukprn, _userEmail); }
private static void MapLocationFields(CreateApprenticeshipRequest request, EmployerInformation employerInformation, CreateApprenticeshipParameters parameters) { if (request.LocationType == LocationType.OtherLocation) { parameters.AddressLine1 = request.AddressLine1; parameters.AddressLine2 = request.AddressLine2; parameters.AddressLine3 = request.AddressLine3; parameters.AddressLine4 = request.AddressLine4; parameters.AddressLine5 = request.AddressLine5; parameters.Town = request.Town; parameters.Postcode = request.Postcode; } else { parameters.AddressLine1 = employerInformation.AddressLine1; parameters.AddressLine2 = employerInformation.AddressLine2; parameters.AddressLine3 = employerInformation.AddressLine3; parameters.AddressLine4 = employerInformation.AddressLine4; parameters.AddressLine5 = employerInformation.AddressLine5; parameters.Town = employerInformation.Town; parameters.Postcode = employerInformation.Postcode; } }
public void SetUp() { var fixture = new Fixture().Customize(new AutoMoqCustomization()); _randomWageType = fixture.Create <int>(); _randomLegacyWageType = fixture.Create <int>(); _randomWageUnit = fixture.Create <int>(); _randomDurationType = (DurationType) new Random().Next(1, 4); var durationTypeMapper = new DurationMapper(); _randomDomainDurationType = durationTypeMapper.MapTypeToDomainType(_randomDurationType); _request = fixture.Build <CreateApprenticeshipRequest>() .With(request => request.WageType, (WageType)_randomWageType) .With(request => request.WageUnit, (WageUnit)_randomWageUnit) .With(request => request.DurationType, _randomDurationType) .With(request => request.IsEmployerDisabilityConfident, fixture.Create <bool>()) .Create(); _mockWageTypeMapper = fixture.Freeze <Mock <IWageTypeMapper> >(); _mockWageTypeMapper .Setup(typeMapper => typeMapper.MapToLegacy(It.IsAny <CreateApprenticeshipRequest>())) .Returns((LegacyWageType)_randomLegacyWageType); _mockWageTextFormatter = fixture.Freeze <Mock <IWageTextFormatter> >(); fixture.Inject <IDurationMapper>(durationTypeMapper); _employerInformation = fixture.Create <EmployerInformation>(); var mapper = fixture.Create <CreateApprenticeshipParametersMapper>(); _mappedParameters = mapper.MapFromRequest(_request, _employerInformation); }