public static Byte[] GenerateXLS(DashboardCollection datasource)
        {
            /* Call OpenOfficeXML need nuget package for epplus
               This can now be customize for each type of  excel export, also we can make a abstract calls for data dumps
               My want abastrct it out os multiple worksheets can be created.
            */

            using (ExcelPackage pck = new ExcelPackage())
            {
                //Create the worksheet 
                ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Dashboards");

                // Build Excel title
                BuildTitle(ws);
                //By Teachers
                BuildTeachersTable(ws, datasource.Teachers);
               
                //By Homerooms
                BuildHomeroomsTable(ws, datasource.Homerooms);
               
                //By Violations
                BuildViolationsTable(ws, datasource.OffenseTypes);

                return pck.GetAsByteArray();
            }
        }
        public async System.Threading.Tasks.Task<ActionResult> Dashboard()
        {
            DashboardCollection coll = new DashboardCollection();

            using (var connection = new MySqlConnection(ConfigurationManager.ConnectionStrings[Constants.ConnectionStringName].ConnectionString))
            {
                await connection.OpenAsync();
                
                var result = new OfficeVisitRepository(connection).GetOfficeVisitsByHomeroom();
                var result2 = new OfficeVisitRepository(connection).GetOfficeVisitsByOffenseType();
                var result3 = new OfficeVisitRepository(connection).GetOfficeVisitsByTeacher();
                var result4 = new OfficeVisitRepository(connection).GetOfficeVisitsCountByWeek();

                coll.Homerooms = (IEnumerable<OfficeVisitsByHomeroom>)result.Result.ToArray();
                coll.OffenseTypes = (IEnumerable<OfficeVisitsByOffenseType>)result2.Result.ToArray();
                coll.Teachers = (IEnumerable<OfficeVisitsByTeacher>)result3.Result.ToArray();
                coll.ByWeek = (IEnumerable<OfficeVisitsCountsByWeek>)result4.Result.ToArray();
                Session["Dashboard"] = coll;

                return View(coll);
            }
        }