Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 public void Drop(SurveysInfo survey)
 {
     using (IDataContext ctx = DataContext.Instance())
     {
         var rep = ctx.GetRepository <SurveysInfo>();
         rep.Delete(survey);
     }
 }
Ejemplo n.º 3
0
        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);
                }
            }
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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;
                }
            }
        }
Ejemplo n.º 7
0
        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());
        }
Ejemplo n.º 8
0
 public static string SurveyToXml(SurveysInfo survey)
 {
     return(SurveyToXml(survey, false));
 }
Ejemplo n.º 9
0
        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);
                }
            }
        }