public TabularDataQueryOptions GetOrCreateQueryOptions(IExternalTabularDataSource tabularDataSourceInfo)
        {
            if (tabularDataSourceInfo == null)
            {
                return(null);
            }

            if (_tabularDataQueryOptionsSet.ContainsKey(tabularDataSourceInfo.EntityName))
            {
                return(_tabularDataQueryOptionsSet[tabularDataSourceInfo.EntityName]);
            }

            var newEntry = new TabularDataQueryOptions(tabularDataSourceInfo);

            _tabularDataQueryOptionsSet.Add(tabularDataSourceInfo.EntityName, newEntry);
            return(newEntry);
        }
Example #2
0
        internal void Merge(TabularDataQueryOptions qo)
        {
            foreach (var select in qo.Selects)
            {
                AddSelect(select);
            }

            foreach (var entry in qo.Expands)
            {
                if (Expands.ContainsKey(entry.Key))
                {
                    MergeQueryOptions((ExpandQueryOptions)Expands[entry.Key], (ExpandQueryOptions)entry.Value);
                }
                else
                {
                    AddExpand(entry.Key, (ExpandQueryOptions)entry.Value);
                }
            }
        }