public ActionResult Get(StudentMetricListRequest context) { var previousNextModel = previousNextSessionProvider.GetPreviousNextModel(Request.UrlReferrer, "Metric", context.MetricVariantId); var totalRows = previousNextModel.EntityIdArray != null ? previousNextModel.EntityIdArray.Count() : 0; context.StudentIdList = totalRows == 0 ? new List<long>() : previousNextSessionProvider.GetStudentIdList(previousNextModel, context.PageNumber, context.PageSize, context.SortColumn, context.SortDirection); context.UniqueListId = previousNextModel.ListPersistenceUniqueId; var results = service.Get(context); var rows = results.ListMetadata.GenerateRows(results.Students.ToList<StudentWithMetrics>(), previousNextModel.ListPersistenceUniqueId); var model = new GridDataWithFootnotes { Rows = rows, TotalRows = results.EntityIds.Any() ? results.EntityIds.Count : totalRows }; // TODO: GKM - Review use of int[][] previousNextSessionProvider.SetPreviousNextDataModel(previousNextModel, context.SortColumn, context.SortDirection, results.EntityIds.Select(x => new StudentSchoolIdentifier { StudentUSI = x[0], SchoolId = (int)x[1] }).ToList()); // TODO: GKM - Review use of JsonResult instead of ViewResult + conneg action invoker return Json(model); }
public ActionResult Get(StudentMetricListMetaRequest context) { var results = metaService.Get(context); var model = new GridDataWithFootnotes { MetricFootnotes = results.MetricFootnotes, Columns = results.ListMetadata.GenerateHeader(), SchoolId = context.SchoolId, MetricVariantId = context.MetricVariantId }; previousNextSessionProvider.RemovePreviousNextDataModel(context.MetricVariantId); return View(model); }
public ActionResult Get(EdFiDashboardContext context, int pageNumber, int pageSize, int? sortColumn, string sortDirection) { var metricVariantId = context.MetricVariantId.GetValueOrDefault(); var previousNextModel = previousNextSessionProvider.GetPreviousNextModel(Request.UrlReferrer, "StudentList", metricVariantId); var results = service.Get(StudentPriorYearMetricListRequest.Create(context.SchoolId.GetValueOrDefault(), context.LocalEducationAgencyId.GetValueOrDefault(), metricVariantId)); var data = results.ListMetadata.GenerateRows(results.Students.ToList<StudentWithMetrics>(), results.UniqueListId, pageNumber, pageSize, sortColumn, sortDirection); var model = new GridDataWithFootnotes { Rows = data.Item2, TotalRows = results.Students.Count }; // TODO: GKM - Review use of int[][] previousNextSessionProvider.SetPreviousNextDataModel(previousNextModel, sortColumn, sortDirection, data.Item1.Select(x => new StudentSchoolIdentifier { StudentUSI = x[0], SchoolId = (int)x[1]}).ToList()); return Json(model); }
public ActionResult Get(EdFiDashboardContext context) { var schoolId = context.SchoolId.GetValueOrDefault(); var localEducationAgencyId = context.LocalEducationAgencyId.GetValueOrDefault(); var metricVariantId = context.MetricVariantId.GetValueOrDefault(); var results = service.Get(StudentPriorYearMetricListRequest.Create(schoolId, localEducationAgencyId, metricVariantId)); var model = new GridDataWithFootnotes { MetricFootnotes = results.MetricFootnotes, Columns = results.ListMetadata.GenerateHeader(), TotalRows = results.Students.Count, EntityIds = results.Students.Select(x => x.StudentUSI).ToList(), SchoolId = schoolId }; previousNextSessionProvider.RemovePreviousNextDataModel(context.MetricVariantId); return View(model); }
public ActionResult Get(EdFiDashboardContext context) { var metricVariantId = context.MetricVariantId.GetValueOrDefault(); var results = _service.Get(new StaffPriorYearMetricListRequest() { SchoolId = context.SchoolId.GetValueOrDefault(), MetricVariantId = metricVariantId }); var model = new GridDataWithFootnotes { MetricFootnotes = results.MetricFootnotes }; //Grouping headers and underlying columns. model.Columns = new List<Column> { new Column{IsVisibleByDefault=true, IsFixedColumn=true, Children= new List<Column>{ new ImageColumn{ Src = "LeftGrayCorner.png", IsVisibleByDefault=true, IsFixedColumn = true }, new TextColumn{DisplayName="Staff", IsVisibleByDefault=true, IsFixedColumn = true}, new TextColumn{DisplayName="E-Mail", IsVisibleByDefault=true, IsFixedColumn = true}, new TextColumn{DisplayName= results.MetricValueLabel, IsVisibleByDefault=true, IsFixedColumn = true}, }, }, new TextColumn{DisplayName="Spacer", IsVisibleByDefault=true, IsFixedColumn = true, Children= new List<Column>{new TextColumn{IsVisibleByDefault=true, IsFixedColumn = true}}, }, new TextColumn{DisplayName="EXPERIENCE", IsVisibleByDefault=true, Children= new List<Column>{ new TextColumn{DisplayName="Experience", IsVisibleByDefault=true}, }, }, new TextColumn{DisplayName="Spacer", IsVisibleByDefault=true, Children= new List<Column>{new TextColumn{IsVisibleByDefault=true}}, }, new TextColumn{DisplayName="EDUCATION", IsVisibleByDefault=true, Children= new List<Column>{ new TextColumn{DisplayName="Education", IsVisibleByDefault=true}, }, }, }; //Create the rows. foreach (var t in results.StaffMetrics) { var row = new List<object>(); //First cells (Spacer, Staff, Email, Metric) row.Add(new CellItem<double> { DV = string.Empty, V = 0 }); row.Add(new TeacherCellItem<string> { V = t.Name, DV = t.Name, TId = t.StaffUSI, LUId = results.UniqueListId, CId = results.SchoolId, Url = t.Href }); row.Add(new EmailCellItem<string> { V = t.Email, M = t.Email }); var cellType = typeof(CellItem<>).MakeGenericType(new Type[] { t.Value.GetType() }); dynamic cellForMetricValue = Activator.CreateInstance(cellType); cellForMetricValue.V = t.Value; cellForMetricValue.DV = t.DisplayValue; row.Add(cellForMetricValue); //Spacer row.Add(new SpacerCellItem<double> { DV = string.Empty, V = 0 }); row.Add(new YearsOfExperienceCellItem<int> { V = t.Experience, Y = t.Experience }); //Spacer row.Add(new SpacerCellItem<double> { DV = string.Empty, V = 0 }); row.Add(new HighestLevelOfEducationCellItem<string> { V = t.Education, E = t.Education }); model.Rows.Add(row); } return View(model); }