Beispiel #1
0
        public ActionResult GetUsers(DataGridViewMetaData metaData)
        {
            IEnumerable <UserViewModel> data = _messageService.Dispatch(new GetUsersQuery());

            data = _dataGridViewService.ApplyMetaData(data, ref metaData);

            return(Json(new {
                metaData,
                data
            }));
        }
        public void DataGridViewService_Pages_Correctly_First_Page()
        {
            var service  = new DataGridViewService();
            var metaData = new DataGridViewMetaData()
            {
                rowsPerPage = 25
            };

            var result = service.ApplyMetaData(GenerateList(), ref metaData).ToList();

            result.Should().HaveCount(25);
        }
        public void DataGridViewService_Updates_MetaData()
        {
            var service  = new DataGridViewService();
            var metaData = new DataGridViewMetaData()
            {
                rowsPerPage = 25
            };

            service.ApplyMetaData(GenerateList(), ref metaData).ToList();

            metaData.totalRows.Should().Be(137);
        }
        public void DataGridViewService_Sorts_By_Id_For_Missing_SortOrder()
        {
            var service  = new DataGridViewService();
            var metaData = new DataGridViewMetaData()
            {
                rowsPerPage = 25
            };

            var result = service.ApplyMetaData(GenerateList(), ref metaData).ToList();

            result.Select(i => i.Id).Should().BeInAscendingOrder();
        }
        public void DataGridViewService_Sorts_By_Id_For_Invalid_Property()
        {
            var service  = new DataGridViewService();
            var metaData = new DataGridViewMetaData()
            {
                sortColumn  = "Wrong",
                rowsPerPage = 25
            };

            var result = service.ApplyMetaData(GenerateList(), ref metaData).ToList();

            result.Select(i => i.Id).Should().BeInAscendingOrder();
        }
        public void DataGridViewService_Sorts_Correctly()
        {
            var service  = new DataGridViewService();
            var metaData = new DataGridViewMetaData()
            {
                sortColumn  = "Name",
                rowsPerPage = 25
            };

            var result = service.ApplyMetaData(GenerateList(), ref metaData).ToList();

            result.Select(i => i.Name).Should().BeInAscendingOrder();
        }
Beispiel #7
0
        public JsonResult GetInvoiceGridItems(DataGridViewMetaData metaData)
        {
            var totalItems = 1254; // Random total count
            var items      = GenerateInvoiceGridItems().Take(totalItems);
            var totals     = new InvoiceGridItemViewModel()
            {
                InvoiceAmount     = items.Sum(i => i.InvoiceAmount),
                InvoiceOpenAmount = items.Sum(i => i.InvoiceOpenAmount)
            };

            if (metaData == null || metaData.rowsPerPage == 0)
            {
                metaData = new DataGridViewMetaData()
                {
                    sortColumn     = null,
                    sortDescending = false,
                    totalRows      = totalItems,
                    rowsPerPage    = 25,
                    page           = 0
                };
            }

            // Sorting
            if (metaData.sortColumn != null)
            {
                var property = typeof(InvoiceGridItemViewModel).GetProperty(metaData.sortColumn);

                if (property != null)
                {
                    if (metaData.sortDescending)
                    {
                        items = items.OrderByDescending(i => property.GetValue(i));
                    }
                    else
                    {
                        items = items.OrderBy(i => property.GetValue(i));
                    }
                }
            }

            // Paging
            items = items.Skip(metaData.page * metaData.rowsPerPage).Take(metaData.rowsPerPage);

            return(Json(new {
                metaData = metaData,
                data = items,
                totals = totals
            }));
        }
Beispiel #8
0
        private IEnumerable <TViewModel> Sort <TViewModel>(IEnumerable <TViewModel> query, DataGridViewMetaData metaData) where TViewModel : ViewModel
        {
            Func <TViewModel, object> orderBy = null;

            if (metaData.sortColumn != null)
            {
                var property = typeof(TViewModel).GetProperty(metaData.sortColumn);

                if (property != null)
                {
                    orderBy = i => property.GetValue(i);
                }
            }

            if (orderBy == null)
            {
                orderBy = i => i.Id;
            }

            if (metaData.sortDescending)
            {
                return(query.OrderByDescending(orderBy));
            }
            else
            {
                return(query.OrderBy(orderBy));
            }
        }
Beispiel #9
0
        public IEnumerable <TViewModel> ApplyMetaData <TViewModel>(IEnumerable <TViewModel> query, ref DataGridViewMetaData metaData) where TViewModel : ViewModel
        {
            metaData = GetMetaData(query, metaData);

            return(Page(Sort(query, metaData), metaData));
        }
Beispiel #10
0
 private DataGridViewMetaData GetMetaData <TViewModel>(IEnumerable <TViewModel> query, DataGridViewMetaData metaData) where TViewModel : ViewModel
 {
     return(new DataGridViewMetaData()
     {
         sortColumn = metaData.sortColumn,
         sortDescending = metaData.sortDescending,
         page = metaData.page,
         rowsPerPage = metaData.rowsPerPage,
         totalRows = query.Count()
     });
 }
Beispiel #11
0
 private IEnumerable <TViewModel> Page <TViewModel>(IEnumerable <TViewModel> query, DataGridViewMetaData metaData) where TViewModel : ViewModel
 {
     return(query.Skip(metaData.page * metaData.rowsPerPage).Take(metaData.rowsPerPage));
 }