コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }