public virtual JsonResult GetGlobalMoodReportData(string EventName, GlobalMoodReportRequestModel request)
 {
     try
     {
         var evnt            = GetEvent(EventName);
         var categoryName    = request.CategoryName ?? "Default";
         var category        = evnt.MoodCategories.FirstOrDefault(c => c.Name.Equals(categoryName, StringComparison.InvariantCultureIgnoreCase));
         var moodIsStaleMins = request.MoodIsStaleMins ?? _defaultMoodIsStaleMins;
         return(Json(GetGlobalMoodReport(evnt, category, request.ReportStart ?? DateTime.UtcNow.Date, request.ReportEnd ?? DateTime.UtcNow.AddDays(1).Date, moodIsStaleMins, false), JsonRequestBehavior.AllowGet));
     }
     catch (Exception ex)
     {
         if (request == null)
         {
             this.logger.Error(this.GetType(), ex, "Failed getting global mood report - model is null");
         }
         else
         {
             this.logger.Error(this.GetType(), ex, string.Format("Failed getting global mood report - from=[{0}] to=[{0}]", request.ReportStart, request.ReportEnd));
         }
         return(Json(new { }, JsonRequestBehavior.AllowGet));
     }
 }
        public virtual ActionResult MoodMap(string EventName, GlobalMoodReportRequestModel request)
        {
            try
            {
                var evnt         = GetEvent(EventName);
                var categoryName = request.CategoryName ?? "Default";
                var category     = evnt.MoodCategories.FirstOrDefault(c => c.Name.Equals(categoryName, StringComparison.InvariantCultureIgnoreCase));
                var reportData   = GetGlobalMoodReport(evnt, category, request.ReportStart ?? evnt.StartDate ?? DateTime.UtcNow.Date, request.ReportEnd ?? DateTime.UtcNow, request.MoodIsStaleMins ?? _defaultMoodIsStaleMins, false, 10);

                reportData.Snapshots.Skip(1).ForEach(s =>
                {
                    s.t = evnt.ConvertFromUTC(s.t).Value;
                });

                return(Request.IsAjaxRequest() ?
                       Json(reportData, JsonRequestBehavior.AllowGet) as ActionResult :
                       View(reportData));
            }
            catch (Exception ex)
            {
                this.logger.Error(this.GetType(), ex, string.Format("Failed getting mood map feed"));
                return(View());
            }
        }