Beispiel #1
0
        public ActionResult Edit(int?questionGroupId)
        {
            if (questionGroupId.HasValue)
            {
                var questionGroupVM = new QuestionGroupEditViewModel();
                _questionGroupFacade = new QuestionGroupFacade();

                //get area section
                QuestionGroupItemEntity questionGroupItemEntity = _questionGroupFacade.GetQuestionGroupById(questionGroupId.Value);
                questionGroupVM.QuestionGroupId          = questionGroupItemEntity.QuestionGroupId;
                questionGroupVM.QuestionGroupName        = questionGroupItemEntity.QuestionGroupName;
                questionGroupVM.QuestionGroupProductName = questionGroupItemEntity.QuestionGroupProduct;
                questionGroupVM.QuestionGroupProductId   = questionGroupItemEntity.QuestionGroupProductId;
                questionGroupVM.CreateUserName           = questionGroupItemEntity.CreateUserName != null ? questionGroupItemEntity.CreateUserName.FullName : "";
                questionGroupVM.UpdateUserName           = questionGroupItemEntity.UpdateUserName != null ? questionGroupItemEntity.UpdateUserName.FullName : "";
                questionGroupVM.DisplayCreateDate        = DateUtil.ToStringAsDateTime(questionGroupItemEntity.CreateDate);
                questionGroupVM.DisplayUpdateDate        = DateUtil.ToStringAsDateTime(questionGroupItemEntity.UpdateDate);
                questionGroupVM.QuestionGroupDescription = questionGroupItemEntity.Description;

                questionGroupVM.Status     = questionGroupItemEntity.Status;
                questionGroupVM.StatusList = new List <SelectListItem>();

                questionGroupVM.StatusList.Add(new SelectListItem()
                {
                    Text = "Active", Value = "true"
                });
                questionGroupVM.StatusList.Add(new SelectListItem()
                {
                    Text = "Inactive", Value = "false"
                });

                questionGroupVM.QuestionGroupInQuestionSearchFilter = new QuestionGroupInQuestionSearchFilter()
                {
                    QuestionGroupId = null,
                    PageNo          = 1,
                    PageSize        = 15,
                    SortField       = "GroupName",
                    SortOrder       = "ASC"
                };

                questionGroupVM.SearchFilter = new QuestionSelectSearchFilter()
                {
                    QuestionName   = string.Empty,
                    QuestionIdList = string.Empty,
                    PageNo         = 1,
                    PageSize       = 15,
                    SortField      = "QuestionName",
                    SortOrder      = "ASC"
                };

                //get sub area section
                return(View(questionGroupVM));
            }

            return(View("Create"));
        }
Beispiel #2
0
        public bool SaveQuestionGroup(QuestionGroupItemEntity questionGroupItemEntity)
        {
            _context.Configuration.AutoDetectChangesEnabled = false;

            try
            {
                TB_M_QUESTIONGROUP questionGroup;


                if (!questionGroupItemEntity.QuestionGroupId.HasValue)
                {
                    //save
                    questionGroup = new TB_M_QUESTIONGROUP();
                    questionGroup.QUESTIONGROUP_NAME      = questionGroupItemEntity.QuestionGroupName;
                    questionGroup.QUESTIONGROUP_IS_ACTIVE = questionGroupItemEntity.Status;
                    questionGroup.PRODUCT_ID  = questionGroupItemEntity.QuestionGroupProductId;
                    questionGroup.CREATE_USER = questionGroupItemEntity.UserId;
                    questionGroup.CREATE_DATE = DateTime.Now;
                    questionGroup.UPDATE_USER = questionGroupItemEntity.UserId;
                    questionGroup.UPDATE_DATE = DateTime.Now;
                    _context.TB_M_QUESTIONGROUP.Add(questionGroup);
                    Save();
                }
                else
                {
                    //save
                    questionGroup = new TB_M_QUESTIONGROUP();
                    questionGroup.QUESTIONGROUP_NAME      = questionGroupItemEntity.QuestionGroupName;
                    questionGroup.QUESTIONGROUP_IS_ACTIVE = questionGroupItemEntity.Status;
                    questionGroup.PRODUCT_ID       = questionGroupItemEntity.QuestionGroupProductId;
                    questionGroup.UPDATE_USER      = questionGroupItemEntity.UserId;
                    questionGroup.UPDATE_DATE      = DateTime.Now;
                    questionGroup.QUESTIONGROUP_ID = (int)questionGroupItemEntity.QuestionGroupId;
                    SetEntryStateModified(questionGroup);
                    Save();
                }

                return(true);
            }
            catch (Exception ex)
            {
                Logger.Error("Exception occur:\n", ex);
                return(false);
            }
            finally
            {
                _context.Configuration.AutoDetectChangesEnabled = true;
            }
        }
