private void GetAdminWeeklySummary(DateTime selectedStart, DateTime endDate)
        {
            AdminWeeklySummary summary = CallLogs.GetAdminWeeklySummary(selectedStart, endDate);

            ViewBag.TotalMinutes = summary.TotalHours ?? 0;
            ViewBag.TotalCalls   = summary.TotalCalls;

            IList <EvalEndCounts> endEvals = CallLogs.GetEvalEndCounts(selectedStart, endDate).ToList();

            int totalEndEvals       = endEvals.Count();
            int completedAssignment = (from e2 in endEvals where e2.EvalEndID == 2 select e2.CallCount).FirstOrDefault();
            int masteredMaterial    = (from e2 in endEvals where e2.EvalEndID == 3 select e2.CallCount).FirstOrDefault();

            if (totalEndEvals > 0)
            {
                ViewBag.CompletedAssignment = Math.Round(((Convert.ToDecimal(completedAssignment) / Convert.ToDecimal(summary.TotalCalls)) * 100), 1);
                ViewBag.MasteredMaterial    = Math.Round(((Convert.ToDecimal(masteredMaterial) / Convert.ToDecimal(summary.TotalCalls)) * 100), 1);
                var test = (completedAssignment / summary.TotalCalls) * 100;
            }
            else
            {
                ViewBag.CompletedAssignment = 0;
                ViewBag.MasteredMaterial    = 0;
            }

            string weekdayTotalCalls = "";
            string weekdayTotalTime  = "";

            DateTime reference = selectedStart;

            int                totalDailyCalls;
            decimal            totalDailyTime;
            AdminWeeklySummary callLogSummary;

            for (int i = 0; i < 28; i++)
            {
                if (reference.DayOfWeek != DayOfWeek.Saturday && reference.DayOfWeek != DayOfWeek.Sunday)
                {
                    callLogSummary     = CallLogs.GetAdminWeeklySummary(reference, reference.AddDays(1));
                    totalDailyCalls    = callLogSummary.TotalCalls;
                    totalDailyTime     = (callLogSummary.TotalHours == null) ? 0 : (decimal)callLogSummary.TotalHours;
                    weekdayTotalCalls += ",['" + reference.ToString("MM/dd") + "'," + totalDailyCalls + "]";
                    weekdayTotalTime  += ",['" + reference.ToString("MM/dd") + "'," + totalDailyTime + "]";
                }
                reference = reference.AddDays(1);
            }
            ViewBag.DailyTotalCalls = new HtmlString(weekdayTotalCalls);
            ViewBag.DailyTotalHours = new HtmlString(weekdayTotalTime);
        }
        public ActionResult AdminDashboard(DateTime?startDate = null)
        {
            // TODO: get dates from date/time pickers
            DateTime varForStartAndEndDate = startDate ?? DateTime.Today;
            DateTime endDate       = varForStartAndEndDate;
            DateTime selectedStart = varForStartAndEndDate.AddDays(-30);

            GetAllStudents(selectedStart, endDate);
            GetBeatMathCalls(selectedStart, endDate);
            GetCallsInForeignLanguage(selectedStart, endDate);
            GetCountyCountCalls(selectedStart, endDate);
            GetFeaturesUsed(selectedStart, endDate);
            GetNumberOfCallsPerSubject(selectedStart, endDate);
            GetAdminWeeklySummary(selectedStart, endDate);
            AdminWeeklySummary summary = CallLogs.GetAdminWeeklySummary(selectedStart, endDate);
            var sessions = CallLogs.GetSessionsByGrade(selectedStart, endDate).ToList();
            var k        = sessions.Single(s => s.Grade.ToLower() == "k");

            sessions.Remove(k);
            sessions = sessions.OrderBy(s => int.Parse(s.Grade)).ToList();
            sessions.Insert(0, k);
            return(View(sessions));
        }