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; }
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(); }