public async Task <SetVariableResponse> Handle(SetVariableArguments request, CancellationToken cancellationToken)
        {
            try
            {
                string updatedValue =
                    await _debugService.SetVariableAsync(
                        (int)request.VariablesReference,
                        request.Name,
                        request.Value).ConfigureAwait(false);

                return(new SetVariableResponse {
                    Value = updatedValue
                });
            }
            catch (Exception ex) when(ex is ArgumentTransformationMetadataException or
                                      InvalidPowerShellExpressionException or
                                      SessionStateUnauthorizedAccessException)
            {
                // Catch common, innocuous errors caused by the user supplying a value that can't be converted or the variable is not settable.
                _logger.LogTrace($"Failed to set variable: {ex.Message}");
                throw new RpcErrorException(0, ex.Message);
            }
            catch (Exception ex)
            {
                _logger.LogError($"Unexpected error setting variable: {ex.Message}");
                string msg =
                    $"Unexpected error: {ex.GetType().Name} - {ex.Message}  Please report this error to the PowerShellEditorServices project on GitHub.";
                throw new RpcErrorException(0, msg);
            }
        }
Ejemplo n.º 2
0
        protected override SetVariableResponse HandleSetVariableRequest(SetVariableArguments arguments)
        {
            var value = Controller.SetExpression(arguments.Name, arguments.Value);

            return(new SetVariableResponse()
            {
                Value = value
            });
        }
        internal SetVariableResponse HandleSetVariableRequest(SetVariableArguments args)
        {
            ISampleVariableContainer container = this.GetVariableContainer(args.VariablesReference);

            if (container == null)
            {
                throw new ProtocolException(Invariant($"Invalid variable reference '{args.VariablesReference}'!"));
            }

            return(container.HandleSetVariableRequest(args));
        }
Ejemplo n.º 4
0
        public SetVariableResponse HandleSetVariableRequest(SetVariableArguments args)
        {
            SampleVariable variable = this.variables.FirstOrDefault(v => String.Equals(v.Name, args.Name, StringComparison.Ordinal));

            if (variable == null)
            {
                throw new ProtocolException(Invariant($"Scope '{this.Name}' (varRef: {this.VariableReference}) does not contain a variable called '{args.Name}'!"));
            }

            variable.SetValue(args.Value);
            variable.Invalidate();

            return(new SetVariableResponse(value: variable.GetValue(args.Format?.Hex ?? false)));
        }
Ejemplo n.º 5
0
 protected override SetVariableResponse HandleSetVariableRequest(SetVariableArguments arguments)
 {
     return(this.ThreadManager.HandleSetVariableRequest(arguments));
 }
Ejemplo n.º 6
0
 protected override SetVariableResponse HandleSetVariableRequest(SetVariableArguments arguments)
 {
     throw new ProtocolException("Not Implemented");
 }
 public SetVariableResponse HandleSetVariableRequest(SetVariableArguments args)
 {
     return(null);
 }