public JsonResult DataTableAjaxHandler(DataTableRequestModel requestModel)
 {
     var currentUser = ((EducationSecurityPrincipal)HttpContext.User);
     ProviderClientDataTable dataTable = new ProviderClientDataTable(Request, currentUser);
     var viewModel = LogicManager.GenerateDataTableResultViewModel(requestModel, dataTable);
     return Json(viewModel, JsonRequestBehavior.AllowGet);
 }
        public void GivenAPublicField_WhenGettingTableData_ThenActionColumnDataContainsIdAndName()
        {
            var request = new DataTableRequestModel();
            var expected = new DataTableResultModel();
            MockLogicManager.Expect(m => m.GenerateDataTableResultViewModel(Arg.Is(request), Arg<IClientDataTable<CustomField>>.Is.NotNull)).Return(expected);

            var result = Target.DataTableAjaxHandler(request) as JsonResult;

            result.AssertGetData(expected);
        }
        public void GivenAProvider_WhenGettingTableData_ThenJsonResultContainsViewModelFromLogicManager()
        {
            var request = new DataTableRequestModel();
            var expected = new DataTableResultModel();
            MockLogicManager.Expect(m => m.GenerateDataTableResultViewModel(Arg.Is(request), Arg<IClientDataTable<Provider>>.Is.NotNull)).Return(expected);

            var result = Target.DataTableAjaxHandler(request) as JsonResult;

            result.AssertGetData(expected);
        }
        public void GivenLogicManagerGeneratesViewModel_WhenDataTableAjaxHandler_ThenJsonResultContainsViewModel()
        {
            DataTableResultModel expected = new DataTableResultModel();
            DataTableRequestModel requestModel = new DataTableRequestModel();
            MockLogicManager.Expect(m => m.GenerateDataTableResultViewModel(Arg.Is(requestModel), Arg<IClientDataTable<CustomField>>.Is.NotNull)).Return(expected);

            JsonResult result = Target.DataTableAjaxHandler(requestModel);

            result.AssertGetData(expected);
        }
        public void GivenStudentsWithSchools_WhenGettingDataTableAjaxHandler_ThenDataTableStateContainsColumns()
        {
            MockHttpContext.Request.Expect(m => m["iSortCol_0"]).Return("0");
            MockHttpContext.Request.Expect(m => m["sSortDir_0"]).Return("asc");
            DataTableRequestModel request = new DataTableRequestModel { iDisplayLength = 10 };

            JsonResult result = Target.DataTableAjaxHandler(request) as JsonResult;

            DataTableResultModel actual = result.AssertGetData<DataTableResultModel>();
            Assert.IsTrue(actual.aaData.Any());
        }
        public void GivenBinderCreatesResult_WhenGenerateDataTableResultViewModel_ThenReturnBindResult()
        {
            DataTableResultModel expected = new DataTableResultModel();
            DataTableRequestModel requestModel = new DataTableRequestModel();
            IClientDataTable<CustomField> dataTable = MockRepository.GenerateMock<IClientDataTable<CustomField>>();
            MockDataTableBinder.Expect(m => m.Bind(Arg<IQueryable<CustomField>>.List.ContainsAll(Repositories.MockCustomFieldRepository.Items.OfType<PrivateHealthField>()), Arg.Is(dataTable), Arg.Is(requestModel))).Return(expected);

            DataTableResultModel actual = Target.GenerateDataTableResultViewModel(requestModel, dataTable);

            Assert.AreEqual(expected, actual);
        }
