private MaskTree UpdateUserMaskAsPerOrderBy(OrderByExpression orderby, MaskTree userMask) { if (orderby != null) { var orderbyPaths = orderby.Select(e => string.Join("/", e.Path.Union(new string[] { e.Property }))); var orderbyMask = MaskTree.GetMaskTree(orderbyPaths); var orderbyAccess = Normalize(orderbyMask); userMask = userMask.UnionWith(orderbyAccess); } return(userMask); }
private MaskTree UpdateUserMaskAsPerAggregateSelect(AggregateSelectExpression select, MaskTree userMask) { if (select != null) { var aggSelectPaths = select.Select(e => (e.Path, e.Property)); var aggSelectMask = MaskTree.GetMaskTree(aggSelectPaths); var aggSelectAccess = Normalize(aggSelectMask); userMask = userMask.UnionWith(aggSelectAccess); } return(userMask); }
private MaskTree UpdateUserMaskAsPerFilter(FilterExpression filter, MaskTree userMask) { if (filter != null) { var filterPaths = filter.Select(e => (e.Path, e.Property)); var filterMask = MaskTree.GetMaskTree(filterPaths); var filterAccess = Normalize(filterMask); userMask = userMask.UnionWith(filterAccess); } return(userMask); }