public PartialViewResult Edit(long id = 0)
        {
            RecruitmentSkillDetailEditViewModel viewModel = new RecruitmentSkillDetailEditViewModel();

            viewModel.EditEntity    = recruitmentSkillDetailService.GetById(id) ?? new RecruitmentSkillDetail();
            viewModel.GroupDataType = ConstantExtension.GetDropdownData <DataTypeConstant>(viewModel.EditEntity.DataType.ToString());
            return(PartialView("_EditPartial", viewModel));
        }
        public JsonResult SaveConfigRecruitmentRequest(FormCollection form)
        {
            JsonResultBO result = new JsonResultBO(true);

            try
            {
                //delete tất cả dữ liệu trong bảng config
                long requestId = form["REQUEST_ID"].ToNumber <long>();
                var  oldConfig = configRecruitmentRequestService.FindBy(x => x.RequestId == requestId);
                configRecruitmentRequestService.DeleteRange(oldConfig);

                //các nhóm kỹ năng được config
                var groupSkillIds = form["GROUP_SKILL"].ToListNumber <long>(',');

                List <ConfigRecruitmentRequest> configs = new List <ConfigRecruitmentRequest>();

                foreach (var groupSkill in groupSkillIds)
                {
                    //các kỹ năng trong từng nhóm
                    var skills = form["INPUT_SKILL_" + groupSkill].ToListNumber <long>(',');

                    foreach (var skill in skills)
                    {
                        var entitySkill = recruitmentSkillDetailService.GetById(skill);
                        if (entitySkill != null)
                        {
                            ConfigRecruitmentRequest config = new ConfigRecruitmentRequest()
                            {
                                RequestId    = requestId,
                                GroupSkillId = groupSkill,
                                SkillId      = entitySkill.Id,
                                CreatedDate  = DateTime.Now,
                                UpdatedDate  = DateTime.Now,
                            };

                            if (entitySkill.DataType == DataTypeConstant.CATEGORY)
                            {
                                config.CategoryId   = entitySkill.CategoryId;
                                config.CategoryData = form["CHECKBOX_" + skill];
                            }
                            else if (entitySkill.DataType == DataTypeConstant.NUMBER)
                            {
                                config.AbsoluteNumber = form["NUMBER_" + skill].ToNullableNumber <int>();
                            }
                            else if (entitySkill.DataType == DataTypeConstant.TEXT)
                            {
                                config.TextValue = form["TEXT_" + skill].Trim();
                            }

                            if (config.AbsoluteNumber != null || !string.IsNullOrEmpty(config.TextValue) || !string.IsNullOrEmpty(config.CategoryData))
                            {
                                configs.Add(config);
                            }
                        }
                    }
                }

                if (configs.Any())
                {
                    SQLHelper.BulkInsert <ConfigRecruitmentRequest>(configs);
                }
                result.Message = "Cập nhật cấu hình yêu cầu tuyển dụng thành công";
            }
            catch (Exception ex)
            {
                logger.Error("Lỗi cấu hình dữ yêu cầu tuyển dụng", ex);
                result.Message = "Cấu hình dữ liệu không thành công";
                result.Status  = false;
            }
            return(Json(result));
        }