Example #7
0
 protected IQueryable <T> GetPagedData(IQueryable <T> items, DataTableRequestModel requestModel)
 {
     if (requestModel.iDisplayLength != -1)
     {
         return(items.Skip(requestModel.iDisplayStart).Take(requestModel.iDisplayLength));
     }
     else
     {
         return(items);
     }
 }
        public void GivenBinderCreatesResult_WhenGenerateDataTableResultViewModel_ThenReturnBindResult()
        {
            DataTableResultModel expected = new DataTableResultModel();
            DataTableRequestModel requestModel = new DataTableRequestModel();
            IClientDataTable<ServiceAttendance> dataTable = MockRepository.GenerateMock<IClientDataTable<ServiceAttendance>>();
            MockDataTableBinder.Expect(m => m.Bind(Repositories.MockServiceAttendanceRepository.Items, dataTable, requestModel)).Return(expected);

            DataTableResultModel actual = Target.GenerateDataTableResultViewModel(requestModel, dataTable);

            Assert.AreEqual(expected, actual);
        }
        public void GivenSortOnId_WhenGenerateApprovalDataTableResultViewModel_ThenViewModelContainsData()
        {
            DataTableRequestModel model = new DataTableRequestModel { iDisplayLength = 10 };
            MockContext.Request.Expect(m => m["iSortCol_0"]).Return("0");
            MockContext.Request.Expect(m => m["sSortDir_0"]).Return("asc");
            StudentApprovalClientDataTable dataTable = new StudentApprovalClientDataTable(MockContext.Request);

            var actual = Target.GenerateApprovalDataTableResultViewModel(model, dataTable);

            Assert.AreEqual(10, actual.aaData.Count());
        }
        public void GivenSortOnFirstColumn_WhenGenerateDataTableResultViewModel_ThenSucceed()
        {
            DataTableRequestModel model = new DataTableRequestModel { iDisplayLength = 10 };
            User userEntity = EducationContext.Users.First(u => u.UserRoles.Select(ur => ur.Role).Any(r => r.Name == SecurityRoles.DataAdmin));
            EducationSecurityPrincipal user = new EducationSecurityPrincipal(userEntity);
            HttpRequestBase mockRequest = MockHttpContextFactory.CreateRequest();
            mockRequest.Expect(m => m["iSortCol_0"]).Return("0");
            mockRequest.Expect(m => m["sSortDir_0"]).Return("asc");
            ServiceTypeClientDataTable dataTable = new ServiceTypeClientDataTable(mockRequest, user);

            Target.GenerateDataTableResultViewModel(model, dataTable);
        }
        public void GivenSortOnStatus_WhenGenerateDataTableResultViewModel_ThenViewModelContainsData()
        {
            HttpContextBase mockHttpContext = MockHttpContextFactory.Create();
            DataTableRequestModel viewModel = new DataTableRequestModel { iDisplayLength = 10 };
            mockHttpContext.Request.Expect(m => m["iSortCol_0"]).Return("0");
            mockHttpContext.Request.Expect(m => m["sSortDir_0"]).Return("acs");
            UserClientDataTable dataTable = new UserClientDataTable(mockHttpContext.Request, new DefaultSecurityConfiguration());

            DataTableResultModel actual = Target.GenerateDataTableResultViewModel(viewModel, dataTable);

            Assert.AreNotEqual(0, actual.aaData.Count());
        }
        public void GivenItems_WhenCreateResultSet_ThenItemsGetSelectedByColumnArraySelector()
        {
            TestClientDataTable   target = CreateTarget(1, "asc");
            IQueryable <string>   items = new[] { "hi", "yo", "sup" }.AsQueryable();
            DataTableRequestModel requestModel = new DataTableRequestModel {
                iDisplayLength = -1
            };

            var actual = target.CreateResultSet(items, requestModel);

            actual.Cast <string[]>().ToList().AssertItemsEqual(new[] { new[] { "2", "hi" }, new[] { "2", "yo" }, new[] { "3", "sup" } });
        }
        public void GivenBinderCreatesResult_WhenGenerateDataTableResultViewModel_ThenReturnBindResult()
        {
            DataTableResultModel expected = new DataTableResultModel();
            DataTableRequestModel requestModel = new DataTableRequestModel();
            IClientDataTable<Program> dataTable = MockRepository.GenerateMock<IClientDataTable<Program>>();
            var expectedQuery = Data.Programs.Where(p => p.IsActive);
            MockDataTableBinder.Expect(m => m.Bind(Arg<IQueryable<Program>>.Matches(p => p.Where(pr => pr.IsActive).SequenceEqual(expectedQuery)), Arg.Is(dataTable), Arg.Is(requestModel))).Return(expected);

            DataTableResultModel actual = Target.GenerateDataTableResultViewModel(requestModel, dataTable);

            Assert.AreEqual(expected, actual);
        }
        public void GivenRequestStatusFilter_WhenGenerateDataTableResultViewModel_ThenRecordCountMatchesStudentsThatMatchStatus()
        {
            int expected = 3;
            MockContext.Request.Expect(m => m["requestStatuses"]).Return(Statuses.Open);
            DataTableRequestModel requestModel = new DataTableRequestModel { iDisplayLength = 10 };
            IEnumerable<Property> studentProperties = EducationContext.Properties.Where(p => p.EntityName == "Student");
            StudentClientDataTable dataTable = new StudentClientDataTable(MockContext.Request, User, studentProperties);

            var actual = Target.GenerateDataTableResultViewModel(requestModel, dataTable);

            Assert.AreEqual(expected, actual.iTotalDisplayRecords);
        }
        public void GivenItems_AndDisplayLengthSet_WhenCreateResultSet_ThenItemsCountDoesNotExceedDisplayLength()
        {
            TestClientDataTable   target = CreateTarget(1, "asc");
            IQueryable <string>   items = new[] { "hi", "yo", "sup" }.AsQueryable();
            DataTableRequestModel requestModel = new DataTableRequestModel {
                iDisplayLength = 2
            };

            var actual = target.CreateResultSet(items, requestModel);

            actual.Cast <string[]>().ToList().AssertItemsEqual(new[] { new[] { "2", "hi" }, new[] { "2", "yo" } });
        }
        public void GivenUserIsProvider_WhenGenerateDataTableResultViewModel_ThenSucceed()
        {
            DataTableRequestModel model = new DataTableRequestModel { iDisplayLength = 10 };
            User.Identity.User.UserRoles = new List<UserRole>
            {
                new UserRole
                {
                    Role = new Role { Name = SecurityRoles.Provider },
                    Providers = new List<Provider> { EducationContext.Providers.First() }
                }
            };
            ServiceOfferingClientDataTable dataTable = new ServiceOfferingClientDataTable(MockHttpContextFactory.CreateRequest(), User);

            Target.GenerateDataTableResultViewModel(model, dataTable);
        }
