Esempio n. 1
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);
        }
Esempio n. 2
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;
            }
        }
Esempio n. 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}");
                VsAppShell.Current.Services.Log.Write(LogVerbosity.Normal, MessageCategory.Error, message);
                return(null);
            }
        }
Esempio n. 4
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);
                }
            }
        }