protected override void OnLoad(EventArgs e)
 {
     if (!(Page.IsPostBack))
     {
         Surveys = SurveysController.GetAll(ModuleId);
         QuestionsGrid.DataSource = Surveys;
         QuestionsGrid.DataBind();
     }
     base.OnLoad(e);
 }
Beispiel #2
0
        protected override void OnPreRender(EventArgs e)
        {
            List <SurveysInfo> surveys = SurveysController.GetAll(ModuleId);

            foreach (SurveysInfo survey in surveys)
            {
                List <SurveyResultInfo> result          = SurveyResultsController.Get(survey.SurveyID);
                StringBuilder           labelBuilder    = new StringBuilder();
                StringBuilder           dataBuilder     = new StringBuilder();
                StringBuilder           bgColorsBuilder = new StringBuilder();
                StringBuilder           bColorsBuilder  = new StringBuilder();
                foreach (SurveyResultInfo r in result)
                {
                    labelBuilder.Append(string.Format("\"{0}\"", String.Format("{0}{1}", r.OptionName, r.IsCorrect ? string.Format(" {0}", Localization.GetString("CorrectAnswer.Text", LocalResourceFile)) : string.Empty)));
                    dataBuilder.Append(r.Votes);
                    bgColorsBuilder.Append(string.Format("\"{0}\"", Base.GetColor(result.IndexOf(r), (!(r.IsCorrect)))));
                    bColorsBuilder.Append(string.Format("\"{0}\"", r.IsCorrect ? "rgba(0,170,0,1)" : Base.GetColor(result.IndexOf(r), false)));
                    if (result.IndexOf(r) < result.Count - 1)
                    {
                        labelBuilder.Append(",");
                        dataBuilder.Append(",");
                        bgColorsBuilder.Append(",");
                        bColorsBuilder.Append(",");
                    }
                }

                CanvasControl canvas = (CanvasControl)LoadControl("Controls/CanvasControl.ascx");
                canvas.Header           = survey.Question;
                canvas.Labels           = labelBuilder.ToString();
                canvas.Data             = dataBuilder.ToString();
                canvas.BackgroundColors = bgColorsBuilder.ToString();
                canvas.BorderColors     = bColorsBuilder.ToString();
                canvas.ChartType        = survey.ChartType;
                ChartPlaceHolder.Controls.Add(canvas);
            }

            base.OnPreRender(e);
        }
Beispiel #3
0
        protected void SubmitSurveyButton_Click(object sender, EventArgs e)
        {
            // First, check CAPTCHA
            CaptchaControl captcha = (CaptchaControl)FindControl(string.Format("Captcha_{0}", ModuleId));

            if (((captcha != null) && (captcha.IsValid)) || (captcha == null))
            {
                // Then validate page...
                Page.Validate(string.Format("Survey_{0}_ValidationGroup", ModuleId));
                if (Page.IsValid)
                {
                    if (ContactByFaxOnlyCheckBox.Checked)
                    {
                        // if someone activates this checkbox send him home :-)
                        Response.Redirect("http://localhost/");
                    }
                    List <SurveysInfo>       surveys       = SurveysController.GetAll(ModuleId);
                    List <SurveyResultsInfo> surveyResults = new List <SurveyResultsInfo>();

                    Guid resultUserID = Guid.NewGuid();

                    foreach (SurveysInfo survey in surveys)
                    {
                        SurveyResultsInfo surveyResult;
                        switch (survey.OptionType)
                        {
                        case QuestionType.RadioButtons:
                            SurveyRadioButtons surveyRadioButtons = (SurveyRadioButtons)FindControl(string.Format("SurveyRadiobutton_{0}", survey.SurveyID));
                            surveyResult = new SurveyResultsInfo();
                            surveyResult.SurveyOptionID = Convert.ToInt32(surveyRadioButtons.SelectedValue);
                            surveyResult.UserID         = (UserId < 1 ? (int?)null : UserId);
                            surveyResult.IPAddress      = Request.ServerVariables["REMOTE_ADDR"];
                            surveyResult.IsCorrect      = SurveyOptionsController.GetAll(survey.SurveyID).Find(x => x.SurveyOptionID == surveyResult.SurveyOptionID).IsCorrect;
                            surveyResult.ResultUserID   = resultUserID;
                            surveyResults.Add(surveyResult);
                            break;

                        case QuestionType.CheckBoxes:
                            SurveyCheckBoxes surveyCheckBoxes = (SurveyCheckBoxes)FindControl(string.Format("SurveyCheckbox_{0}", survey.SurveyID));
                            foreach (int surveyOptionID in surveyCheckBoxes.SelectedItems)
                            {
                                surveyResult = new SurveyResultsInfo();
                                surveyResult.SurveyOptionID = surveyOptionID;
                                surveyResult.UserID         = (UserId < 1 ? (int?)null : UserId);
                                surveyResult.IPAddress      = Request.ServerVariables["REMOTE_ADDR"];
                                surveyResult.IsCorrect      = SurveyOptionsController.GetAll(survey.SurveyID).Find(x => x.SurveyOptionID == surveyResult.SurveyOptionID).IsCorrect;
                                surveyResult.ResultUserID   = resultUserID;
                                surveyResults.Add(surveyResult);
                            }
                            break;

                        case QuestionType.Text:
                            SurveyText surveyTextBox = (SurveyText)FindControl(string.Format("SurveyTextBox_{0}", survey.SurveyID));
                            surveyResult = new SurveyResultsInfo();
                            surveyResult.SurveyOptionID = surveyTextBox.SurveyOptionID;
                            surveyResult.UserID         = (UserId < 1 ? (int?)null : UserId);
                            surveyResult.IPAddress      = Request.ServerVariables["REMOTE_ADDR"];
                            surveyResult.TextAnswer     = PortalSecurity.InputFilter(surveyTextBox.Text, PortalSecurity.FilterFlag.MultiLine | PortalSecurity.FilterFlag.NoAngleBrackets | PortalSecurity.FilterFlag.NoMarkup | PortalSecurity.FilterFlag.NoScripting | PortalSecurity.FilterFlag.NoSQL);
                            surveyResult.IsCorrect      = true;
                            surveyResult.ResultUserID   = resultUserID;
                            surveyResults.Add(surveyResult);
                            break;

                        default:
                            break;
                        }
                    }
                    if (PortalSecurity.IsInRole("Administrators"))
                    {
                        // This is just to force the SQL Script SurveyResults_Add to add the result if the user is an administrator
                        SurveyResultsController.Add(surveyResults, false);
                    }
                    else
                    {
                        SurveyResultsController.Add(surveyResults, AuthorizedUsersOnly);
                    }
                    HttpCookie cookie = new HttpCookie(_cookie);
                    cookie.Value   = "True";
                    cookie.Expires = (SurveyClosingDate == DateTime.MinValue ? DateTime.MaxValue : SurveyClosingDate.AddDays(1));
                    Response.AppendCookie(cookie);
                    SubmitSurveyButton.Visible = false;
                    if (SurveyType == SurveyType.Survey)
                    {
                        SurveyPlaceHolder.Visible = false;
                        if (HasViewResultsPermission)
                        {
                            Response.Redirect(EditUrl("SurveyResults"), false);
                        }
                        else
                        {
                            SurveyMessageLabel.Text     = Localization.GetString("HasVoted.Text", LocalResourceFile);
                            SurveyMessageLabel.CssClass = "dnnFormMessage dnnFormSuccess";
                            SurveyMessageLabel.Visible  = true;
                        }
                    }
                    else
                    {
                        SurveyMessageLabel.Text     = Localization.GetString("QuizResults.Text", LocalResourceFile);
                        SurveyMessageLabel.CssClass = "dnnFormMessage dnnFormSuccess";
                        SurveyMessageLabel.Visible  = true;
                        SurveyPlaceHolder.Controls.Clear();
                        DisplayQuizResults(surveys, surveyResults);
                    }
                }
            }
        }
