Example #1
0
 public HomeController(NoteDBContext noteDBContext, IStyle style, ISortOrder sortOrder, IFilter filter)
 {
     _noteDBContext = noteDBContext;
     _style         = style;
     _sortOrder     = sortOrder;
     _filter        = filter;
 }
Example #2
0
        public Task <IGridData <string> > GetAsync(GridRange gridRange, ISortOrder sortOrder = null)
        {
            var t = GridDataSource.GetGridDataAsync(_evaluation.Expression, gridRange, sortOrder);

            if (t == null)
            {
                // May happen when R host is not running
                Trace.Fail(Invariant($"{nameof(VariableViewModel)} returned null grid data"));
                return(Task.FromResult <IGridData <string> >(null));
            }
            return(t);
        }
Example #3
0
        public static async Task<IGridData<string>> GetGridDataAsync(IRSession rSession, string expression, GridRange? gridRange, ISortOrder sortOrder = null) {
            await TaskUtilities.SwitchToBackgroundThread();

            string rows = gridRange?.Rows.ToRString();
            string columns = gridRange?.Columns.ToRString();
            string rowSelector = (sortOrder != null && !sortOrder.IsEmpty) ? sortOrder.GetRowSelector() : "";
            string expr = Invariant($"rtvs:::grid_data({expression}, {rows}, {columns}, {rowSelector})");

            try {
                return await rSession.EvaluateAsync<GridData>(expr, REvaluationKind.Normal);
            } catch (RException ex) {
                var message = Invariant($"Grid data evaluation failed:{Environment.NewLine}{ex.Message}");
                await VsAppShell.Current.Services.Log.WriteAsync(LogVerbosity.Normal, MessageCategory.Error, message);
                return null;
            }
        }
        protected virtual void OnRowInserted(PXCache sender, PXRowInsertedEventArgs e)
        {
            if (e.Row != null)
            {
                Table focus = GetFocus();
                if (focus != null)
                {
                    InsertAboveFocus((Table)e.Row, focus);
                }

                ISortOrder row = (ISortOrder)e.Row;
                if (row.SortOrder == null)
                {
                    row.SortOrder = row.LineNbr;
                }
            }
        }
Example #5
0
        public GenericFluentEventQuery <T> EventQuery <T, TSort>(DateTime fromDate, DateTime toDate, ISortableLimit limit, int limitCount, ISortOrder sortOrder, Expression <Func <T, TSort> > sortProperty, string queryName = "ChronologicalQuery") where T : new()
        {
            var populatedSortProperty = Property <TSort> .Create(sortProperty);

            var populatedSort  = Sort.Create(sortOrder, populatedSortProperty);
            var populatedLimit = Limit.CreateLimit(limit, limitCount, populatedSort);

            return(new GenericFluentEventQuery <T>(queryName, Search.Span(fromDate, toDate), populatedLimit, this));
        }
Example #6
0
        private async Task DrawVisualsAsync(GridUpdateType updateType, bool suppressNotification, CancellationToken token, ISortOrder sortOrder) {
            Rect visualViewport = new Rect(
                    Points.HorizontalOffset,
                    Points.VerticalOffset,
                    Points.ViewportWidth,
                    Points.ViewportHeight);

            GridRange newViewport = Points.ComputeDataViewport(visualViewport);

            if (newViewport.Rows.Count < 1 || newViewport.Columns.Count < 1) {
                return;
            }

            // pull data from provider
            try {
                var data = await DataProvider.GetAsync(newViewport, sortOrder);
                if (data == null) {
                    throw new InvalidOperationException("Couldn't fetch grid data");
                }

                if (!data.Grid.Range.Contains(newViewport)
                    || !data.ColumnHeader.Range.Contains(newViewport.Columns)
                    || !data.RowHeader.Range.Contains(newViewport.Rows)) {
                    throw new InvalidOperationException("Couldn't acquire enough data");
                }

                // actual drawing runs in UI thread
                await Task.Factory.StartNew(
                    () => DrawVisuals(newViewport, data, updateType, visualViewport, suppressNotification),
                    token,
                    TaskCreationOptions.None,
                    _ui);
            } catch (OperationCanceledException) { }
        }