Example #17
0
        public virtual IList <object> CreateResultSet(IQueryable <T> items, DataTableRequestModel requestModel)
        {
            if (requestModel == null)
            {
                throw new ArgumentNullException("requestModel");
            }
            if (GetType() == typeof(StudentClientDataTable) || GetType() == typeof(UserClientDataTable))
            {
                var displayedItems      = GetPagedData(items, requestModel).WithTranslations();
                var materializedResults = displayedItems.ToList().AsQueryable().Select(DataSelector);
                return(materializedResults.ToList());
            }
            var selectedItems = GetPagedData(items, requestModel).Select(DataSelector).WithTranslations();
            var results       = selectedItems.ToList();

            return(results);
        }
        public void GivenSort_AndOneServiceAttendanceIsVeryLarge_WhenGenerateDataTableResultViewModel_ThenSucceed()
        {
            DataTableRequestModel model = new DataTableRequestModel();
            model.iDisplayLength = 10;
            var request = MockHttpContextFactory.CreateRequest();
            request.Expect(r => r["id"]).Return("1");
            request.Expect(r => r["iSortCol_0"]).Return("0");
            request.Expect(r => r["sSortDir_0"]).Return("asc");
            ServiceAttendanceClientDataTable dataTable = new ServiceAttendanceClientDataTable(request);
            ServiceAttendance attendance = new ServiceAttendance
            {
                DateAttended = DateTime.Now.AddYears(100),
                StudentAssignedOffering = EducationContext.StudentAssignedOfferings.Where(s => s.Id == 1).Single(),
                Subject = EducationContext.Subjects.First(),
                CreatingUser = User.Identity.User
            };
            EducationContext.ServiceAttendances.Add(attendance);
            EducationContext.SaveChanges();

            var actual = Target.GenerateDataTableResultViewModel(model, dataTable);
        }
        public void WhenGenerateApprovalDataTableResultViewModel_ThenSucceed()
        {
            DataTableRequestModel model = new DataTableRequestModel { iDisplayLength = 10 };
            StudentApprovalClientDataTable dataTable = new StudentApprovalClientDataTable(MockContext.Request);

            Target.GenerateApprovalDataTableResultViewModel(model, dataTable);
        }
        public void WhenGetDataTableAjaxHandler_ThenReturnViewModelFromLogicManager()
        {
            DataTableRequestModel model = new DataTableRequestModel();

            Target.DataTableAjaxHandler(model);

            MockLogicManager.AssertWasCalled(m => m.GenerateApprovalDataTableResultViewModel(Arg.Is(model), Arg<IClientDataTable<Student>>.Is.NotNull));
        }
        public void WhenGetDataTableAjaxHandler_ThenReturnGeneratedViewModel()
        {
            DataTableRequestModel model = new DataTableRequestModel();
            DataTableResultModel expected = new DataTableResultModel();
            MockLogicManager.Expect(m => m.GenerateApprovalDataTableResultViewModel(Arg.Is(model), Arg<IClientDataTable<Student>>.Is.NotNull)).Return(expected);

            JsonResult result = Target.DataTableAjaxHandler(model);

            result.AssertGetData(expected);
        }
 public abstract DataTableResultModel GenerateDataTableResultViewModel(DataTableRequestModel requestModel, IClientDataTable<CustomField> dataTable);
 public DataTableResultModel GenerateDataTableResultViewModel(DataTableRequestModel requestModel, IClientDataTable<User> dataTable)
 {
     IQueryable<User> items = UserRepository.Items.
                                                   Include("UserRoles.Role").
                                                   Include("UserRoles.Schools").
                                                   Include("UserRoles.Providers").
                                                   Include(u => u.LoginEvents);
     return DataTableBinder.Bind<User>(items, dataTable, requestModel);
 }
