/// <summary> /// Set Question Type Validation like MaxChar,NoOfLine,MinValue , MaxValue etc. /// </summary> /// <param name="questionType"></param> /// <param name="lstQuestionProperty"></param> /// <param name="objQuestionTypeDetailModel"></param> /// <returns></returns> public QuestionTypeDetailModel SetQuestionTypeValidation(CommonUtils.QuestionType questionType, List <QuestionPropertyModel> lstQuestionProperty, QuestionTypeDetailModel objQuestionTypeDetailModel, string DropDownXML = null) { switch (questionType) { case CommonUtils.QuestionType.SingleLine: //if question type is single line than set MaxChar Property of SingleLineModel SingleLineModel objSingleLineModel = new SingleLineModel(); foreach (QuestionPropertyModel objQuestionPropertyModel in lstQuestionProperty) { if (objQuestionPropertyModel.PropertyText == CommonUtils.QuestionProperty.MAX_CHAR.ToString()) { objSingleLineModel.MaxChar = Convert.ToInt32(objQuestionPropertyModel.PropertyValue); } } objQuestionTypeDetailModel.SingleLineTextType = objSingleLineModel; break; case CommonUtils.QuestionType.DropDown: objQuestionTypeDetailModel.DropDownType = new SingleLineModel(); objQuestionTypeDetailModel.DropDownType.DropDownValue = DropDownXML; break; case CommonUtils.QuestionType.MultiLine: //if question type is MultiLine than set NoOfLines Property of MultiLineModel MultiLineModel objMultiLineModel = new MultiLineModel(); foreach (QuestionPropertyModel objQuestionPropertyModel in lstQuestionProperty) { if (objQuestionPropertyModel.PropertyText == CommonUtils.QuestionProperty.NO_OF_LINES.ToString()) { objMultiLineModel.NoOfLines = Convert.ToInt32(objQuestionPropertyModel.PropertyValue); } } objQuestionTypeDetailModel.MultiLineTextType = objMultiLineModel; break; case CommonUtils.QuestionType.Number: //if question type is Number than set MinValue,MaxValue,NoOfDecimal Properties of Number NumberModel objNumberModel = new NumberModel(); foreach (QuestionPropertyModel objQuestionPropertyModel in lstQuestionProperty) { if (objQuestionPropertyModel.PropertyText == CommonUtils.QuestionProperty.MIN_VALUE.ToString()) { objNumberModel.MinValue = Convert.ToInt32(objQuestionPropertyModel.PropertyValue); } else if (objQuestionPropertyModel.PropertyText == CommonUtils.QuestionProperty.MAX_VALUE.ToString()) { objNumberModel.MaxValue = Convert.ToInt32(objQuestionPropertyModel.PropertyValue); } else if (objQuestionPropertyModel.PropertyText == CommonUtils.QuestionProperty.NO_OF_DECIMAL.ToString()) { objNumberModel.NoOfDecimal = Convert.ToInt32(objQuestionPropertyModel.PropertyValue); } } objQuestionTypeDetailModel.NumberType = objNumberModel; break; case CommonUtils.QuestionType.DateAndTime: //if question type is DateAndTime than set IsDateOnly,DefaultValueType (like None,Todaysdate,specificDate), DateDefaultValue(in case of Specific date) Properties of DateAndTimeModel DateAndTimeModel objDateAndTimeModel = new DateAndTimeModel(); foreach (QuestionPropertyModel objQuestionPropertyModel in lstQuestionProperty) { if (objQuestionPropertyModel.PropertyText == CommonUtils.QuestionProperty.ISDATEONLY.ToString()) { objDateAndTimeModel.IsDateOnly = Convert.ToBoolean(objQuestionPropertyModel.PropertyValue); } else if (objQuestionPropertyModel.PropertyText == CommonUtils.QuestionProperty.DATETIME_DEFAULT_VALUE.ToString()) { objDateAndTimeModel.DefaultValueType = objQuestionPropertyModel.PropertyValue; objDateAndTimeModel.DateDefaultValue = objQuestionPropertyModel.DateDefaultValue; } } objQuestionTypeDetailModel.DateAndTimeType = objDateAndTimeModel; break; } return(objQuestionTypeDetailModel); }
/// <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 Question Properties List and set in QuestionTypeDetailModel Model /// </summary> /// <param name="questionType"></param> /// <param name="lstQuestionProperty"></param> /// <param name="objQuestionTypeDetailModel"></param> /// <param name="lstQuestionOptions"></param> /// <returns></returns> public QuestionTypeDetailModel SetQuestionProperties(string questionType, List <QuestionPropertyModel> lstQuestionProperty, QuestionTypeDetailModel objQuestionTypeDetailModel, List <QuestionOptionsModel> lstQuestionOptions, string DropDownXML = null) { //If lstQuestionOptions is greater than 0 means question type is single select or multiselect if (lstQuestionOptions != null && lstQuestionOptions.Count > 0) { //if question type is single select than set QuestionOptions of singleSelect Model in QuestionTypeDetailModel Model and return QuestionTypeDetailModel if (questionType == CommonUtils.QuestionType.SingleSelect.ToString()) { objQuestionTypeDetailModel.SingleSelect = new SingleSelectModel(); objQuestionTypeDetailModel.SingleSelect.QuestionOptions = lstQuestionOptions; return(objQuestionTypeDetailModel); } else if (questionType == CommonUtils.QuestionType.MultiSelect.ToString()) { //if question type is Multi select than set QuestionOptions of MultiSelect Model in QuestionTypeDetailModel Model and return QuestionTypeDetailModel objQuestionTypeDetailModel.MultiSelect = new MultiSelectModel(); objQuestionTypeDetailModel.MultiSelect.QuestionOptions = lstQuestionOptions; return(objQuestionTypeDetailModel); } } //if question type is single Line than set properties of SingleLine Model QuestionTypeDetailModel Model and return QuestionTypeDetailModel if (questionType == CommonUtils.QuestionType.SingleLine.ToString()) { return(SetQuestionTypeValidation(CommonUtils.QuestionType.SingleLine, lstQuestionProperty, objQuestionTypeDetailModel)); } else if (questionType == CommonUtils.QuestionType.MultiLine.ToString()) { //if question type is Multi Line than set properties of MultiLine Model QuestionTypeDetailModel Model and return QuestionTypeDetailModel return(SetQuestionTypeValidation(CommonUtils.QuestionType.MultiLine, lstQuestionProperty, objQuestionTypeDetailModel)); } else if (questionType == CommonUtils.QuestionType.Number.ToString()) { //if question type is Number than set properties of Number Model QuestionTypeDetailModel Model and return QuestionTypeDetailModel return(SetQuestionTypeValidation(CommonUtils.QuestionType.Number, lstQuestionProperty, objQuestionTypeDetailModel)); } else if (questionType == CommonUtils.QuestionType.DropDown.ToString()) { //if question type is Number than set properties of Number Model QuestionTypeDetailModel Model and return QuestionTypeDetailModel return(SetQuestionTypeValidation(CommonUtils.QuestionType.DropDown, lstQuestionProperty, objQuestionTypeDetailModel, DropDownXML)); } else { //if question type is DateTime than set properties of DateTime Model QuestionTypeDetailModel Model and return QuestionTypeDetailModel return(SetQuestionTypeValidation(CommonUtils.QuestionType.DateAndTime, lstQuestionProperty, objQuestionTypeDetailModel)); } }