示例#1
0
        public bool SaveAnswer(PollUserAnswer answer)
        {
            bool ret = false;

            string pubnubChannel = answer.QuestionID;
            mrePublish.AddOrUpdate(pubnubChannel, new ManualResetEvent(false), (key, oldState) => new ManualResetEvent(false));
            messagePublished[pubnubChannel] = false;

            pubnub.Publish<string>(pubnubChannel, answer.UserAnswer, PollUserAnswerPublishRegularCallback, PollUserAnswerPublishErrorCallback);
            mrePublish[pubnubChannel].WaitOne(TimeSpan.FromSeconds(20));

            if (messagePublished[pubnubChannel])
            {
                ret = true;
            }

            return ret;
        }
示例#2
0
        public ActionResult SaveAnswer()
        {
            if (Request.Form != null && Request.Form.Count > 0 && Request.Form["PollAnswer"] != null)
            {
                PollUserAnswer answer = new PollUserAnswer();
                answer.Question = Request.Form["Question"];
                answer.QuestionID = Request.Form["ID"];
                answer.UserAnswer = Request.Form["PollAnswer"];

                PollWorker worker = new PollWorker();
                bool saveStatus = worker.SaveAnswer(answer);

                ViewData["PollAnswerSaveStatus"] = saveStatus;
                ViewData["ID"] = answer.QuestionID;
            }

            return View();
        }