public ActionResult GetMeasures(AggregateFunction a, int?c, int o, string m)
        {
            var analytics = Analytics.FromSession();

            var startDate = new DateTime(analytics.CalendarSettings.Year, analytics.CalendarSettings.Month, 1).AddMonths(o);

            if (c.HasValue)
            {
                analytics.CalendarSettings.CourseId = c.Value;
            }
            analytics.CalendarSettings.AggregateFunctionId = a;
            analytics.CalendarSettings.SelectedMeasures    = m;
            analytics.CalendarSettings.DailyAggregations   = CalendarDataProc.GetDailyAggregates
                                                             (
                startDate,
                startDate.AddMonths(2),
                analytics.ProcedureData.Where(x => x.IsSelected).Select(x => x.Id).ToList(),
                analytics.CalendarSettings.CourseId,
                analytics.CalendarSettings.SelectedMeasures,
                analytics.CalendarSettings.AggregateFunctionId == AggregateFunction.Avg
                                                             );

            analytics.CalendarSettings.Year  = startDate.Year;
            analytics.CalendarSettings.Month = startDate.Month;

            return(Json(analytics.CalendarSettings.ToJson(), JsonRequestBehavior.AllowGet));
        }
Esempio n. 2
0
        public ActionResult Charts(ProcedureResults procedureResults)
        {
            var analytics = Analytics.FromSession();

            analytics.ProcedureResults.ViewType = procedureResults.ViewType;

            return(View("Results", analytics.ProcedureResults));
        }
Esempio n. 3
0
        public ActionResult Criteria()
        {
            var analytics = Analytics.FromSession();

            if (analytics.Criteria == null)
            {
                analytics.Criteria = new Criteria();
            }
            return(View("Criteria", analytics.Criteria));
        }
Esempio n. 4
0
        private static Analytics UpdateSession(int?timeScale, DateTime?timeFrom, DateTime?timeTo, int?timeout, bool grayscale)
        {
            var analytics = Analytics.FromSession();

            analytics.VisualizationParams.TimeFrom  = timeFrom;
            analytics.VisualizationParams.TimeTo    = timeTo;
            analytics.VisualizationParams.TimeScale = timeScale.HasValue ? (TimeScale)timeScale.Value : TimeScale.Days;
            analytics.VisualizationParams.Timeout   = timeout;
            analytics.VisualizationParams.GrayScale = grayscale;

            return(analytics);
        }
Esempio n. 5
0
        public ActionResult GetScoreFor(CategoryColumn x)
        {
            var analytics = Analytics.FromSession();

            switch (x)
            {
            case CategoryColumn.Age:
                return(Json(((List <ProcedureDataItem>)analytics.ProcedureResults.Results)
                            .Where(r => r.Age.HasValue)
                            .GroupBy(r => r.Age.Value)
                            .Select(r => new { x = r.Key, y = Math.Truncate(100 * r.Average(s => s.Score)) / 100 })
                            .OrderBy(r => r.x)
                            .ToArray(), JsonRequestBehavior.AllowGet));

            case CategoryColumn.Class:
                return(Json(((List <ProcedureDataItem>)analytics.ProcedureResults.Results)
                            .Where(r => !string.IsNullOrWhiteSpace(r.Class))
                            .GroupBy(r => r.Class)
                            .Select(r => new { x = r.Key, y = Math.Truncate(100 * r.Average(s => s.Score)) / 100 })
                            .OrderBy(r => r.x)
                            .ToArray(), JsonRequestBehavior.AllowGet));

            case CategoryColumn.Ethnicity:
                return(Json(((List <ProcedureDataItem>)analytics.ProcedureResults.Results)
                            .Where(r => !string.IsNullOrWhiteSpace(r.Ethnicity))
                            .GroupBy(r => r.Ethnicity)
                            .Select(r => new { x = r.Key, y = Math.Truncate(100 * r.Average(s => s.Score)) / 100 })
                            .OrderBy(r => r.x)
                            .ToArray(), JsonRequestBehavior.AllowGet));

            case CategoryColumn.Gender:
                return(Json(((List <ProcedureDataItem>)analytics.ProcedureResults.Results)
                            .Where(r => !string.IsNullOrWhiteSpace(r.Gender))
                            .GroupBy(r => r.Gender)
                            .Select(r => new { x = r.Key, y = Math.Truncate(100 * r.Average(s => s.Score)) / 100 })
                            .OrderBy(r => r.x)
                            .ToArray(), JsonRequestBehavior.AllowGet));

            case CategoryColumn.InstitutionId:
                return(Json(((List <ProcedureDataItem>)analytics.ProcedureResults.Results)
                            .GroupBy(r => r.InstitutionId)
                            .Select(r => new { x = r.Key, y = Math.Truncate(100 * r.Average(s => s.Score)) / 100 })
                            .OrderBy(r => r.x)
                            .ToArray(), JsonRequestBehavior.AllowGet));

            default:
                return(Json(((List <ProcedureDataItem>)analytics.ProcedureResults.Results)
                            .GroupBy(r => r.Name)
                            .Select(r => new { x = r.Key, y = Math.Truncate(100 * r.Average(s => s.Score)) / 100 })
                            .OrderBy(r => r.x)
                            .ToArray(), JsonRequestBehavior.AllowGet));
            }
        }
