Esempio n. 1
0
        protected void btnSend_Click(object sender, EventArgs e)
        {
            radMP.Visible = false;
            pager.Controls.Clear();
            litHeader.Controls.Clear();
            litFooter.Controls.Clear();
            litHeader.Text    = Request.Form[hidResult.UniqueID];
            litHeader.Visible = true;
            UserDataContext udc        = UserDataContext.GetUserDataContext();
            StringBuilder   sbUserData = new StringBuilder();

            sbUserData.Append("<table style='width:100%'>");
            sbUserData.AppendFormat("<tr><td colspan='2'>{0}</td></tr>", Request.Form[hidQA.UniqueID]);
            sbUserData.AppendFormat("<tr><td>{0}: </td><td>{1} </td></tr>", "Anrede", Sex.SelectedItem.Text);
            sbUserData.AppendFormat("<tr><td>{0}: </td><td>{1} </td></tr>", "Name", Name.Text);
            sbUserData.AppendFormat("<tr><td>{0}: </td><td>{1} </td></tr>", "Vorname", Vorname.Text);
            sbUserData.AppendFormat("<tr><td>{0}: </td><td>{1} </td></tr>", "Firma", Firma.Text);
            sbUserData.AppendFormat("<tr><td>{0}: </td><td>{1} </td></tr>", "Strasse", AddressStreet.Text);
            sbUserData.AppendFormat("<tr><td>{0}: </td><td>{1} </td></tr>", "PLZ", AddressZip.Text);
            sbUserData.AppendFormat("<tr><td>{0}: </td><td>{1} </td></tr>", "Ort", AddressCity.Text);
            sbUserData.AppendFormat("<tr><td>{0}: </td><td>{1} </td></tr>", "E-Mail-Adresse", EMail.Text);
            sbUserData.AppendFormat("<tr><td>{0}: </td><td>{1} </td></tr>", "Telefon", Phone.Text);
            sbUserData.AppendFormat("<tr><td>{0}: </td><td>{1} </td></tr>", "Bemerkungen", Comment.Text);
            sbUserData.Append("</table>");
            hitbl_Survey_User_Result_SUR hitblSurveyUserResult = (from allUserResults in surveyDataClassDataContext.hitbl_Survey_User_Result_SURs.Where(x => x.SUR_ID == Request.Form[hidSURID.UniqueID].ToGuid())
                                                                  select allUserResults).SingleOrDefault();

            hitblSurveyUserResult.TestResultText = litHeader.Text;
            hitblSurveyUserResult.Name           = Name.Text;
            hitblSurveyUserResult.Vorname        = Vorname.Text;
            hitblSurveyUserResult.Email          = EMail.Text;
            hitblSurveyUserResult.Address        = string.Format("{0}<br/>{1}<br/>{2},{3}", Firma.Text, AddressStreet.Text, AddressZip.Text, AddressCity.Text);
            surveyDataClassDataContext.SubmitChanges(ConflictMode.FailOnFirstConflict);

            if (!string.IsNullOrEmpty(dataObjectSurvey.MailTo))
            {
                string subject = !dataObjectSurvey.IsContest ? string.Format(GuiLanguage.GetGuiLanguage("DataObjectSurvey").GetString("FormSurveySubject"), dataObjectSurvey.Title) : string.Format(GuiLanguage.GetGuiLanguage("DataObjectSurvey").GetString("FormContestSubject"), dataObjectSurvey.Title);
                SendEmail(new List <string>()
                {
                    dataObjectSurvey.MailTo
                }, subject, sbUserData.ToString(), EMail.Text);
            }

            pnlFormular.Visible = false;
        }