Beispiel #4
0
        protected override void OnLoad(EventArgs e)
        {
            try
            {
                SubmitSurveyButton.ValidationGroup = string.Format("Survey-{0}-ValidationGroup", ModuleId);
                if (IsSurveyExpired)
                {
                    if ((HasViewResultsPermission) && (!(PortalSecurity.IsInRole("Administrators"))))
                    {
                        Response.Redirect(EditUrl("SurveyResults"), false);
                    }
                    else
                    {
                        SurveyMessageLabel.Text     = string.Format(Localization.GetString("SurveyClosed.Text", LocalResourceFile), SurveyClosingDate);
                        SurveyMessageLabel.CssClass = "dnnFormMessage dnnFormWarning";
                        SurveyMessageLabel.Visible  = true;
                        SubmitSurveyButton.Visible  = false;
                    }
                }
                else
                {
                    if (ShowClosingDateMessage)
                    {
                        SurveyMessageLabel.Text     = string.Format(Localization.GetString("SurveyWillClose.Text", LocalResourceFile), SurveyClosingDate);
                        SurveyMessageLabel.CssClass = "dnnFormMessage dnnFormInfo";
                        SurveyMessageLabel.Visible  = true;
                    }

                    if ((AuthorizedUsersOnly) && (UserId < 1))
                    {
                        SurveyMessageLabel.Text     = Localization.GetString("MustBeSignedIn.Text", LocalResourceFile);
                        SurveyMessageLabel.CssClass = "dnnFormMessage dnnFormValidationSummary";
                        SurveyMessageLabel.Visible  = true;
                        SubmitSurveyButton.Visible  = false;
                    }
                    else
                    {
                        if (HasVoted)
                        {
                            if ((HasViewResultsPermission) && (!(PortalSecurity.IsInRole("Administrators"))))
                            {
                                Response.Redirect(EditUrl("SurveyResults"), false);
                            }
                            else
                            {
                                SurveyMessageLabel.Text     = string.Format(Localization.GetString("HasVoted.Text", LocalResourceFile), SurveyClosingDate);
                                SurveyMessageLabel.CssClass = "dnnFormMessage dnnFormSuccess";
                                SurveyMessageLabel.Visible  = true;
                                SubmitSurveyButton.Visible  = false;
                            }
                        }
                        else
                        {
                            CreateSurveyItems(SurveysController.GetAll(ModuleId));
                        }
                    }
                }

                if (HasViewResultsPermission)
                {
                    ViewResultsButton.Visible = true;
                }
                else
                {
                    ViewResultsButton.Visible = false;
                }

                if (HasEditPermission)
                {
                    ExportToCsvButton.Visible = true;
                }
                base.OnLoad(e);
            }
            catch (Exception ex)
            {
                Exceptions.ProcessModuleLoadException(this, ex);
            }
        }