Beispiel #1
0
#pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously
        async Task <IHttpActionResult> IWebhookHandler.ProcessRequestAsync(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            using (var scope = GetUserScope()) {
                string collectorToken = "NO_TOKEN";
                try {
                    var _queryParameters = HttpUtility.ParseQueryString(request.RequestUri.Query);
                    collectorToken = _queryParameters.Get(TOKEN_PARAM);
                    if (string.IsNullOrEmpty(collectorToken))
                    {
                        throw new Exception($"The {TOKEN_PARAM} Parameter was not specified in the Query String");
                    }
                    var pageNbrStr = _queryParameters.Get(PAGE_PARAM);
                    var pageNbr    = SurveyUtils.GetPageNumber(pageNbrStr);
                    if (pageNbrStr != null && request.Method == HttpMethod.Post)
                    {
                        SurveyUtils.SubmitSurvey(collectorToken, request, pageNbr);
                        pageNbr = SurveyUtils.GetNextOrPrevPageNbr(request, pageNbr);
                    }
                    var(content, newToken) = GetSurveyPage(collectorToken, pageNbr);
                    if (newToken != null && newToken != collectorToken)
                    {
                        return(new RedirectResult(request.RequestUri, newToken, "Was anonymous"));
                    }
                    else
                    {
                        return(new HtmlActionResult(content, HttpStatusCode.OK));
                    }
                } catch (Exception ex) {
                    PXTrace.WriteError(ex);
                    var content = GetBadRequestPage(collectorToken, $"{ex.Message}:\n{ex.StackTrace}");
                    return(new HtmlActionResult(content, HttpStatusCode.BadRequest));
                }
            }
        }
Beispiel #2
0
        protected override void OnInit(EventArgs e)
        {
            try
            {
                _personId = int.Parse(Request.QueryString["id"]);
                if (!Manager.ExistPerson(_personId))
                {
                    Response.Redirect("pages/Page404.aspx");
                    return;
                }

                if (Manager.AlreadyAnswerd(PollId, _personId))
                {
                    Response.Redirect("pages/EndSurvey.aspx");
                    return;
                }
            }
            catch (ThreadAbortException) {}
            catch (Exception)
            {
                Response.Redirect("pages/Page404.aspx");
            }
            var manager = new Manager();

            _poll             = manager.getPoll(PollId, _personId);
            _questionControls = SurveyUtils.RenderForm(_poll, questions, settings);

            submitButton.Click += submitAnswers;
            surveyForm.Controls.Add(submitButton);

            saveButton.Attributes.Add("formnovalidate", "true");
            saveButton.Click += saveAnswers;
            surveyForm.Controls.Add(saveButton);
        }
Beispiel #3
0
        protected void saveAnswers(object sender, EventArgs e)
        {
            var time = DateTime.Now;

            Manager.SaveAnswer(SurveyUtils.QuestionsWebControlToQuestions(_questionControls), _poll, ExternalId, _personId, time);
            //Response.Redirect("pages/saved.aspx");
            showTaost = true;
        }
Beispiel #4
0
        protected void submitAnswers(object sender, EventArgs e)
        {
            if (!SurveyUtils.Valid(_questionControls, settings))
            {
                return;
            }
            var time = DateTime.Now;

            Manager.SaveAnswer(SurveyUtils.QuestionsWebControlToQuestions(_questionControls), _poll, ExternalId, _personId, time);
            Manager.SaveInPollSurvey(PollId, _personId, time);
            Response.Redirect("pages/EndSurvey.aspx");
        }