Example #1
0
    public static EntitySort?Parse(string?sortString)
    {
        if (string.IsNullOrEmpty(sortString))
        {
            return(null);
        }

        var parts = sortString.Split(new[] { ":" }, StringSplitOptions.RemoveEmptyEntries);

        if (parts is null || parts.Length == 0)
        {
            return(null);
        }

        var sort = new EntitySort();

        sort.Name = parts[0].Trim();

        if (parts.Length >= 2)
        {
            sort.Direction = parts[1]?.Trim();
        }

        return(sort);
    }
        public static IQueryable <T> Sort <T>(this IQueryable <T> query, EntitySort sort)
        {
            if (sort == null)
            {
                return(query);
            }

            return(Sort(query, new[] { sort }));
        }
Example #3
0
    public EntitySelect(EntityFilter filter, EntitySort sort)
    {
        Filter = filter;

        if (sort != null)
        {
            Sort = new List <EntitySort> {
                sort
            }
        }
        ;
    }
Example #4
0
        public void Sort_ByNotExistProperty_ReturnsOriginalCollection(bool isAscending)
        {
            // Arrange
            const string notExistProperty = "notExistProperty";
            var          utility          = new EntitySort();
            var          originalList     = BuildUnsortedList();

            // Act
            var result = utility.Sort(originalList, notExistProperty, isAscending);

            // Assert
            result.ShouldBeSameAs(originalList);
        }
Example #5
0
        public void Parse(string source, string name, string direction)
        {
            var sort = EntitySort.Parse(source);

            if (string.IsNullOrEmpty(name) && string.IsNullOrEmpty(direction))
            {
                sort.Should().BeNull();
            }
            else
            {
                sort.Should().NotBeNull();
                sort.Name.Should().Be(name);
                sort.Direction.Should().Be(direction);
            }
        }
Example #6
0
    public EntitySelect(string?query, string?sort)
    {
        Query = query;

        var entitySort = EntitySort.Parse(sort);

        if (entitySort == null)
        {
            return;
        }

        Sort = new List <EntitySort> {
            entitySort
        };
    }
Example #7
0
        public void Sort_ByExcludedProperty_ReturnsOriginalCollection(bool isAscending)
        {
            // Arrange
            const string propertyToSort = "Id";
            var          utility        = new EntitySort();

            utility.ExcludeFromSorting <JustForUnitTest, int>(x => x.Id);
            var originalList = BuildUnsortedList();

            // Act
            var result = utility.Sort(originalList, propertyToSort, isAscending);

            // Assert
            result.ShouldBeSameAs(originalList);
        }
Example #8
0
        public void Sort_ByDescending_ReturnsSortedCollection()
        {
            // Arrange
            const bool   isAscending    = false;
            const string propertyToSort = "Id";
            var          utility        = new EntitySort();
            var          originalList   = BuildUnsortedList();
            var          expectedResult = originalList.OrderByDescending(x => x.Id).ToArray();

            // Act
            var result = utility.Sort(originalList, propertyToSort, isAscending).ToArray();

            // Assert
            result.ShouldBeInOrder(SortDirection.Descending, new JustForTestCompare());
        }
 public EntityQuery(EntityFilter filter, EntitySort sort, int page = 1, int pageSize = 20)
     : this(filter, new[] { sort }, page, pageSize)
 {
 }
Example #10
0
 public EntitySelectQuery(IPrincipal principal, EntityFilter filter, EntitySort sort)
     : this(principal, filter, new[] { sort })
 {
 }