public PartialViewResult Vote([System.Web.Http.FromUri] int id, [System.Web.Http.FromBody] bool surveyResponse) { using (var ctx = new Service.SurveyContext()) { var model = ctx.SurveyResponses.Add(new Models.SurveyResponse() { AddDate = DateTime.UtcNow, Response = surveyResponse, SurveyId = id }); ctx.SaveChanges(); if (model.SurveyResponseID <= 0) { return(PartialView("_SurveyChart")); } // todo, just group them.. but since this is a binary survey... var surveyResponses = ctx.SurveyResponses.Where(x => x.SurveyId == id); var surveyYes = surveyResponses.Count(y => y.Response == true); var surveyNo = surveyResponses.Count(x => x.Response == false); var summaryModel = new Models.SurveyResponsesSummary() { One = surveyYes, SurveyId = id, Zero = surveyNo }; // ping var hubContext = GlobalHost.ConnectionManager.GetHubContext <Hubs.SurveyHub>(); hubContext.Clients.Group("survey-response-" + id).surveyResponse(new { zero = summaryModel.Zero, one = summaryModel.One }); return(PartialView("_SurveyChart", summaryModel)); } }
public ActionResult Create(string surveyQuestion, Models.Coordinates coords, int durationMinutes = 5, double distanceKm = 2) { using (var ctx = new Service.SurveyContext()) { ctx.Surveys.Add(new Models.Survey() { AddDate = DateTime.UtcNow, SurveyQuestion = surveyQuestion, ExpiritionDate = DateTime.UtcNow.AddMinutes(durationMinutes), Location = Helper.Geo.getCircle(coords, distanceKm) }); var t = ctx.SaveChanges(); // ping var hubContext = GlobalHost.ConnectionManager.GetHubContext <Hubs.SurveyHub>(); hubContext.Clients.Group("All").checkForNewSurveys(); } return(RedirectToAction("Index")); }