Example #7
0
 public static Task <IGridData <string> > GetGridDataAsync(string expression, GridRange?gridRange, ISortOrder sortOrder = null) =>
 GetGridDataAsync(VsAppShell.Current.ExportProvider.GetExportedValue <IRInteractiveWorkflowProvider>().GetOrCreate().RSession, expression, gridRange, sortOrder);
Example #8
0
        public static async Task <IGridData <string> > GetGridDataAsync(IRSession rSession, string expression, GridRange?gridRange, ISortOrder sortOrder = null)
        {
            await TaskUtilities.SwitchToBackgroundThread();

            string rows        = gridRange?.Rows.ToRString();
            string columns     = gridRange?.Columns.ToRString();
            string rowSelector = (sortOrder != null && !sortOrder.IsEmpty) ? sortOrder.GetRowSelector() : "";
            string expr        = Invariant($"rtvs:::grid_data({expression}, {rows}, {columns}, {rowSelector})");

            using (var evaluator = await rSession.BeginEvaluationAsync()) {
                try {
                    return(await evaluator.EvaluateAsync <GridData>(expr, REvaluationKind.Normal));
                } catch (RException ex) {
                    var message = Invariant($"Grid data evaluation failed:{Environment.NewLine}{ex.Message}");
                    GeneralLog.Write(message);
                    return(null);
                }
            }
        }
Example #9
0
        private async Task DrawVisualsAsync(GridUpdateType updateType, bool suppressNotification, CancellationToken token, ISortOrder sortOrder)
        {
            var visualViewport = new Rect(Points.HorizontalOffset, Points.VerticalOffset, Points.ViewportWidth, Points.ViewportHeight);
            var newViewport    = Points.ComputeDataViewport(visualViewport);

            if (newViewport.Rows.Count < 1 || newViewport.Columns.Count < 1)
            {
                return;
            }

            // pull data from provider
            try {
                var data = await DataProvider.GetAsync(newViewport, sortOrder);

                if (data == null)
                {
                    throw new InvalidOperationException("Couldn't fetch grid data");
                }

                if (!data.Grid.Range.Contains(newViewport) ||
                    !data.ColumnHeader.Range.Contains(newViewport.Columns) ||
                    !data.RowHeader.Range.Contains(newViewport.Rows))
                {
                    throw new InvalidOperationException("Couldn't acquire enough data");
                }

                await DrawVisualsAsync(newViewport, data, updateType, visualViewport, suppressNotification, token);
            } catch (OperationCanceledException) { }
        }
Example #10
0
        public static async Task <IGridData <string> > GetGridDataAsync(IRSession rSession, string expression, GridRange?gridRange, ISortOrder sortOrder = null)
        {
            await TaskUtilities.SwitchToBackgroundThread();

            string rows        = gridRange?.Rows.ToRString();
            string columns     = gridRange?.Columns.ToRString();
            string rowSelector = (sortOrder != null && !sortOrder.IsEmpty) ? sortOrder.GetRowSelector() : "";
            string expr        = Invariant($"rtvs:::grid_data({expression}, {rows}, {columns}, {rowSelector})");

            try {
                return(await rSession.EvaluateAsync <GridData>(expr, REvaluationKind.Normal));
            } catch (RException ex) {
                var message = Invariant($"Grid data evaluation failed:{Environment.NewLine}{ex.Message}");
                VsAppShell.Current.Services.Log.Write(LogVerbosity.Normal, MessageCategory.Error, message);
                return(null);
            }
        }
