示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
        }