Esempio n. 2
0
        private void lbtnFinish_Click(object sender, EventArgs e)
        {
            bool          isInputComplete = true;
            StringBuilder sbMailText      = new StringBuilder();
            double        calculatePoints = 0.0;
            var           surveyPages     = from allPages in surveyDataClassDataContext.hitbl_Survey_Page_SPGs.Where(x => x.OBJ_ID == dataObjectSurvey.ObjectID.Value)
                                            orderby allPages.SortNumber ascending
                                            select allPages;

            countSurveyPages = surveyPages.Count();
            string answerKey = string.Empty;
            //Save The Test for The user
            hitbl_Survey_User_Result_SUR hitblSurveyUserResult = new hitbl_Survey_User_Result_SUR
            {
                SUR_ID    = Guid.NewGuid(),
                OBJ_ID    = dataObjectSurvey.ObjectID.Value,
                TestTitle = dataObjectSurvey.Title,
                TestDate  = DateTime.Now,
                Status    = 1,
                IsContest = dataObjectSurvey.IsContest
            };

            if (Request.IsAuthenticated && !dataObjectSurvey.ShowForm)
            {
                DataObjectUser dataObjectSurveyUser = DataObject.Load <DataObjectUser>(UserDataContext.GetUserDataContext().UserID);

                if (dataObjectSurveyUser.State != ObjectState.Added)
                {
                    hitblSurveyUserResult.Email   = dataObjectSurveyUser.GetMail;
                    hitblSurveyUserResult.Name    = dataObjectSurveyUser.Name;
                    hitblSurveyUserResult.Vorname = dataObjectSurveyUser.Vorname;
                    hitblSurveyUserResult.USR_ID  = dataObjectSurveyUser.ObjectID.Value;
                }
            }
            surveyDataClassDataContext.hitbl_Survey_User_Result_SURs.InsertOnSubmit(hitblSurveyUserResult);

            foreach (hitbl_Survey_Page_SPG surveyPage in surveyPages)
            {
                foreach (hitbl_Survey_Question_SQU surveyQuestion in surveyPage.hitbl_Survey_Question_SQUs.OrderBy(x => x.SortNumber))
                {
                    sbMailText.AppendFormat("{0} <br/>", surveyQuestion.QuestionText);
                    if (surveyQuestion.QuestionType != SurveyAnswersType.NotSelected && surveyQuestion.QuestionType != SurveyAnswersType.NoAnswers)
                    {
                        hitbl_Survey_User_ResultItem_SUI hitblSurveyUserResultItem = new hitbl_Survey_User_ResultItem_SUI
                        {
                            SUI_ID       = Guid.NewGuid(),
                            SQU_ID       = surveyQuestion.SQU_ID,
                            QuestionText = surveyQuestion.QuestionText,
                            Answer       = string.Empty,
                            AnswerWeight = 0.0
                        };
                        switch (surveyQuestion.QuestionType)
                        {
                        case SurveyAnswersType.SingleTextbox:
                            answerKey = string.Format("txt_{0}", surveyQuestion.SQU_ID);
                            TextBox txtAnswer = AnswerControls[answerKey] as TextBox;
                            if (txtAnswer.Text.Trim().Length > 0)
                            {
                                try
                                {
                                    hitblSurveyUserResultItem.AnswerWeight = (surveyQuestion.hitbl_Survey_Answer_Row_SARs[0].AnswerWeight.HasValue ? surveyQuestion.hitbl_Survey_Answer_Row_SARs[0].AnswerWeight.Value : 0.0);
                                    calculatePoints = calculatePoints + hitblSurveyUserResultItem.AnswerWeight.Value;
                                    hitblSurveyUserResultItem.Answer = txtAnswer.Text;
                                    sbMailText.AppendFormat("{0} <br/><hr/>", txtAnswer.Text);
                                }
                                catch (Exception exception)
                                {
                                }
                            }
                            break;

                        case SurveyAnswersType.Textarea:
                            answerKey = string.Format("txtArea_{0}", surveyQuestion.SQU_ID);
                            TextBox txtAreaAnswer = AnswerControls[answerKey] as TextBox;
                            if (txtAreaAnswer.Text.Trim().Length > 0)
                            {
                                try
                                {
                                    hitblSurveyUserResultItem.AnswerWeight = (surveyQuestion.hitbl_Survey_Answer_Row_SARs[0].AnswerWeight.HasValue ? surveyQuestion.hitbl_Survey_Answer_Row_SARs[0].AnswerWeight.Value : 0.0);
                                    calculatePoints = calculatePoints + hitblSurveyUserResultItem.AnswerWeight.Value;
                                    hitblSurveyUserResultItem.Answer = txtAreaAnswer.Text;
                                    sbMailText.AppendFormat("{0} <br/><hr/>", txtAreaAnswer.Text);
                                }
                                catch (Exception exception)
                                {
                                }
                            }
                            break;

                        case SurveyAnswersType.MultipleChoiceMultipleAnswers:
                            answerKey = string.Format("cbl{0}", surveyQuestion.SQU_ID);
                            CheckBoxList cbl = AnswerControls[answerKey] as CheckBoxList;
                            foreach (ListItem item in cbl.Items)
                            {
                                if (item.Selected)
                                {
                                    try
                                    {
                                        hitblSurveyUserResultItem.AnswerWeight = +Convert.ToDouble(item.Value.Split('_')[0]);
                                        calculatePoints = calculatePoints + hitblSurveyUserResultItem.AnswerWeight.Value;
                                        hitblSurveyUserResultItem.Answer += item.Text + ",";
                                    }
                                    catch (Exception exception)
                                    {
                                    }
                                }
                            }
                            hitblSurveyUserResultItem.Answer = hitblSurveyUserResultItem.Answer.TrimEnd(',');
                            sbMailText.AppendFormat("{0} <br/><hr/>", hitblSurveyUserResultItem.Answer);

                            break;

                        case SurveyAnswersType.MultipleChoiceOnlyOneAnswer:
                            answerKey = string.Format("rbl{0}", surveyQuestion.SQU_ID);
                            RadioButtonList rbl = AnswerControls[answerKey] as RadioButtonList;
                            if (rbl.SelectedIndex >= 0)
                            {
                                try
                                {
                                    hitblSurveyUserResultItem.AnswerWeight = +Convert.ToDouble(rbl.SelectedValue.Split('_')[0]);
                                    calculatePoints = calculatePoints + Convert.ToDouble(rbl.SelectedValue.Split('_')[0]);

                                    hitblSurveyUserResultItem.Answer += rbl.SelectedItem.Text;
                                    sbMailText.AppendFormat("{0} <br/><hr/>", rbl.SelectedItem.Text);
                                }
                                catch (Exception exception)
                                {
                                }
                            }
                            else
                            {
                                isInputComplete = false;
                            }
                            break;

                        default:
                            break;
                        }
                        hitblSurveyUserResult.hitbl_Survey_User_ResultItem_SUIs.Add(hitblSurveyUserResultItem);
                    }
                }
            }
            if (isInputComplete)
            {
                hitblSurveyUserResult.TotalTestResult = calculatePoints;
                if (dataObjectSurvey.PunkteGruen > dataObjectSurvey.PunkteRot)
                {
                    //The more points the "greener"
                    if (calculatePoints >= 0.0 && calculatePoints <= dataObjectSurvey.PunkteRot)
                    {
                        hitblSurveyUserResult.Light = SurveySemaphore.Red.ToString();
                    }
                    else if (calculatePoints > dataObjectSurvey.PunkteRot && calculatePoints <= dataObjectSurvey.PunkteGelb)
                    {
                        hitblSurveyUserResult.Light = SurveySemaphore.Yellow.ToString();
                    }
                    else
                    {
                        hitblSurveyUserResult.Light = SurveySemaphore.Green.ToString();
                    }
                }
                else
                {
                    //The more points the "reder"
                    if (calculatePoints >= 0.0 && calculatePoints <= dataObjectSurvey.PunkteGruen)
                    {
                        hitblSurveyUserResult.Light = SurveySemaphore.Red.ToString();
                    }
                    else if (calculatePoints > dataObjectSurvey.PunkteGruen && calculatePoints <= dataObjectSurvey.PunkteGelb)
                    {
                        hitblSurveyUserResult.Light = SurveySemaphore.Yellow.ToString();
                    }
                    else
                    {
                        hitblSurveyUserResult.Light = SurveySemaphore.Green.ToString();
                    }
                }
                radMP.Visible = false;
                pager.Controls.Clear();
                litHeader.Controls.Clear();
                litFooter.Controls.Clear();
                var surveyResult = (from allResults in surveyDataClassDataContext.hitbl_Survey_TestResult_STRs.Where(x => x.OBJ_ID == dataObjectSurvey.ObjectID.Value && calculatePoints >= x.ValueFrom && calculatePoints <= x.ValueTo)
                                    orderby allResults.ValueFrom ascending
                                    select allResults).SingleOrDefault();
                if (surveyResult != null)
                {
                    litHeader.Text = surveyResult.ResultText;
                }
                else
                {
                    litHeader.Text = !dataObjectSurvey.IsContest ? string.Format(GuiLanguage.GetGuiLanguage("DataObjectSurvey").GetString("DefaultTestResult"), dataObjectSurvey.Title) : string.Format(GuiLanguage.GetGuiLanguage("DataObjectSurvey").GetString("DefaultContestResult"), dataObjectSurvey.Title);
                }
                if (dataObjectSurvey.ShowForm)
                {
                    hidResult.Value               = litHeader.Text;
                    hidQA.Value                   = sbMailText.ToString();
                    hidSURID.Value                = hitblSurveyUserResult.SUR_ID.ToString();
                    pnlFormular.Visible           = true;
                    RevEMail.ValidationExpression = Constants.REGEX_EMAIL;
                    FillFormData();
                    litHeader.Text = string.Empty;
                }
                hitblSurveyUserResult.TestResultText = litHeader.Text;
                surveyDataClassDataContext.SubmitChanges(ConflictMode.FailOnFirstConflict);
            }
            else
            {
                litFooter.Text = "<div class=\"errorText\" style=\"margin-top:10px;\">Bitte beantworten Sie alle Fragen!</div>";
            }
        }