public async Task <OrchestratorResponse <VacancyInfo> > CloseVacancyAsync(CloseEditModel m, VacancyUser user) { var vacancy = await _vacancyClient.GetVacancyAsync(m.VacancyId.GetValueOrDefault()); Utility.CheckAuthorisedAccess(vacancy, m.Ukprn); if (!vacancy.CanClose) { throw new InvalidStateException(string.Format(ErrorMessages.VacancyNotAvailableForClosing, vacancy.Title)); } await _vacancyClient.CloseVacancyAsync(vacancy.Id, user, ClosureReason.Manual); return(new OrchestratorResponse <VacancyInfo>(new VacancyInfo { Id = vacancy.Id, VacancyReference = vacancy.VacancyReference.Value.ToString(), Title = vacancy.Title })); }