Esempio n. 6
0
        //
        // GET: /DataVisualization/
        public ActionResult Index()
        {
            var analytics = Analytics.FromSession();

            if (analytics.VisualizationParams == null)
            {
                analytics.VisualizationParams = new VisualizationParams();
            }

            // always start from criteria data entry
            analytics.VisualizationParams.TimeFrom = analytics.Criteria.DateFrom;
            analytics.VisualizationParams.TimeTo   = analytics.Criteria.DateTo;

            return(View("~/Views/Analytics/DataVisualization.cshtml", analytics.VisualizationParams));
        }
Esempio n. 7
0
        public ActionResult Procedure(List <int> selectedDataItems)
        {
            var analytics = Analytics.FromSession();

            analytics.SelectedDataItems = selectedDataItems;

            if (analytics.ProcedureSettings == null)
            {
                analytics.ProcedureSettings = new ProcedureSettings
                {
                    SelectedProcedureType = ProcedureType.ErrorQuotient,
                    ProcedureParams       = new ErrorQuotientParams()
                };
            }
            return(View("Procedure", analytics.ProcedureSettings));
        }
        public ActionResult Index()
        {
            var analytics = Analytics.FromSession();

            if (analytics.CalendarSettings == null)
            {
                analytics.CalendarSettings = new CalendarSettings();
            }

            if (analytics.Criteria != null)
            {
                if (analytics.Criteria.DateFrom.HasValue)
                {
                    analytics.CalendarSettings.Year  = analytics.Criteria.DateFrom.Value.Year;
                    analytics.CalendarSettings.Month = analytics.Criteria.DateFrom.Value.Month;
                }
                analytics.CalendarSettings.CourseId = analytics.Criteria.CourseId;
            }

            return(View("~/Views/Analytics/CalendarVisualization.cshtml", analytics.CalendarSettings));
        }
Esempio n. 9
0
        public ActionResult ChangeProcedure(FormCollection form)
        {
            var analytics = Analytics.FromSession();

            analytics.ProcedureSettings.SelectedProcedureType = (ProcedureType)Enum.Parse(typeof(ProcedureType), form["SelectedProcedureType"]);

            if (analytics.ProcedureSettings.SelectedProcedureType == ProcedureType.WatwinScoring)
            {
                var procedureParams = analytics.ProcedureSettings.ProcedureParams as WatwinScoringParams;
                if (procedureParams == null)
                {
                    analytics.ProcedureSettings.ProcedureParams = new WatwinScoringParams();
                }
            }
            else
            {
                var procedureParams = analytics.ProcedureSettings.ProcedureParams as ErrorQuotientParams;
                if (procedureParams == null)
                {
                    analytics.ProcedureSettings.ProcedureParams = new ErrorQuotientParams();
                }
            }
            return(View("Procedure", analytics.ProcedureSettings));
        }
Esempio n. 10
0
        public ActionResult Refine(Criteria criteria)
        {
            var analytics = Analytics.FromSession();

            analytics.Criteria      = criteria;
            analytics.ProcedureData = ProcedureDataProc.Get(criteria)
                                      .Select(x => new ProcedureDataItem
            {
                IsSelected    = true,
                Id            = x.Id,
                InstitutionId = x.InstitutionId,
                Name          = x.Name,
                Gender        = ((Gender)x.Gender).ToString(),
                Age           = x.Age,
                Class         = x.Class,
                Deliverable   = x.Deliverable,
                Grade         = x.Grade,
                Ethnicity     = x.Ethnicity
            })
                                      .ToList();
            analytics.SelectedDataItems = null;

            return(View("Refine", analytics.ProcedureData));
        }
Esempio n. 11
0
        public ActionResult CalcWatwinScoring(WatwinScoringParams procedureParams)
        {
            var analytics = Analytics.FromSession();

            analytics.ProcedureSettings.ProcedureParams = procedureParams;
            analytics.ProcedureResults = new ProcedureResults
            {
                ViewType = ResultViewType.Tabular,
            };

            var resultlist = new List <ProcedureDataItem>();

            foreach (var u in WatwinScoringAnalytics.GetResults(procedureParams, analytics.Criteria.DateFrom, analytics.Criteria.DateTo, analytics.SelectedDataItems))
            {
                var user = analytics.ProcedureData.Where(r => r.IsSelected && r.Id == u.UserId).First();
                user.Score = u.Score;
                resultlist.Add(user);
            }

            analytics.ProcedureResults.Results = resultlist;
            ViewBag.ScoreTitle = "WS Score";

            return(View("Results", analytics.ProcedureResults));
        }
Esempio n. 12
0
 public ActionResult Procedure()
 {
     return(View("Procedure", Analytics.FromSession().ProcedureSettings));
 }
Esempio n. 13
0
 public ActionResult Refine()
 {
     return(View("Refine", Analytics.FromSession().ProcedureData));
 }