Example #11
0
        private async Task DrawVisualsAsync(GridUpdateType updateType, bool suppressNotification, CancellationToken token, ISortOrder sortOrder)
        {
            Rect visualViewport = new Rect(
                Points.HorizontalOffset,
                Points.VerticalOffset,
                Points.ViewportWidth,
                Points.ViewportHeight);

            GridRange newViewport = Points.ComputeDataViewport(visualViewport);

            if (newViewport.Rows.Count < 1 || newViewport.Columns.Count < 1)
            {
                return;
            }

            // pull data from provider
            try {
                var data = await DataProvider.GetAsync(newViewport, sortOrder);

                if (!data.Grid.Range.Contains(newViewport) ||
                    !data.ColumnHeader.Range.Contains(newViewport.Columns) ||
                    !data.RowHeader.Range.Contains(newViewport.Rows))
                {
                    throw new InvalidOperationException("Couldn't acquire enough data");
                }

                // actual drawing runs in UI thread
                await Task.Factory.StartNew(
                    () => DrawVisuals(newViewport, data, updateType, visualViewport, suppressNotification),
                    token,
                    TaskCreationOptions.None,
                    _ui);
            } catch (OperationCanceledException) { }
        }
Example #12
0
        public async Task <IGridData <string> > GetGridDataAsync(string expression, GridRange?gridRange, ISortOrder sortOrder = null)
        {
            await TaskUtilities.SwitchToBackgroundThread();

            var rows        = gridRange?.Rows.ToRString();
            var columns     = gridRange?.Columns.ToRString();
            var rowSelector = (sortOrder != null && !sortOrder.IsEmpty) ? sortOrder.GetRowSelector() : "";

            if (_gridData != null && _expression == expression && _rows == rows && _columns == columns && _rowSelector == rowSelector)
            {
                return(_gridData);
            }

            var expr = Invariant($"rtvs:::grid_data({expression}, {rows}, {columns}, {rowSelector})");

            try {
                _gridData = await _session.EvaluateAsync <GridData>(expr, REvaluationKind.Normal);

                _expression  = expression;
                _rows        = rows;
                _columns     = columns;
                _rowSelector = rowSelector;
            } catch (RException ex) {
                var message = Invariant($"Grid data evaluation failed:{Environment.NewLine}{ex.Message}");
                VsAppShell.Current.Log().Write(LogVerbosity.Normal, MessageCategory.Error, message);
            }
            return(_gridData);
        }
Example #13
0
        public static async Task <IGridData <string> > GetGridDataAsync(string expression, GridRange?gridRange, ISortOrder sortOrder = null)
        {
            await TaskUtilities.SwitchToBackgroundThread();

            var rSession = VsAppShell.Current.ExportProvider.GetExportedValue <IRSessionProvider>().GetInteractiveWindowRSession();

            string rows    = gridRange?.Rows.ToRString();
            string columns = gridRange?.Columns.ToRString();

            using (var evaluator = await rSession.BeginEvaluationAsync()) {
                try {
                    string exp;
                    if (sortOrder != null && !sortOrder.IsEmpty)
                    {
                        if (gridRange.Value.Columns.Count > 1)
                        {
                            string dataFrameSortExpression = sortOrder.GetDataFrameSortFunction();
                            exp = Invariant($"rtvs:::grid_data({expression}, {rows}, {columns}, {dataFrameSortExpression.ToRStringLiteral()})");
                        }
                        else
                        {
                            int sortType = sortOrder.IsPrimaryDescending ? 2 : 1;
                            exp = Invariant($"rtvs:::grid_data({expression}, {rows}, {columns}, NULL, {sortType})");
                        }
                    }
                    else
                    {
                        exp = Invariant($"rtvs:::grid_data({expression}, {rows}, {columns})");
                    }
                    return(await evaluator.EvaluateAsync <GridData>(exp, REvaluationKind.Normal));
                } catch (RException ex) {
                    var message = Invariant($"Grid data evaluation failed:{Environment.NewLine}{ex.Message}");
                    GeneralLog.Write(message);
                    return(null);
                }
            }
        }
Example #14
0
 public Task <IGridData <string> > GetAsync(GridRange gridRange, ISortOrder sortOrder = null)
 => _dataSource.GetGridDataAsync(_dataObject.Expression, gridRange, sortOrder);
Example #15
0
 public static Task<IGridData<string>> GetGridDataAsync(string expression, GridRange? gridRange, ISortOrder sortOrder = null) =>
     GetGridDataAsync(VsAppShell.Current.ExportProvider.GetExportedValue<IRInteractiveWorkflowProvider>().GetOrCreate().RSession, expression, gridRange, sortOrder);