public string ToHubFireAndForgetWriteMessage() { string parameterType; string requestObject; if (Parameters.Length == 0) { parameterType = "Nil"; requestObject = "Nil.Default"; } else if (Parameters.Length == 1) { parameterType = Parameters[0].TypeName; requestObject = Parameters[0].ParameterName; } else { var typeArgs = string.Join(", ", Parameters.Select(x => x.TypeName)); var parameterNames = string.Join(", ", Parameters.Select(x => x.ParameterName)); parameterType = $"DynamicArgumentTuple<{typeArgs}>"; requestObject = $"new DynamicArgumentTuple<{typeArgs}>({parameterNames})"; } if (OriginalResponseTypeSymbol == ReferenceSymbols.Global.Task) { return($"WriteMessageAsync<{parameterType}>({HubId}, {requestObject})"); } else { return($"WriteMessageAsyncFireAndForget<{parameterType}, {UnwrappedOriginalResposneTypeSymbol.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)}> ({HubId}, {requestObject})"); } }
public (string line1, string line2) ToHubOnResponseEvent() { string type; if (OriginalResponseTypeSymbol == ReferenceSymbols.Global.Task) { type = "Nil"; } else { type = UnwrappedOriginalResposneTypeSymbol.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat); } var line1 = $"var result = LZ4MessagePackSerializer.Deserialize<{type}>(data, resolver);"; var line2 = $"((TaskCompletionSource<{type}>)taskCompletionSource).TrySetResult(result);"; return(line1, line2); }