Example #24
0
 public DataTableResultModel Bind <TEntity>(IQueryable <TEntity> items, IClientDataTable <TEntity> dataTable, DataTableRequestModel requestModel)
 {
     if (items == null)
     {
         throw new ArgumentNullException("items");
     }
     if (dataTable == null)
     {
         throw new ArgumentNullException("dataTable");
     }
     if (requestModel == null)
     {
         throw new ArgumentNullException("requestModel");
     }
     return(BindCore(items, dataTable, requestModel));
 }
 public DataTableResultModel GenerateDataTableResultViewModel(DataTableRequestModel requestModel, IClientDataTable<ServiceOffering> dataTable)
 {
     IQueryable<ServiceOffering> items = ServiceOfferingRepository.Items.Where(s => s.IsActive);
     return DataTableBinder.Bind<ServiceOffering>(items, dataTable, requestModel);
 }
 public JsonResult DataTableAjaxHandler(DataTableRequestModel requestModel)
 {
     ServiceAttendanceClientDataTable dataTable = new ServiceAttendanceClientDataTable(Request);
     var viewModel = LogicManager.GenerateDataTableResultViewModel(requestModel, dataTable);
     return Json(viewModel, JsonRequestBehavior.AllowGet);
 }
 public JsonResult DataTableAjaxHandler(DataTableRequestModel requestModel)
 {
     StudentApprovalClientDataTable dataTable = new StudentApprovalClientDataTable(Request);
     DataTableResultModel viewModel = LogicManager.GenerateApprovalDataTableResultViewModel(requestModel, dataTable);
     return Json(viewModel, JsonRequestBehavior.AllowGet);
 }
 public void InitializeTest()
 {
     Target       = new DataTableBinder();
     DataTable    = MockRepository.GenerateMock <IClientDataTable <Program> >();
     RequestModel = new DataTableRequestModel();
 }
 public JsonResult DataTableAjaxHandler(DataTableRequestModel requestModel)
 {
     var dataTable = CreateClientDataTable();
     var viewModel = LogicManager.GenerateDataTableResultViewModel(requestModel, dataTable);
     return Json(viewModel, JsonRequestBehavior.AllowGet);
 }
