Beispiel #1
0
        public async Task <OrchestratorResponse <Guid> > PostTitleEditModelAsync(VacancyRouteModel vrm, TitleEditModel model, VacancyUser user, long ukprn)
        {
            if (model.VacancyId.HasValue)
            {
                var vacancy = await Utility.GetAuthorisedVacancyForEditAsync(_providerVacancyClient, _recruitVacancyClient, vrm, RouteNames.Title_Post);

                vacancy.Title = model.Title;

                return(await ValidateAndExecute(
                           vacancy,
                           v => _recruitVacancyClient.Validate(v, ValidationRules),
                           async v =>
                {
                    await _recruitVacancyClient.UpdateDraftVacancyAsync(vacancy, user);
                    return v.Id;
                }
                           ));
            }

            await ValidateEmployerAccountIdAsync(ukprn, model.EmployerAccountId);

            var newVacancy = new Vacancy
            {
                TrainingProvider = new TrainingProvider {
                    Ukprn = ukprn
                },
                Title = model.Title
            };

            return(await ValidateAndExecute(
                       newVacancy,
                       v => _recruitVacancyClient.Validate(v, ValidationRules),
                       async v => await _providerVacancyClient.CreateVacancyAsync(
                           model.EmployerAccountId, ukprn, model.Title, user)));
        }
Beispiel #2
0
        private async Task <OrchestratorResponse <Guid> > ValidateAndCreateVacancyAsync(TitleEditModel model, VacancyUser user, long ukprn)
        {
            int.TryParse(model.NumberOfPositions, out var numberOfPositions);

            var employerName = await GetEmployerNameAsync(ukprn, model.EmployerAccountId);

            var newVacancy = new Vacancy
            {
                TrainingProvider = new TrainingProvider {
                    Ukprn = ukprn
                },
                Title             = model.Title,
                NumberOfPositions = numberOfPositions
            };

            return(await ValidateAndExecute(
                       newVacancy,
                       v => _recruitVacancyClient.Validate(v, ValidationRules),
                       async v => await _providerVacancyClient.CreateVacancyAsync(
                           model.EmployerAccountId, employerName, ukprn, model.Title, numberOfPositions, user)));
        }