Beispiel #3
0
        public bool SaveQuestionGroup(QuestionGroupItemEntity questionGroupItemEntity, string idQuestions)
        {
            _context.Configuration.AutoDetectChangesEnabled = false;

            try
            {
                var isEdit = questionGroupItemEntity.QuestionGroupId.HasValue;
                TB_M_QUESTIONGROUP questionGroup;

                if (!isEdit)
                {
                    //add
                    questionGroup = new TB_M_QUESTIONGROUP();
                }
                else
                {
                    questionGroup = _context.TB_M_QUESTIONGROUP.SingleOrDefault(a => a.QUESTIONGROUP_ID == questionGroupItemEntity.QuestionGroupId.Value);
                    if (questionGroup == null)
                    {
                        Logger.ErrorFormat("QUESITON GROUP ID: {0} does not exist", questionGroupItemEntity.QuestionGroupId);
                        return(false);
                    }
                }

                questionGroup.QUESTIONGROUP_NAME      = questionGroupItemEntity.QuestionGroupName;
                questionGroup.PRODUCT_ID              = questionGroupItemEntity.QuestionGroupProductId;
                questionGroup.QUESTIONGROUP_IS_ACTIVE = questionGroupItemEntity.Status;
                questionGroup.QUESTIONGROUP_DESC      = questionGroupItemEntity.Description;
                questionGroup.UPDATE_USER             = questionGroupItemEntity.UserId;
                questionGroup.UPDATE_DATE             = DateTime.Now;

                if (!isEdit)
                {
                    questionGroup.CREATE_USER = questionGroupItemEntity.UserId;
                    questionGroup.CREATE_DATE = DateTime.Now;
                    _context.TB_M_QUESTIONGROUP.Add(questionGroup);
                    this.Save();

                    //save area_subarea
                    if (!string.IsNullOrEmpty(idQuestions))
                    {
                        string[] idQuestionsArray = idQuestions.Split(',');

                        int i = 1;
                        foreach (var idQuestion in idQuestionsArray)
                        {
                            var questionGroupQuestion = new TB_M_QUESTIONGROUP_QUESTION();
                            questionGroupQuestion.QUESTIONGROUP_ID = questionGroup.QUESTIONGROUP_ID;
                            questionGroupQuestion.QUESTION_ID      = Convert.ToInt32(idQuestion, CultureInfo.InvariantCulture);
                            questionGroupQuestion.SEQ_NO           = i;
                            _context.TB_M_QUESTIONGROUP_QUESTION.Add(questionGroupQuestion);
                            Save();
                            i++;
                        }
                    }
                }
                else
                {
                    SetEntryStateModified(questionGroup);

                    //delete
                    var questionGroupQuestionList = _context.TB_M_QUESTIONGROUP_QUESTION.Where(a => a.QUESTIONGROUP_ID == questionGroupItemEntity.QuestionGroupId);
                    foreach (var questionGroupQuestionItem in questionGroupQuestionList)
                    {
                        _context.TB_M_QUESTIONGROUP_QUESTION.Remove(questionGroupQuestionItem);
                    }
                    Save();

                    //update
                    if (!string.IsNullOrEmpty(idQuestions))
                    {
                        string[] idQuestionsArray = idQuestions.Split(',');
                        int      i = 1;
                        foreach (var idQuestion in idQuestionsArray)
                        {
                            var questionGroupQuestion = new TB_M_QUESTIONGROUP_QUESTION();
                            questionGroupQuestion.QUESTIONGROUP_ID = questionGroup.QUESTIONGROUP_ID;
                            questionGroupQuestion.QUESTION_ID      = Convert.ToInt32(idQuestion, CultureInfo.InvariantCulture);
                            questionGroupQuestion.SEQ_NO           = i;
                            _context.TB_M_QUESTIONGROUP_QUESTION.Add(questionGroupQuestion);
                            Save();
                            i++;
                        }
                    }
                }

                Save();

                return(true);
            }
            catch (Exception ex)
            {
                Logger.Error("Exception occur:\n", ex);
                return(false);
            }
            finally
            {
                _context.Configuration.AutoDetectChangesEnabled = true;
            }
        }
