public virtual ActionResult MoodThermometer(string EventName, MoodSnapshotRequestModel request) { try { var evnt = GetEvent(EventName); var categoryName = request.CategoryName ?? "Default"; var category = evnt.MoodCategories.FirstOrDefault(c => c.Name.Equals(categoryName, StringComparison.InvariantCultureIgnoreCase)); //var responses = GetSnapshotResponses(category, request.TimeOfSnapshot ?? DateTime.UtcNow, request.MoodIsStaleMins ?? _defaultMoodIsStaleMins); var snapshot = GetSnapshot(category, request.TimeOfSnapshot ?? DateTime.UtcNow, false); var positive = snapshot.d.Where(m => m.i <= 5).Sum(m => m.c); // var percentagePositive = responses.Any() ? ((decimal)responses.Where(r => r.Mood.MoodType == MoodType.Positive).Count() / (decimal)responses.Count()) * 100M : 0M; var percentagePositive = snapshot.r == 0 ? 50M : ((decimal)positive / (decimal)snapshot.r) * 100M; return(Request.IsAjaxRequest() ? Json(new { responseCount = snapshot.r, percentagePositive = percentagePositive }, JsonRequestBehavior.AllowGet) as ActionResult : View()); } catch (Exception ex) { this.logger.Error(this.GetType(), ex, string.Format("Failed getting mood thermometer")); return(View()); } }
public virtual ActionResult MoodTower(string EventName, MoodSnapshotRequestModel request) { try { var evnt = GetEvent(EventName); var categoryName = request.CategoryName ?? "Default"; var category = evnt.MoodCategories.FirstOrDefault(c => c.Name.Equals(categoryName, StringComparison.InvariantCultureIgnoreCase)); var snapshot = GetSnapshot(category, request.TimeOfSnapshot ?? DateTime.UtcNow, true, 10); return(Request.IsAjaxRequest() ? Json(snapshot, JsonRequestBehavior.AllowGet) as ActionResult : View(snapshot)); } catch (Exception ex) { this.logger.Error(this.GetType(), ex, string.Format("Failed getting mood tower feed")); return(View()); } }