Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }