public ActionResult AddNewSelection(ViewQuestionModel objViewQuestionModel) { try { if (objViewQuestionModel != null && objViewQuestionModel.QuestionTypeDetail != null) { //Add New Option in single Select Option Type if (objViewQuestionModel.QuestionDetail.QuestionType == CommonUtils.QuestionType.SingleSelect.ToString()) { QuestionOptionsModel objQuestionOptionModel = new QuestionOptionsModel(); objViewQuestionModel.QuestionTypeDetail.SingleSelect.QuestionOptions.Add(objQuestionOptionModel); return(PartialView("_AddSingleSelect", objViewQuestionModel)); } else if (objViewQuestionModel.QuestionDetail.QuestionType == CommonUtils.QuestionType.MultiSelect.ToString()) { //Add New Option in Multi Select Option Type QuestionOptionsModel objQuestionOptionModel = new QuestionOptionsModel(); objViewQuestionModel.QuestionTypeDetail.MultiSelect.QuestionOptions.Add(objQuestionOptionModel); return(PartialView("_AddMultiSelect", objViewQuestionModel)); } } } catch (Exception ex) { ErrorLog(ex, "Question", "AddNewSelection"); } return(Json("", JsonRequestBehavior.AllowGet)); }
/// <summary> /// Added default 4 question options in case of single select or Multi select Question Type /// </summary> /// <returns></returns> private List <QuestionOptionsModel> AddDefaultOptions() { List <QuestionOptionsModel> lstDocumentQuesetionOptions = new List <QuestionOptionsModel>(); for (int i = 0; i < 4; i++) { QuestionOptionsModel objQuestionOptionModel = new QuestionOptionsModel(); lstDocumentQuesetionOptions.Add(objQuestionOptionModel); } return(lstDocumentQuesetionOptions); }
/// <summary> /// Get Question Detail with Question Properties and Options, Questions List based on /// </summary> /// <param name="objViewQuestionModel"></param> /// <returns></returns> public ViewQuestionModel GetQuestions(ViewQuestionModel objViewQuestionModel) { try { List <QuestionPropertyModel> lstQuestionPropertyModel = new List <QuestionPropertyModel>(); List <QuestionOptionsModel> lstQuestionOptionsModel = new List <QuestionOptionsModel>(); //get Question Detail with Properties and its values. DataTable dtQuesetionDetail = objDLQuestion.GetQuestionDetail(objViewQuestionModel.QuestionDetail.ID, objViewQuestionModel.QuestionDetail.QuestionID); if (dtQuesetionDetail != null && dtQuesetionDetail.Rows.Count > 0) { //fill Question detail Model && Temp Changes objViewQuestionModel.QuestionDetail = GetDataRowToEntity <QuestionDetailModel>(dtQuesetionDetail.Rows[0]); //Fill Question Property List for (int i = 0; i < dtQuesetionDetail.Rows.Count; i++) { QuestionPropertyModel objQuestionPropertyModel = new QuestionPropertyModel(); QuestionOptionsModel objQuestionOptionsModel = new QuestionOptionsModel(); objQuestionPropertyModel = GetDataRowToEntity <QuestionPropertyModel>(dtQuesetionDetail.Rows[i]); //Fill Question Options objQuestionOptionsModel = GetDataRowToEntity <QuestionOptionsModel>(dtQuesetionDetail.Rows[i]); if (objQuestionPropertyModel != null && objQuestionPropertyModel.QuestionPropertyID > 0) { //Add Question Property in List lstQuestionPropertyModel lstQuestionPropertyModel.Add(objQuestionPropertyModel); } if (objQuestionOptionsModel != null && objQuestionOptionsModel.QuestionOptionsID > 0) { //Add Question Options in List lstQuestionOptionsModel lstQuestionOptionsModel.Add(objQuestionOptionsModel); } } } //set QuestionPropertyList in ViewQuestionModel object objViewQuestionModel.QuestionPropertyList = lstQuestionPropertyModel; //set QuestionOptionsList in ViewQuestionModel object objViewQuestionModel.QuestionDetail.QuestionOptionsList = lstQuestionOptionsModel; //Get All Questions based on Application Mapping and sorting and paging parameters objViewQuestionModel = GetQuestionsList(objViewQuestionModel); } catch (Exception ex) { throw ex; } return(objViewQuestionModel); }
public static MvcHtmlString AnswerRadioButtonFor <TModel, TProperty>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TProperty> > expression, ViewQuestionAnswerModel objQuestionAnswerModel, QuestionOptionsModel objQuestionOption, int optionIndex) { MvcHtmlString html = default(MvcHtmlString); string strHtml = ""; string htmlFieldName = ExpressionHelper.GetExpressionText(expression); var properties = typeof(SingleSelectModel).GetProperties(); if (objQuestionAnswerModel != null && objQuestionAnswerModel.QuestionOptionsList != null) { object model = htmlHelper.ViewData.Model; DocumentResponseDetailModel objModel = (DocumentResponseDetailModel)model; //for (int i = 0; i < objQuestionTypeModel.lstSingleSelection.Count(); i++) //{ var Attributes = GetAttributes(objQuestionAnswerModel); Attributes["class"] += "radioanswer"; Attributes.Add("id", "rdb_" + objModel.Questions[objModel.Index].QuestionOptionsList[optionIndex].QuestionOptionsID + "_" + objModel.Questions[objModel.Index].QuestionID); Attributes.Add("Value", objModel.Questions[objModel.Index].QuestionOptionsList[optionIndex].QuestionOptionsID); html = System.Web.Mvc.Html.InputExtensions.RadioButton(htmlHelper, "questionAnswer_" + objModel.Questions[objModel.Index].QuestionID, objModel.Questions[objModel.Index].QuestionOptionsList[optionIndex].QuestionOptionsID, Attributes); //html = System.Web.Mvc.Html.InputExtensions.RadioButton(htmlHelper, "questionAnswer_" + objModel.Questions[objModel.Index].QuestionID, // objModel.Questions[objModel.Index].QuestionOptionsList[optionIndex].QuestionOptionsID, // new // { // @class = "radioanswer", // id = "rdb_" + objModel.Questions[objModel.Index].QuestionOptionsList[optionIndex].QuestionOptionsID + "_" + objModel.Questions[objModel.Index].QuestionID, // Value = objModel.Questions[objModel.Index].QuestionOptionsList[optionIndex].QuestionOptionsID // }); //html = System.Web.Mvc.Html.InputExtensions.RadioButton(htmlHelper, "rbSingle", objQuestionOption.OptionText, false, Attributes); strHtml += html.ToHtmlString(); html = System.Web.Mvc.Html.InputExtensions.HiddenFor(htmlHelper, expression); strHtml += html.ToHtmlString(); strHtml += "<label>" + objQuestionOption.OptionText + "</label>"; strHtml += GetStringFromModel(objQuestionAnswerModel.QuestionTypeDetail.SingleSelect, properties, htmlFieldName); // } } else { html = System.Web.Mvc.Html.InputExtensions.RadioButtonFor(htmlHelper, expression, ""); strHtml = html.ToHtmlString(); } return(new MvcHtmlString(strHtml)); }
/// <summary> /// Get Document Response For view /// </summary> /// <param name="ObjDocumentApplicationMappingDetail"></param> /// <returns></returns> public DocumentResponseDetailModel GetDocumentResponseForView(DocumentResponseDetailModel objDocumentResponseDetailModel) { DLDocumentResponse objDLDocumentResponse = new DLDocumentResponse(); //Get Document response detail with Document ,question , question property , question option and Document result. DataTable dtDocument = objDLDocumentResponse.GetDocumentResponseForView(objDocumentResponseDetailModel); if (dtDocument != null && dtDocument.Rows.Count > 0) { if (objDocumentResponseDetailModel != null) { //fill Document master detail int maxAttempt = 0; int noOfAttempt = 0; int.TryParse(Convert.ToString(dtDocument.Rows[0]["MaxNoOfAttempt"]), out maxAttempt); objDocumentResponseDetailModel.MaxNoOfAttempt = maxAttempt; int.TryParse(Convert.ToString(dtDocument.Rows[0]["NoOfAttempt"]), out noOfAttempt); objDocumentResponseDetailModel.NoOfAttempt = noOfAttempt; //1. Fill Document detail and application mapping detail //objDocumentResponseDetailModel.DocumentApplicationDetail = GetDataRowToEntity<DocumentApplicationMappingModel>(dtDocument.Rows[0]); //2. fill Document question details objDocumentResponseDetailModel.Questions = new List <ViewQuestionAnswerModel>(); for (int i = 0; i < dtDocument.Rows.Count; i++) { ViewQuestionAnswerModel objQuestionModel = new ViewQuestionAnswerModel(); //get question from list objQuestionModel = GetDataRowToEntity <ViewQuestionAnswerModel>(dtDocument.Rows[i]); if (objQuestionModel != null && !objDocumentResponseDetailModel.Questions.Any(a => a.QuestionID == objQuestionModel.QuestionID)) { DataView ViewQuestion = new DataView(dtDocument); //Filter question into view ViewQuestion.RowFilter = "QuestionID=" + objQuestionModel.QuestionID; DataTable dtFilter = ViewQuestion.ToTable(); objQuestionModel.QuestionOptionsList = new List <QuestionOptionsModel>(); objQuestionModel.QuestionPropertyList = new List <QuestionPropertyModel>(); for (int j = 0; j < dtFilter.Rows.Count; j++) { //fill question option detail QuestionOptionsModel objQuestionOptionModel = new QuestionOptionsModel(); objQuestionOptionModel = GetDataRowToEntity <QuestionOptionsModel>(dtFilter.Rows[j]); if (objQuestionOptionModel != null && objQuestionOptionModel.QuestionOptionsID > 0) { objQuestionModel.QuestionOptionsList.Add(objQuestionOptionModel); //get detail of single/multi selection if (objQuestionOptionModel.IsSelected) { if (!String.IsNullOrWhiteSpace(objQuestionModel.SelectedAnswers)) { objQuestionModel.SelectedAnswers = objQuestionModel.SelectedAnswers + "," + Convert.ToString(objQuestionOptionModel.QuestionOptionsID); } else { objQuestionModel.SelectedAnswers = Convert.ToString(objQuestionOptionModel.QuestionOptionsID); } } } //fill question property QuestionPropertyModel objQuestionPropertyModel = new QuestionPropertyModel(); objQuestionPropertyModel = GetDataRowToEntity <QuestionPropertyModel>(dtFilter.Rows[j]); if (objQuestionPropertyModel != null && !objQuestionModel.QuestionPropertyList.Any(a => a.QuestionTypeID == objQuestionPropertyModel.QuestionTypeID && a.QuestionPropertyID == objQuestionPropertyModel.QuestionPropertyID)) { objQuestionModel.QuestionPropertyList.Add(objQuestionPropertyModel); } } objDocumentResponseDetailModel.Questions.Add(objQuestionModel); } } //fill result detail objDocumentResponseDetailModel.Result = GetDataRowToEntity <DocumentResultModel>(dtDocument.Rows[0]); int totalRecord = Convert.ToInt32(dtDocument.Rows[0]["TotalCount"]); //calculating total paging objDocumentResponseDetailModel.TotalPages = TotalPage(totalRecord, objDocumentResponseDetailModel.PageSize); } } return(objDocumentResponseDetailModel); }
/// <summary> /// Get Document response detail /// </summary> /// <param name="ObjDocumentApplicationMappingDetail"></param> /// <returns></returns> public DocumentResponseDetailModel GetDocumentPreview(DocumentResponseDetailModel objDocumentResponseDetailModel) { //objDocumentResponseDetailModel.DocumentApplicationDetail = new DocumentApplicationMappingModel(); DLDocumentResponse objDLDocumentResponse = new DLDocumentResponse(); //Get Document with question detail into datatable DataTable dtDocument = objDLDocumentResponse.GetDocumentPreview(objDocumentResponseDetailModel); if (dtDocument != null && dtDocument.Rows.Count > 0) { if (objDocumentResponseDetailModel != null) { //1. Fill Document detail and application mapping detail //objDocumentResponseDetailModel.DocumentApplicationDetail = GetDataRowToEntity<DocumentApplicationMappingModel>(dtDocument.Rows[0]); //2. fill Document question details objDocumentResponseDetailModel.Questions = new List <ViewQuestionAnswerModel>(); for (int i = 0; i < dtDocument.Rows.Count; i++) { ViewQuestionAnswerModel objQuestionModel = new ViewQuestionAnswerModel(); //get question from list objQuestionModel = GetDataRowToEntity <ViewQuestionAnswerModel>(dtDocument.Rows[i]); if (objQuestionModel != null && !objDocumentResponseDetailModel.Questions.Any(a => a.QuestionID == objQuestionModel.QuestionID)) { DataView ViewQuestion = new DataView(dtDocument); ViewQuestion.RowFilter = "QuestionID=" + objQuestionModel.QuestionID; DataTable dtFilter = ViewQuestion.ToTable(); objQuestionModel.QuestionOptionsList = new List <QuestionOptionsModel>(); objQuestionModel.QuestionPropertyList = new List <QuestionPropertyModel>(); for (int j = 0; j < dtFilter.Rows.Count; j++) { //fill question option detail QuestionOptionsModel objQuestionOptionModel = new QuestionOptionsModel(); objQuestionOptionModel = GetDataRowToEntity <QuestionOptionsModel>(dtFilter.Rows[j]); if (objQuestionOptionModel != null && objQuestionOptionModel.QuestionOptionsID > 0) { objQuestionModel.QuestionOptionsList.Add(objQuestionOptionModel); if (objQuestionOptionModel.IsSelected) { if (!String.IsNullOrWhiteSpace(objQuestionModel.SelectedAnswers)) { objQuestionModel.SelectedAnswers = objQuestionModel.SelectedAnswers + "," + Convert.ToString(objQuestionOptionModel.QuestionOptionsID); } else { objQuestionModel.SelectedAnswers = Convert.ToString(objQuestionOptionModel.QuestionOptionsID); } } } //fill question property QuestionPropertyModel objQuestionPropertyModel = new QuestionPropertyModel(); objQuestionPropertyModel = GetDataRowToEntity <QuestionPropertyModel>(dtFilter.Rows[j]); if (objQuestionPropertyModel != null && !objQuestionModel.QuestionPropertyList.Any(a => a.QuestionTypeID == objQuestionPropertyModel.QuestionTypeID && a.QuestionPropertyID == objQuestionPropertyModel.QuestionPropertyID)) { objQuestionModel.QuestionPropertyList.Add(objQuestionPropertyModel); } } objDocumentResponseDetailModel.Questions.Add(objQuestionModel); } } } } return(objDocumentResponseDetailModel); }
/// <summary> /// Get Document Response For Save /// </summary> /// <param name="ObjDocumentApplicationMappingDetail"></param> /// <returns></returns> public DocumentResponseDetailModel GetDocumentResponseForSave(DocumentResponseDetailModel objDocumentResponseDetailModel) { DLDocumentResponse objDLDocumentResponse = new DLDocumentResponse(); //Get Document detail into datatable DataSet dtDocument = objDLDocumentResponse.GetDocumentResponseForSave(objDocumentResponseDetailModel); if (dtDocument != null && dtDocument.Tables.Count > 0 && dtDocument.Tables[0].Rows.Count > 0) { int totalRecord = Convert.ToInt32(dtDocument.Tables[0].Rows[0]["TotalCount"]); //calculating total paging objDocumentResponseDetailModel.TotalPages = TotalPage(totalRecord, 1); objDocumentResponseDetailModel.MaxPage = Convert.ToInt32(dtDocument.Tables[0].Rows[0]["MaxPage"]); } if (dtDocument != null && dtDocument.Tables.Count > 1 && dtDocument.Tables[1].Rows.Count > 0) { if (objDocumentResponseDetailModel != null) { //2. fill Document question details objDocumentResponseDetailModel.Questions = new List <ViewQuestionAnswerModel>(); for (int i = 0; i < dtDocument.Tables[1].Rows.Count; i++) { ViewQuestionAnswerModel objQuestionModel = new ViewQuestionAnswerModel(); //get question from list objQuestionModel = GetDataRowToEntity <ViewQuestionAnswerModel>(dtDocument.Tables[1].Rows[i]); if (objQuestionModel != null && !objDocumentResponseDetailModel.Questions.Any(a => a.QuestionID == objQuestionModel.QuestionID)) { DataView ViewQuestion = new DataView(dtDocument.Tables[1]); //filter Document question into Data view by question id. ViewQuestion.RowFilter = "QuestionID=" + objQuestionModel.QuestionID; DataTable dtFilter = ViewQuestion.ToTable(); objQuestionModel.QuestionOptionsList = new List <QuestionOptionsModel>(); objQuestionModel.QuestionPropertyList = new List <QuestionPropertyModel>(); for (int j = 0; j < dtFilter.Rows.Count; j++) { //fill question option detail QuestionOptionsModel objQuestionOptionModel = new QuestionOptionsModel(); objQuestionOptionModel = GetDataRowToEntity <QuestionOptionsModel>(dtFilter.Rows[j]); if (objQuestionOptionModel != null && objQuestionOptionModel.QuestionOptionsID > 0) { objQuestionModel.QuestionOptionsList.Add(objQuestionOptionModel); if (objQuestionOptionModel.IsSelected) { //Set single and multi selection detail. if (!String.IsNullOrWhiteSpace(objQuestionModel.SelectedAnswers)) { objQuestionModel.SelectedAnswers = objQuestionModel.SelectedAnswers + "," + Convert.ToString(objQuestionOptionModel.QuestionOptionsID); } else { objQuestionModel.SelectedAnswers = Convert.ToString(objQuestionOptionModel.QuestionOptionsID); } } } //fill question property QuestionPropertyModel objQuestionPropertyModel = new QuestionPropertyModel(); objQuestionPropertyModel = GetDataRowToEntity <QuestionPropertyModel>(dtFilter.Rows[j]); if (objQuestionPropertyModel != null && !objQuestionModel.QuestionPropertyList.Any(a => a.QuestionTypeID == objQuestionPropertyModel.QuestionTypeID && a.QuestionPropertyID == objQuestionPropertyModel.QuestionPropertyID)) { objQuestionModel.QuestionPropertyList.Add(objQuestionPropertyModel); } } objDocumentResponseDetailModel.Questions.Add(objQuestionModel); } } //fill Document result detail objDocumentResponseDetailModel.Result = GetDataRowToEntity <DocumentResultModel>(dtDocument.Tables[1].Rows[0]); } } return(objDocumentResponseDetailModel); }