Beispiel #4
0
        public ActionResult SaveQuestionGroup(QuestionGroupSaveViewModel questionGroupSaveVM, string idQuestions)
        {
            Logger.Info(_logMsg.Clear().SetPrefixMsg("Save Group Question").ToInputLogString());
            try
            {
                if (ModelState.IsValid)
                {
                    if (string.IsNullOrEmpty(questionGroupSaveVM.QuestionGroupProductIds))
                    {
                        ModelState.AddModelError("QuestionGroupProductIds", "กรุณาระบุ Product อย่างน้อย 1 รายการ");

                        return(Json(new
                        {
                            Valid = false,
                            Error = string.Empty,
                            Errors = GetModelValidationErrors()
                        }));
                    }

                    _questionGroupFacade = new QuestionGroupFacade();

                    var productIds = questionGroupSaveVM.QuestionGroupProductIds.Split(',').Select(Int32.Parse).ToList();
                    var questionGroupForSaveList = new List <QuestionGroupItemEntity>();

                    var name = questionGroupSaveVM.QuestionGroupName.NullSafeTrim();
                    var desc = questionGroupSaveVM.Description.NullSafeTrim();

                    var duplicateQuestionGroups = _questionGroupFacade.GetQuestionGroupDuplicates(productIds, name, questionGroupSaveVM.QuestionGroupId);

                    if (duplicateQuestionGroups.Count > 0)
                    {
                        var productNames = string.Join(",", duplicateQuestionGroups.Select(x => x.ProductName).ToList());
                        ModelState.AddModelError("QuestionGroupProductIds", string.Format(CultureInfo.InvariantCulture, "ชื่อกลุ่มคำถามที่บันทึก มีอยู่แล้วใน Product '{0}'", productNames));

                        return(Json(new
                        {
                            Valid = false,
                            Error = string.Empty,
                            Errors = GetModelValidationErrors()
                        }));
                    }

                    foreach (var productId in productIds)
                    {
                        var item = new QuestionGroupItemEntity
                        {
                            QuestionGroupId        = questionGroupSaveVM.QuestionGroupId,
                            QuestionGroupName      = name,
                            QuestionGroupProductId = productId,
                            Description            = desc,
                            Status = questionGroupSaveVM.Status,
                            UserId = UserInfo.UserId
                        };

                        questionGroupForSaveList.Add(item);
                    }

                    foreach (var questionGroup in questionGroupForSaveList)
                    {
                        _questionGroupFacade.SaveQuestionGroup(questionGroup, idQuestions);
                    }

                    return(Json(new { is_success = true, message = "บันทึก Group Question สำเร็จ" }));
                }

                return(Json(new
                {
                    is_success = false,
                    message = string.Empty
                }));
            }
            catch (Exception ex)
            {
                Logger.Error("Exception occur:\n", ex);
                Logger.Info(_logMsg.Clear().SetPrefixMsg("Save Group Question").Add("Error Message", ex.Message).ToFailLogString());
                return(Error(new HandleErrorInfo(ex, this.ControllerContext.RouteData.Values["controller"].ToString(),
                                                 this.ControllerContext.RouteData.Values["action"].ToString())));
            }
        }
Beispiel #5
0
 public bool SaveQuestionGroup(QuestionGroupItemEntity questionGroupItemEntity, string idQuestions)
 {
     _questionGroupDataAccess = new QuestionGroupDataAccess(_context);
     return(_questionGroupDataAccess.SaveQuestionGroup(questionGroupItemEntity, idQuestions));
 }