Example #30
0
        private static DataTableResultModel BindCore <TEntity>(IQueryable <TEntity> items, IClientDataTable <TEntity> dataTable, DataTableRequestModel requestModel)
        {
            IQueryable <TEntity> query = dataTable.ApplyFilters(items);

            query = dataTable.ApplySort(query);
            var resultSet = dataTable.CreateResultSet(query, requestModel);

            return(new DataTableResultModel
            {
                sEcho = requestModel.sEcho,
                iTotalRecords = items.Count(),
                iTotalDisplayRecords = query.Count(),
                aaData = resultSet
            });
        }
 public override DataTableResultModel GenerateDataTableResultViewModel(DataTableRequestModel requestModel, IClientDataTable<CustomField> dataTable)
 {
     IQueryable<CustomField> items = CustomFieldRepository.Items.OfType<PrivateHealthField>();
     return DataTableBinder.Bind<CustomField>(items, dataTable, requestModel);
 }
 public DataTableResultModel GenerateAuditLoginDataTableResultViewModel(DataTableRequestModel requestModel, IClientDataTable<LoginEvent> dataTable)
 {
     if (requestModel == null)
     {
         throw new ArgumentNullException("requestModel");
     }
     IQueryable<LoginEvent> items = LoginEventRepository.Items;
     return DataTableBinder.Bind<LoginEvent>(items, dataTable, requestModel);
 }
        public void WhenGenerateDataTableResultViewModel_ThenSucceed()
        {
            EducationSecurityPrincipal user = new EducationSecurityPrincipal(EducationContext.Users.First());
            DataTableRequestModel model = new DataTableRequestModel();
            ProviderClientDataTable dataTable = new ProviderClientDataTable(MockHttpContextFactory.CreateRequest(), user);

            Target.GenerateDataTableResultViewModel(model, dataTable);
        }
        private void AssertDataTableAjaxHandler(bool expectedIsAdministrator)
        {
            var expected = new DataTableResultModel();
            var requestModel = new DataTableRequestModel();
            MockLogicManager.Expect(m => m.GenerateDataTableResultViewModel(requestModel, null)).IgnoreArguments().Do(new Func<DataTableRequestModel, IClientDataTable<ServiceType>, DataTableResultModel>((p, r) =>
            {
                ServiceTypeClientDataTable castR = r as ServiceTypeClientDataTable;
                Assert.IsNotNull(castR);
                Assert.AreEqual(expectedIsAdministrator, castR.IsAdministrator);
                return expected;
            }));

            JsonResult result = Target.DataTableAjaxHandler(requestModel);

            result.AssertGetData(expected);
        }
        public void WhenDataTableAjaxHandler_ThenJsonContainsGeneratedViewModel()
        {
            DataTableRequestModel model = new DataTableRequestModel();
            DataTableResultModel expected = new DataTableResultModel();
            MockLogicManager.Expect(m => m.GenerateDataTableResultViewModel(Arg.Is(model), Arg<IClientDataTable<ServiceOffering>>.Is.NotNull)).Return(expected);

            JsonResult result = Target.DataTableAjaxHandler(model);

            result.AssertGetData(expected);
        }
 public DataTableResultModel GenerateDataTableResultViewModel(DataTableRequestModel requestModel, IClientDataTable<Program> dataTable)
 {
     IQueryable<Program> items = ProgramRepository.Items.Where(p => p.IsActive);
     return DataTableBinder.Bind<Program>(items, dataTable, requestModel);
 }
        public void GivenValidModelWithId_WhenDataTableAjaxHandler_ThenJSonResultReturned()
        {
            HttpRequestBase MockRequest = MockRepository.GenerateMock<HttpRequestBase>();
            MockRequest.Expect(m => m["id"]).Return("1");
            DataTableRequestModel model = new DataTableRequestModel();
            MockHttpContext.Expect(c => c.Request).Return(MockRequest).Repeat.Any();

            var result = Target.DataTableAjaxHandler(model) as JsonResult;

            Assert.IsNotNull(result);
        }