예제 #1
0
        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());
            }
        }
예제 #2
0
        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());
            }
        }