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); } }
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)); }
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))); }
protected override SetVariableResponse HandleSetVariableRequest(SetVariableArguments arguments) { return(this.ThreadManager.HandleSetVariableRequest(arguments)); }
protected override SetVariableResponse HandleSetVariableRequest(SetVariableArguments arguments) { throw new ProtocolException("Not Implemented"); }
public SetVariableResponse HandleSetVariableRequest(SetVariableArguments args) { return(null); }