Пример #1
0
        public async Task <ActionResult> SubmitSurvey(UpdateSurveyResponseModel model)
        {
            if (ModelState.IsValid)
            {
                var response = await WepApiMethod.SendApiAsync <string>(HttpVerbs.Post, $"RnP/Survey/SubmitAnswers", model);

                if (response.isSuccess)
                {
                    // log trail/system success notification/dashboard notification/email/sms upon submission
                    // log trail/system success/dashboard notification upon saving as draft

                    await LogActivity(Model.Modules.RnP, "Response submitted for Survey", model); // titled: " + response.Data, model);

                    TempData["SuccessMessage"] = "Response submitted successfully for Survey";    // titled: " + response.Data + ".";

                    // dashboard

                    return(RedirectToAction("ThankYou", "Home", new { area = "RnP", @id = model.SurveyID }));
                }
                else
                {
                    TempData["SuccessMessage"] = "Failed to submit response for survey.";

                    return(RedirectToAction("BrowseSurveys", "Home", new { area = "RnP" }));
                }
            }

            return(View(model));
        }
Пример #2
0
        public async Task <ActionResult> TakeSurvey(string refno, string email)
        {
            if (String.IsNullOrEmpty(refno) || String.IsNullOrEmpty(email))
            {
                return(HttpNotFound());
            }

            var resSurvey = await WepApiMethod.SendApiAsync <ReturnSurveyModel>(HttpVerbs.Get, $"RnP/Survey/GetLinkedSurvey?refno={refno}&email={email}");

            if (!resSurvey.isSuccess)
            {
                return(HttpNotFound());
            }

            var survey = resSurvey.Data;

            if (survey == null)
            {
                return(HttpNotFound());
            }

            var sresp = new UpdateSurveyResponseModel
            {
                SurveyID = survey.ID,
                Type     = Model.SurveyResponseTypes.Actual,
                Email    = email,
                Contents = ""
            };

            var srmodel = new ReturnSurveyResponseModel
            {
                Survey   = survey,
                Response = sresp
            };

            if (survey.StartDate > DateTime.Now)
            {
                return(RedirectToAction("SurveyNotStarted", "Home", new { area = "RnP", id = survey.ID }));
            }
            if (survey.EndDate < DateTime.Now)
            {
                return(RedirectToAction("SurveyExpired", "Home", new { area = "RnP", id = survey.ID }));
            }

            if (survey.RequireLogin && (!CurrentUser.IsAuthenticated()))
            {
                return(RedirectToAction("LoginAndReturn", "Auth", new { area = "", returnurl = "~/RnP/Home/TakeSurvey?refno=" + refno + "&email=" + email }));
            }
            else
            {
                return(View(srmodel));
            }
        }
Пример #3
0
        // Answer targeted survey
        // GET: RnP/Home/PrivateSurvey
        public async Task <ActionResult> PrivateSurvey(int?id)
        {
            if (id == null)
            {
                return(HttpNotFound());
            }

            var resSurvey = await WepApiMethod.SendApiAsync <ReturnSurveyModel>(HttpVerbs.Get, $"RnP/Survey?id={id}");

            if (!resSurvey.isSuccess)
            {
                return(HttpNotFound());
            }

            var survey = resSurvey.Data;

            if (survey == null)
            {
                return(HttpNotFound());
            }

            var sresp = new UpdateSurveyResponseModel
            {
                SurveyID = survey.ID,
                Type     = Model.SurveyResponseTypes.Actual,
                Contents = ""
            };

            var srmodel = new ReturnSurveyResponseModel
            {
                Survey   = survey,
                Response = sresp
            };

            if (survey.StartDate > DateTime.Now)
            {
                return(RedirectToAction("SurveyNotStarted", "Home", new { area = "RnP", id = survey.ID }));
            }
            if (survey.EndDate < DateTime.Now)
            {
                return(RedirectToAction("SurveyExpired", "Home", new { area = "RnP", id = survey.ID }));
            }

            return(View(srmodel));
        }