コード例 #1
0
ファイル: VacancyCrud.cs プロジェクト: thecallum/JobsApp
        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);
        }
コード例 #2
0
ファイル: AdminController.cs プロジェクト: thecallum/JobsApp
        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}"));
        }