Ejemplo n.º 1
0
        public ODataVirtualDataSourceDataProviderWorker(ODataVirtualDataSourceDataProviderWorkerSettings settings)
            : base(settings)
        {
            _baseUri           = settings.BaseUri;
            _entitySet         = settings.EntitySet;
            _sortDescriptions  = settings.SortDescriptions;
            _filterExpressions = settings.FilterExpressions;
            _desiredPropeties  = settings.PropertiesRequested;
            _groupDescriptions = settings.GroupDescriptions;
            if (_groupDescriptions != null && _groupDescriptions.Count > 0)
            {
                _sortDescriptions = new SortDescriptionCollection();
                foreach (var sd in settings.SortDescriptions)
                {
                    _sortDescriptions.Add(sd);
                }

                for (var i = 0; i < _groupDescriptions.Count; i++)
                {
                    _sortDescriptions.Insert(i, _groupDescriptions[i]);
                }
            }
            _isAggregationSupportedByServer = settings.IsAggregationSupportedByServer;
            Task.Factory.StartNew(() => DoWork(), TaskCreationOptions.LongRunning);
        }
Ejemplo n.º 2
0
        public SQLiteVirtualDataSourceDataProviderWorker(SQLiteVirtualDataSourceDataProviderWorkerSettings settings)
            : base(settings)
        {
            _tableExpression          = settings.TableExpression;
            _projectionType           = settings.ProjectionType;
            _selectExpressionOverride = settings.SelectExpressionOverride;
            _connection        = settings.Connection;
            _sortDescriptions  = settings.SortDescriptions;
            _groupDescriptions = settings.GroupDescriptions;
            _groupingField     = settings.GroupingColumn;

            if (_groupDescriptions != null && _groupDescriptions.Count > 0)
            {
                _sortDescriptions = new SortDescriptionCollection();
                foreach (var sd in settings.SortDescriptions)
                {
                    _sortDescriptions.Add(sd);
                }

                for (var i = 0; i < _groupDescriptions.Count; i++)
                {
                    _sortDescriptions.Insert(i, _groupDescriptions[i]);
                }
            }
            _filterExpressions = settings.FilterExpressions;
            _desiredPropeties  = settings.PropertiesRequested;
            _propertyMappings  = ResolvePropertyMappings();
            ActualSchema       = ResolveSchema();
            if (_groupDescriptions != null && _groupDescriptions.Count > 0)
            {
                _groupInformation = ResolveGroupInformation();
            }

            Task.Factory.StartNew(() => DoWork(), TaskCreationOptions.LongRunning);
        }
 public ODataVirtualDataSourceDataProvider()
 {
     _sortDescriptions = new SortDescriptionCollection();
     _sortDescriptions.CollectionChanged += SortDescriptions_CollectionChanged;
     _filterExpressions = new FilterExpressionCollection();
     _filterExpressions.CollectionChanged += FilterExpressions_CollectionChanged;
 }
 public ODataVirtualDataSourceDataProvider()
 {
     _sortDescriptions  = new SortDescriptionCollection();
     _groupDescriptions = new SortDescriptionCollection();
     _sortDescriptions.CollectionChanged  += SortDescriptions_CollectionChanged;
     _groupDescriptions.CollectionChanged += GroupDescriptions_CollectionChanged;
     _filterExpressions = new FilterExpressionCollection();
     _filterExpressions.CollectionChanged += FilterExpressions_CollectionChanged;
 }
Ejemplo n.º 5
0
        public void Refresh(bool savePreviousFilter = true)
        {
            if (bRefresh != null)
            {
                bRefresh.IsEnabled = false;
            }
            FilterExpressionCollection filterExpressions = null;

            if (_source != null)
            {
                //Сохраняем прежний фильтр
                if (savePreviousFilter)
                {
                    filterExpressions = _source.FilterExpressions;
                }

                DataSource = null;
                _source.Dispose();
            }

            if (BeforeRefresh != null)
            {
                BeforeRefresh(this, EventArgs.Empty);
            }

            //Dispatcher.BeginInvoke((Action) (() =>
            //{
            RecreateSource();

            if (savePreviousFilter && _source != null && _source.FilterExpressions != null && filterExpressions != null)
            {
                //Фосстанавливаем прежний фильтр
                foreach (var fe in filterExpressions)
                {
                    _source.FilterExpressions.Add(fe);
                }
            }
            //}));
        }
 public ODataVirtualDataSourceDataProviderWorker(ODataVirtualDataSourceDataProviderWorkerSettings settings)
     :base(settings)
 {
     _baseUri = settings.BaseUri;
     _entitySet = settings.EntitySet;
     _sortDescriptions = settings.SortDescriptions;
     _filterExpressions = settings.FilterExpressions;
     _desiredPropeties = settings.PropertiesRequested;
     Task.Factory.StartNew(() => DoWork(), TaskCreationOptions.LongRunning);
 }