public void AddingItemWithParamShouldAddToList()
        {
            //  Arrange
            var sortingInfo = new SortingInfo();

            //  Actual
            sortingInfo.Add("Param1", Sorting.Asc);
            sortingInfo.Add("Param2", Sorting.Dsc);

            //  Assertions
            Assert.Equal(2, sortingInfo.Size());
        }
        public void AddingItemWithParamShouldAddToListAtIndex()
        {
            //  Arrange
            var sortingInfo = new SortingInfo();

            //  Actual
            sortingInfo.Add(new SortingElement("Param1", Sorting.Asc));
            sortingInfo.Add(new SortingElement("Param2", Sorting.Dsc));
            sortingInfo.InsertAtIndex(0, "Param3", Sorting.Asc);
            sortingInfo.InsertAtIndex(0, "Param4", Sorting.Dsc);
            var sortingItems = sortingInfo.Iterator();

            //  Assertions
            Assert.Equal(4, sortingInfo.Size());
            Assert.Equal("Param4", sortingItems[0].GetOrderBy());
            Assert.Equal("Param3", sortingItems[1].GetOrderBy());
        }
        public override List <Company> GetList(PaginationParams paginationParams, SortingInfo sortingInfo)
        {
            sortingInfo.Add(nameof(Company.CompanyName), Sorting.Sorting.Asc);

            var query = Context.Companies.GetList(paginationParams).IncludeOrderBy(sortingInfo).Include(a => a.Address)
                        .AsNoTracking();

            return(query.ToList());
        }
        public void IncludeOrderByShouldReturnValidOrderedDscQuery()
        {
            // Arrange
            var sortingInfo = new SortingInfo();

            sortingInfo.Add(new SortingElement("Param1", Sorting.Dsc));
            sortingInfo.Add(new SortingElement("Param2", Sorting.Dsc));

            var items = new List <ItemsTest>
            {
                new ItemsTest
                {
                    Param1 = "A",
                    Param2 = "B",
                    Param3 = "C",
                    Param4 = "D",
                    Param5 = "E"
                },
                new ItemsTest
                {
                    Param1 = "A",
                    Param2 = "D",
                    Param3 = "E",
                    Param4 = "F",
                    Param5 = "G"
                },
                new ItemsTest
                {
                    Param1 = "B",
                    Param2 = "C",
                    Param3 = "D",
                    Param4 = "E",
                    Param5 = "F"
                },
                new ItemsTest
                {
                    Param1 = "B",
                    Param2 = "D",
                    Param3 = "E",
                    Param4 = "F",
                    Param5 = "G"
                },
                new ItemsTest
                {
                    Param1 = "C",
                    Param2 = "D",
                    Param3 = "E",
                    Param4 = "F",
                    Param5 = "G"
                },
                new ItemsTest
                {
                    Param1 = "C",
                    Param2 = "E",
                    Param3 = "F",
                    Param4 = "G",
                    Param5 = "H"
                }
            };

            var query = items.AsQueryable();

            // Actual
            var result = query.IncludeOrderBy(sortingInfo).ToList();

            // Assertions
            Assert.Equal("C", result[0].Param1);
            Assert.Equal("E", result[0].Param2);
            Assert.Equal("F", result[0].Param3);
            Assert.Equal("G", result[0].Param4);
            Assert.Equal("H", result[0].Param5);
            Assert.Equal("B", result[2].Param1);
            Assert.Equal("D", result[2].Param2);
            Assert.Equal("A", result[5].Param1);
            Assert.Equal("B", result[5].Param2);
        }