public async Task <int> Insert(VacancyBaseModel vacancy, IEnumerable <VacancyQuestionBaseModel> questions) { const string query = @"insert into dbo.Vacancy (JobTitle, JobDescription, SalaryMin, SalaryMax, DepartmentId, ContractType, StartDate, EndDate, Published) output Inserted.ID values (@JobTitle, @JobDescription, @SalaryMin, @SalaryMax, @DepartmentId, @ContractType, @StartDate, @EndDate, @Published); "; var parameters = new { vacancy.JobTitle, vacancy.JobDescription, vacancy.SalaryMin, vacancy.SalaryMax, vacancy.DepartmentId, vacancy.ContractType, vacancy.StartDate, vacancy.EndDate, vacancy.Published }; var vacancyId = await SqlDataAccess.SaveData <dynamic>(query, parameters, true); var vacancyQuestionCrud = new VacancyQuestionCrud(); await vacancyQuestionCrud.InsertMultiple(questions, vacancyId); return(vacancyId); }
public async Task <IActionResult> Create(AdminControllerCreateViewModel viewModel) { if (ModelState.IsValid == false) { viewModel.Departments = await LoadDepartmentSelectList(); return(View(viewModel)); } // insert application var vacancyModel = new VacancyBaseModel { JobTitle = _htmlSanitizer.Sanitize(viewModel.Vacancy.JobTitle), JobDescription = _htmlSanitizer.Sanitize(viewModel.Vacancy.JobDescription), SalaryMin = (int)viewModel.Vacancy.SalaryMin, SalaryMax = (int)viewModel.Vacancy.SalaryMax, DepartmentId = (int)viewModel.Department, ContractType = _htmlSanitizer.Sanitize(viewModel.Vacancy.ContractType), StartDate = viewModel.Vacancy.StartDate, EndDate = viewModel.Vacancy.EndDate, Published = viewModel.Vacancy.Published }; var questionModels = new List <VacancyQuestionBaseModel>(); foreach (var question in viewModel.Questions) { questionModels.Add(new VacancyQuestionBaseModel { Question = _htmlSanitizer.Sanitize(question.Question), IsRequired = question.IsRequired, MinLength = question.MinLength, MaxLength = question.MaxLength, DisplayOrder = question.DisplayOrder }); } var vacancyId = await _vacancyCrud.Insert(vacancyModel, questionModels); return(Redirect($"/admin/details/{vacancyId}")); }