public void AddSortConditionsToQueryInnerOrderByTest() { // Arrange var query = "SELECT * FROM Alpha a JOIN (SELECT * FROM Omega ORDER BY Psi) o ON o.Psi = a.Gamma"; var sortingEngine = new SortingQueryEngine(); var mappings = new Dictionary <string, List <Expression <Func <Alpha, object> > > > { { nameof(Omega.Psi), new List <Expression <Func <Alpha, object> > > { a => a.Omega.Psi } } }; var queryParameters = new QueryParameters { SortingQueryProperties = new List <SortingQueryProperty> { new SortingQueryProperty { PropertyName = nameof(Alpha.Beta), SortOrder = SortOrder.Descending }, new SortingQueryProperty { PropertyName = nameof(Omega.Psi), SortOrder = SortOrder.Ascending } } }; var data = new WhereQuerySettings { PropertyMappings = new Dictionary <string, string> { { ".", "a" }, { ".Omega.Psi", "o.Psi" } } }; var orderByConditions = sortingEngine.BuildSortConditions(queryParameters, mappings); // Act var result = orderByConditions.Data.AddSortConditionsToQuery(query, data); // Assert result.Should().Be($"{query}{Environment.NewLine}ORDER BY{Environment.NewLine}a.Beta DESC, o.Psi ASC"); }
public void CalculateSortConditionsTest() { // Arrange var sortingEngine = new SortingQueryEngine(); var mappings = new Dictionary <string, List <Expression <Func <Alpha, object> > > > { { nameof(Omega.Psi), new List <Expression <Func <Alpha, object> > > { a => a.Omega.Psi } } }; var queryParameters = new QueryParameters { SortingQueryProperties = new List <SortingQueryProperty> { new SortingQueryProperty { PropertyName = nameof(Alpha.Beta), SortOrder = SortOrder.Descending }, new SortingQueryProperty { PropertyName = nameof(Omega.Psi), SortOrder = SortOrder.Ascending } } }; var data = new WhereQuerySettings { PropertyMappings = new Dictionary <string, string> { { ".", "a" }, { ".Omega.Psi", "o.Psi" } } }; var orderByConditions = sortingEngine.BuildSortConditions(queryParameters, mappings); // Act var result = orderByConditions.Data.CalculateSortConditions(data); // Assert result.Should().Be("a.Beta DESC, o.Psi ASC"); }
public void AddSortConditionsToQueryNoConditionsTest() { // Arrange var query = "SELECT * FROM Alpha a ORDER BY a.Gamma ASC"; var sortingEngine = new SortingQueryEngine(); var queryParameters = new QueryParameters { SortingQueryProperties = new List <SortingQueryProperty>() }; var data = new WhereQuerySettings(); var orderByConditions = sortingEngine.BuildSortConditions <Alpha>(queryParameters); // Act var result = orderByConditions.Data.AddSortConditionsToQuery(query, data); // Assert result.Should().Be(query); }
public static string CalculateSortConditions(this IEnumerable <OrderByCondition> orderByConditions, QuerySettings settings = null) { var sortingQueryEngine = new SortingQueryEngine(); return(sortingQueryEngine.CalculateSortConditions(orderByConditions, settings)); }
public static string AddSortConditionsToQuery(this IEnumerable <OrderByCondition> orderByConditions, string sqlQuery, QuerySettings settings = null) { var sortingQueryEngine = new SortingQueryEngine(); return(sortingQueryEngine.AddSortConditionsToQuery(orderByConditions, sqlQuery, settings)); }
public void Setup() { _classUnderTest = new SortingQueryEngine(); }