public int AddOrChange(SurveysInfo survey, string answersXml, int userID) { int id; using (IDataContext ctx = DataContext.Instance()) { id = ctx.ExecuteScalar <int>(CommandType.StoredProcedure, "{databaseOwner}{objectQualifier}Surveys_AddOrChange", new object[] { survey.SurveyID, survey.ModuleID, survey.Question, Convert.ToInt32(survey.OptionType), ((survey.IsStatistical == null) ? (bool?)null : survey.IsStatistical.Value), Convert.ToInt32(survey.RepeatDirection), ((survey.RepeatColumns == null) || (survey.RepeatColumns <= 1) ? (int?)null : survey.RepeatColumns.Value), ((survey.NumberOfRows == null) || (survey.NumberOfRows <= 1) ? (int?)null : survey.NumberOfRows.Value), Convert.ToInt32(survey.ChartType), userID, answersXml } ); } DataCache.ClearCache("Surveys"); DataCache.ClearCache("SurveyOptions"); return(id); }
public void Drop(SurveysInfo survey) { using (IDataContext ctx = DataContext.Instance()) { var rep = ctx.GetRepository <SurveysInfo>(); rep.Delete(survey); } }
public static SurveysInfo SurveyFromXml(string surveyXml) { SurveysInfo survey = null; if ((!(String.IsNullOrEmpty(surveyXml))) && (surveyXml != "<Survey />")) { survey = new SurveysInfo(); XmlNode surveyXmlNode = Globals.GetContent(surveyXml, "Survey"); survey.SurveyID = Convert.ToInt32(surveyXmlNode.SelectSingleNode("SurveyID").InnerText); survey.ModuleID = Convert.ToInt32(surveyXmlNode.SelectSingleNode("ModuleID").InnerText); survey.Question = surveyXmlNode.SelectSingleNode("Question").InnerText; survey.ViewOrder = Convert.ToInt32(surveyXmlNode.SelectSingleNode("ViewOrder").InnerText); survey.OptionType = (QuestionType)Convert.ToInt32(surveyXmlNode.SelectSingleNode("OptionType").InnerText); if ((surveyXmlNode.SelectSingleNode("IsStatistical") != null) && (!(String.IsNullOrEmpty(surveyXmlNode.SelectSingleNode("IsStatistical").InnerText)))) { survey.IsStatistical = Convert.ToBoolean(surveyXmlNode.SelectSingleNode("IsStatistical").InnerText); } if ((surveyXmlNode.SelectSingleNode("RepeatDirection") != null) && (!(String.IsNullOrEmpty(surveyXmlNode.SelectSingleNode("RepeatDirection").InnerText)))) { survey.RepeatDirection = (RepeatDirection)Convert.ToInt32(surveyXmlNode.SelectSingleNode("RepeatDirection").InnerText); } if ((surveyXmlNode.SelectSingleNode("RepeatColumns") != null) && (!(String.IsNullOrEmpty(surveyXmlNode.SelectSingleNode("RepeatColumns").InnerText)))) { survey.RepeatColumns = Convert.ToInt32(surveyXmlNode.SelectSingleNode("RepeatColumns").InnerText); } if ((surveyXmlNode.SelectSingleNode("NumberOfRows") != null) && (!(String.IsNullOrEmpty(surveyXmlNode.SelectSingleNode("NumberOfRows").InnerText)))) { survey.NumberOfRows = Convert.ToInt32(surveyXmlNode.SelectSingleNode("NumberOfRows").InnerText); } if ((surveyXmlNode.SelectSingleNode("ChartType") != null) && (!(string.IsNullOrEmpty(surveyXmlNode.SelectSingleNode("ChartType").InnerText)))) { survey.ChartType = (ChartType)Convert.ToInt32(surveyXmlNode.SelectSingleNode("ChartType").InnerText); } survey.CreatedDate = Convert.ToDateTime(surveyXmlNode.SelectSingleNode("CreatedDate").InnerText); survey.CreatedByUserID = Convert.ToInt32(surveyXmlNode.SelectSingleNode("CreatedByUserID").InnerText); if ((surveyXmlNode.SelectSingleNode("LastModifiedDate") != null) && (!(String.IsNullOrEmpty(surveyXmlNode.SelectSingleNode("LastModifiedDate").InnerText)))) { survey.LastModifiedDate = Convert.ToDateTime(surveyXmlNode.SelectSingleNode("LastModifiedDate").InnerText); } if ((surveyXmlNode.SelectSingleNode("LastModifiedByUserID") != null) && (!(String.IsNullOrEmpty(surveyXmlNode.SelectSingleNode("LastModifiedByUserID").InnerText)))) { survey.LastModifiedByUserID = Convert.ToInt32(surveyXmlNode.SelectSingleNode("LastModifiedByUserID").InnerText); } // When it comes from an export... if (surveyXmlNode.SelectSingleNode("SurveyOptions") != null) { survey.SurveyOptionsXml = surveyXmlNode.SelectSingleNode("SurveyOptions").OuterXml; } } return(survey); }
public void ImportModule(int moduleID, string content, string version, int userID) { string[] versions = version.Split(new char[] { '.' }); if (Convert.ToInt32(versions[0]) < 9) { // Old Xml data sructure by the original core module XmlNode surveysNode = Globals.GetContent(content, "surveys"); foreach (XmlNode surveyNode in surveysNode) { SurveysInfo survey = new SurveysInfo(); survey.SurveyID = 0; survey.ModuleID = moduleID; survey.Question = surveyNode.SelectSingleNode("question").InnerText; survey.ViewOrder = Convert.ToInt32(surveyNode.SelectSingleNode("vieworder").InnerText); survey.OptionType = (QuestionType)Convert.ToInt32(surveyNode.SelectSingleNode("optiontype").InnerText); XmlNode surveyOptionsNode = surveyNode.SelectSingleNode("surveyoptions"); List <SurveyOptionsInfo> surveyOptions = new List <SurveyOptionsInfo>(); foreach (XmlNode surveyOptionNode in surveyOptionsNode) { SurveyOptionsInfo surveyOption = new SurveyOptionsInfo(); surveyOption.SurveyOptionID = 0; surveyOption.OptionName = surveyOptionNode.SelectSingleNode("optionname").InnerText; surveyOption.IsCorrect = Convert.ToBoolean(surveyOptionNode.SelectSingleNode("iscorrect").InnerText); surveyOption.ViewOrder = Convert.ToInt32(surveyOptionNode.SelectSingleNode("vieworder").InnerText); surveyOptions.Add(surveyOption); } SurveysController.AddOrChange(survey, XmlDataProvider.SurveyOptionsToXml(surveyOptions), userID); } } else { XmlNode root = Globals.GetContent(content, "Survey"); string exportString = root.SelectSingleNode("Surveys").OuterXml; exportString = exportString.Replace("[MODULE_ID]", moduleID.ToString()).Replace("[CREATED_DATE]", string.Format("{0:yyyy-MM-dd hh:mm:ss}", DateTime.Now)).Replace("[USER_ID]", userID.ToString()); List <SurveysInfo> surveys = XmlDataProvider.SurveysFromXml(exportString); foreach (SurveysInfo survey in surveys) { survey.SurveyID = 0; survey.ModuleID = moduleID; SurveysController.AddOrChange(survey, survey.SurveyOptionsXml, userID); } } }
public static List <SurveysInfo> SurveysFromXml(string surveysXml) { List <SurveysInfo> surveys = null; if ((!(String.IsNullOrEmpty(surveysXml))) && (surveysXml != "<Surveys />")) { surveys = new List <SurveysInfo>(); XmlNode surveysXmlNode = Globals.GetContent(surveysXml, "Surveys"); foreach (XmlNode surveyXmlNode in surveysXmlNode) { SurveysInfo survey = SurveyFromXml(surveyXmlNode.OuterXml); if (survey != null) { surveys.Add(survey); } } } return(surveys); }
protected void QuestionsGrid_ItemCreated(object sender, DataGridItemEventArgs e) { DataGrid questionGrid = (DataGrid)sender; if (!(Page.IsPostBack)) { SurveysInfo si = (SurveysInfo)e.Item.DataItem; switch (e.Item.ItemType) { case ListItemType.Item: case ListItemType.AlternatingItem: Label questionTypeLabel = (Label)e.Item.FindControl("QuestionTypeLabel"); questionTypeLabel.Text = Localization.GetString(String.Format("QuestionType.{0}.Text", Enum.GetName(typeof(QuestionType), si.OptionType)), LocalResourceFile); break; default: break; } } }
public static string SurveyToXml(SurveysInfo survey, bool forExport) { StringBuilder surveyBuilder = new StringBuilder(); if (survey == null) { surveyBuilder.Append("<Survey />"); } else { surveyBuilder.Append("<Survey>"); surveyBuilder.Append(string.Format("<SurveyID>{0}</SurveyID>", (forExport ? 0 : survey.SurveyID))); surveyBuilder.Append(string.Format("<ModuleID>{0}</ModuleID>", (forExport ? "[MODULE_ID]" : survey.ModuleID.ToString()))); surveyBuilder.Append(string.Format("<Question><![CDATA[{0}]]></Question>", survey.Question)); surveyBuilder.Append(string.Format("<ViewOrder>{0}</ViewOrder>", survey.ViewOrder)); surveyBuilder.Append(string.Format("<OptionType>{0}</OptionType>", Convert.ToInt32(survey.OptionType))); if (survey.IsStatistical == null) { surveyBuilder.Append("<IsStatistical />"); } else { surveyBuilder.Append(string.Format("<IsStatistical>{0}</IsStatistical>", survey.IsStatistical.Value)); } surveyBuilder.Append(string.Format("<RepeatDirection>{0}</RepeatDirection>", Convert.ToInt32(survey.RepeatDirection))); if ((survey.RepeatColumns == null) || (survey.RepeatColumns <= 1)) { surveyBuilder.Append("<RepeatColumns />"); } else { surveyBuilder.Append(string.Format("<RepeatColumns>{0}</RepeatColumns>", survey.RepeatColumns.Value)); } if ((survey.NumberOfRows == null) || (survey.NumberOfRows <= 1)) { surveyBuilder.Append("<NumberOfRows />"); } else { surveyBuilder.Append(string.Format("<NumberOfRows>{0}</NumberOfRows>", survey.NumberOfRows.Value)); } if (survey.ChartType == ChartType.Bar) { surveyBuilder.Append("<ChartType />"); } else { surveyBuilder.Append(string.Format("<ChartType>{0}</ChartType>", Convert.ToInt32(survey.ChartType))); } surveyBuilder.Append(string.Format("<CreatedDate>{0}</CreatedDate>", (forExport ? "[CREATED_DATE]" : string.Format("{0:yyyy-MM-dd hh:mm:ss}", survey.CreatedDate)))); surveyBuilder.Append(string.Format("<CreatedByUserID>{0}</CreatedByUserID>", (forExport ? "[USER_ID]" : survey.CreatedByUserID.ToString()))); if ((survey.LastModifiedByUserID == null) || forExport) { surveyBuilder.Append("<LastModifiedByUserID />"); } else { surveyBuilder.Append(string.Format("<LastModifiedByUserID>{0}</LastModifiedByUserID>", survey.LastModifiedByUserID.Value)); } if ((survey.LastModifiedDate == null) || forExport) { surveyBuilder.Append("<LastModifiedDate />"); } else { surveyBuilder.Append(string.Format("<LastModifiedDate>{0:yyyy-MM-dd hh:mm:ss}</LastModifiedDate>", survey.LastModifiedDate.Value)); } if (forExport) { surveyBuilder.Append(SurveyOptionsToXml(SurveyOptionsController.GetAll(survey.SurveyID), forExport)); } surveyBuilder.Append("</Survey>"); } return(surveyBuilder.ToString()); }
public static string SurveyToXml(SurveysInfo survey) { return(SurveyToXml(survey, false)); }
protected void UpdateButton_Click(object sender, EventArgs e) { if (Page.IsValid) { try { SurveysInfo survey; if (SurveyID == 0) { survey = new SurveysInfo(); } else { survey = Survey; } survey.SurveyID = SurveyID; survey.ModuleID = ModuleId; survey.Question = QuestionTextBox.Text; survey.OptionType = (QuestionType)Convert.ToInt32(QuestionTypeDropDownList.SelectedValue); survey.IsStatistical = (SurveyType == SurveyType.Quiz ? IsStatisticalCheckBox.Checked : (bool?)null); if (survey.OptionType == QuestionType.Text) { int surveyOptionID = 0; if (SurveyID > 0) { surveyOptionID = SurveyOptionsController.GetAll(SurveyID)[0].SurveyOptionID; } Answers = DummyData.LoadDummyForTextAnswer(SurveyID, surveyOptionID, UserId); } else { if (Request.Form["SurveyOptionID"] == null) { // You can't add a single or multiple choice question with no answers... ErrorMessagePanel.Visible = true; ErrorMessageLabel.Text = Localization.GetString("NoAnswersProvided.Text", LocalResourceFile); } else { //if (SurveyID > 0) //{ List <SurveyOptionsInfo> answers = Answers; int[] surveyOptionIDs = (from p in Request.Form["SurveyOptionID"].Split(',') select int.Parse(p)).ToArray(); int viewOrder = 1; foreach (int surveyOptionID in surveyOptionIDs) { SurveyOptionsInfo answer = answers.Find(x => x.SurveyOptionID == surveyOptionID); answer.ViewOrder = viewOrder; viewOrder++; } Answers = answers; //} int correctAnswers = Answers.Where(a => a.IsCorrect).Count(); if ((SurveyType == SurveyType.Quiz) && (!(IsStatisticalCheckBox.Checked)) && (correctAnswers == 0)) { ErrorMessagePanel.Visible = true; ErrorMessageLabel.Text = Localization.GetString("NoCorrectAnswersProvided.Text", LocalResourceFile); } if ((SurveyType == SurveyType.Quiz) && (!(IsStatisticalCheckBox.Checked)) && (survey.OptionType == QuestionType.RadioButtons) && (correctAnswers > 1)) { ErrorMessagePanel.Visible = true; ErrorMessageLabel.Text = Localization.GetString("OnlyOneCorrectAnswerAllowed.Text", LocalResourceFile); } } } if (!(ErrorMessagePanel.Visible)) { survey.RepeatDirection = (RepeatDirection)Convert.ToInt32(RepeatDirectionDropDownList.SelectedValue); survey.RepeatColumns = (String.IsNullOrEmpty(RepeatColumnsTextBox.Text) ? (int?)null : Convert.ToInt32(RepeatColumnsTextBox.Text)); survey.NumberOfRows = (((String.IsNullOrEmpty(NumberOfRowsTextBox.Text)) || (NumberOfRowsTextBox.Text == "1")) ? (int?)null : Convert.ToInt32(NumberOfRowsTextBox.Text)); survey.ChartType = (ChartType)Convert.ToInt32(ChartTypeDropDownList.SelectedValue); SurveysController.AddOrChange(survey, XmlDataProvider.SurveyOptionsToXml(Answers), UserId); Response.Redirect(Globals.NavigateURL(), false); } } catch (Exception ex) { Exceptions.ProcessModuleLoadException(this, ex); } } }