private void Initialize() { if (!_initialized) { _initialized = true; int pageSize = ODataUri.GetPageSize(); if (pageSize > 0) { _restCount = (int?)ODataUri.Top ?? Int32.MaxValue; ODataUri.Top = pageSize; } if (!(ODataUri.Path.LastSegment is OperationSegment)) { ODataUri.OrderBy = OeSkipTokenParser.GetUniqueOrderBy(GetEntitySet(), ODataUri.OrderBy, ODataUri.Apply); if (ODataUri.SkipToken == null) { SkipTokenNameValues = Array.Empty <OeSkipTokenNameValue>(); } else { SkipTokenNameValues = OeSkipTokenParser.ParseSkipToken(EdmModel, ODataUri.OrderBy, ODataUri.SkipToken, out _restCount); } } } }
private static OrderProperty[] CreateOrderProperies(OeSkipTokenParser skipTokenParser, String skipToken) { var orderProperties = new List <OrderProperty>(); foreach (KeyValuePair <String, Object> keyValue in skipTokenParser.ParseSkipToken(skipToken)) { OrderByClause orderBy = GetOrderBy(skipTokenParser.UniqueOrderBy, keyValue.Key); var propertyNode = (SingleValuePropertyAccessNode)orderBy.Expression; orderProperties.Add(new OrderProperty(propertyNode, orderBy.Direction, keyValue.Value)); } return(orderProperties.ToArray()); }