Beispiel #1
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);
        }