/// <summary> /// Creates a new instance of <see cref="OperationRequest"/>. /// </summary> /// <param name="name">The operation name.</param> /// <param name="document">The GraphQL query document containing this operation.</param> /// <param name="variables">The request variable values.</param> /// <param name="strategy">The request strategy to the connection.</param> public OperationRequest( string name, IDocument document, IReadOnlyDictionary <string, object?>?variables = null, RequestStrategy strategy = RequestStrategy.Default) : this(null, name, document, variables, strategy) { }
/// <summary> /// Creates a new instance of <see cref="OperationRequest"/>. /// </summary> /// <param name="id">The the optional request id.</param> /// <param name="name">The operation name.</param> /// <param name="document">The GraphQL query document containing this operation.</param> /// <param name="variables">The request variable values.</param> /// <param name="strategy">The request strategy to the connection.</param> public OperationRequest( string?id, string name, IDocument document, IReadOnlyDictionary <string, object?>?variables = null, RequestStrategy strategy = RequestStrategy.Default) { Id = id; Name = name ?? throw new ArgumentNullException(nameof(name)); Document = document ?? throw new ArgumentNullException(nameof(document)); _variables = variables ?? ImmutableDictionary <string, object?> .Empty; Strategy = strategy; }
/// <summary> /// Deconstructs <see cref="OperationRequest"/>. /// </summary> /// <param name="id">The the optional request id.</param> /// <param name="name">The operation name.</param> /// <param name="document">The GraphQL query document containing this operation.</param> /// <param name="variables">The request variable values.</param> /// <param name="extensions">The request extension values.</param> /// <param name="contextData">The local context data.</param> /// <param name="strategy">The request strategy to the connection.</param> public void Deconstruct( out string?id, out string name, out IDocument document, out IReadOnlyDictionary <string, object?> variables, out IReadOnlyDictionary <string, object?>?extensions, out IReadOnlyDictionary <string, object?>?contextData, out RequestStrategy strategy) { id = Id; name = Name; document = Document; variables = _variables; extensions = _extensions; contextData = _contextData; strategy = Strategy; }