/// <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); }
/// <summary> /// Fill Question Properties based on QuestionTypeDetail Model /// </summary> /// <param name="objQuestionTypeDetailModel"></param> /// <returns></returns> public List <QuestionPropertyModel> FillQuestionProperties(QuestionTypeDetailModel objQuestionTypeDetailModel) { List <QuestionPropertyModel> lstQuestionPropertyModel = new List <QuestionPropertyModel>(); QuestionPropertyModel objQuestionPropertyModel = new QuestionPropertyModel(); try { if (objQuestionTypeDetailModel != null) { //if SingleLineTextType Model is not null i.e. question is singleLineText than set Property MaxChar and Add in list lstQuestionPropertyModel if (objQuestionTypeDetailModel.SingleLineTextType != null) { if (objQuestionTypeDetailModel.SingleLineTextType.MaxChar != null && objQuestionTypeDetailModel.SingleLineTextType.MaxChar > 0) { objQuestionPropertyModel.PropertyText = CommonUtils.QuestionProperty.MAX_CHAR.ToString(); objQuestionPropertyModel.PropertyValue = objQuestionTypeDetailModel.SingleLineTextType.MaxChar.ToString(); lstQuestionPropertyModel.Add(objQuestionPropertyModel); } } else if (objQuestionTypeDetailModel.MultiLineTextType != null) { //if MultiLineTextType Model is not null i.e. question is MultiLineText than set Property No Of Lines and Add in list lstQuestionPropertyModel if (objQuestionTypeDetailModel.MultiLineTextType.NoOfLines != null && objQuestionTypeDetailModel.MultiLineTextType.NoOfLines > 0) { objQuestionPropertyModel.PropertyText = CommonUtils.QuestionProperty.NO_OF_LINES.ToString(); objQuestionPropertyModel.PropertyValue = objQuestionTypeDetailModel.MultiLineTextType.NoOfLines.ToString(); lstQuestionPropertyModel.Add(objQuestionPropertyModel); } } else if (objQuestionTypeDetailModel.NumberType != null) { //if NumberType Model is not null i.e. question is Number type than set Property MinValue, MaxValue, NoOfDecimal and Add in list lstQuestionPropertyModel if (objQuestionTypeDetailModel.NumberType.MinValue != null) { objQuestionPropertyModel.PropertyText = CommonUtils.QuestionProperty.MIN_VALUE.ToString(); objQuestionPropertyModel.PropertyValue = objQuestionTypeDetailModel.NumberType.MinValue.ToString(); lstQuestionPropertyModel.Add(objQuestionPropertyModel); } if (objQuestionTypeDetailModel.NumberType.MaxValue != null) { objQuestionPropertyModel = new QuestionPropertyModel(); objQuestionPropertyModel.PropertyText = CommonUtils.QuestionProperty.MAX_VALUE.ToString(); objQuestionPropertyModel.PropertyValue = objQuestionTypeDetailModel.NumberType.MaxValue.ToString(); lstQuestionPropertyModel.Add(objQuestionPropertyModel); } if (objQuestionTypeDetailModel.NumberType.NoOfDecimal != null) { objQuestionPropertyModel = new QuestionPropertyModel(); objQuestionPropertyModel.PropertyText = CommonUtils.QuestionProperty.NO_OF_DECIMAL.ToString(); objQuestionPropertyModel.PropertyValue = objQuestionTypeDetailModel.NumberType.NoOfDecimal.ToString(); lstQuestionPropertyModel.Add(objQuestionPropertyModel); } } else if (objQuestionTypeDetailModel.DateAndTimeType != null) { //if DateAndTimeType Model is not null i.e. question is DateAndTime type than set Property IsDateOnly, DefaultValue(in case of Specific date), DefaultValueType(None,Todaysdate,SpecificDate) and Add in list lstQuestionPropertyModel if (objQuestionTypeDetailModel.DateAndTimeType.IsDateOnly != null) { objQuestionPropertyModel.PropertyText = CommonUtils.QuestionProperty.ISDATEONLY.ToString(); objQuestionPropertyModel.PropertyValue = objQuestionTypeDetailModel.DateAndTimeType.IsDateOnly.ToString(); lstQuestionPropertyModel.Add(objQuestionPropertyModel); } if (objQuestionTypeDetailModel.DateAndTimeType.DefaultValueType != null) { objQuestionPropertyModel = new QuestionPropertyModel(); objQuestionPropertyModel.PropertyText = CommonUtils.QuestionProperty.DATETIME_DEFAULT_VALUE.ToString(); objQuestionPropertyModel.PropertyValue = objQuestionTypeDetailModel.DateAndTimeType.DefaultValueType.ToString(); objQuestionPropertyModel.DateDefaultValue = objQuestionTypeDetailModel.DateAndTimeType.DateDefaultValue; lstQuestionPropertyModel.Add(objQuestionPropertyModel); } } } } catch (Exception ex) { throw ex; } //return list of question properties return(lstQuestionPropertyModel); }
/// <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 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 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); }