protected override void OnLoad(EventArgs e) { if (!(Page.IsPostBack)) { Surveys = SurveysController.GetAll(ModuleId); QuestionsGrid.DataSource = Surveys; QuestionsGrid.DataBind(); } base.OnLoad(e); }
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); }
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); } } } }
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); } }