/// <summary> /// Reads a <see cref="DiagnosticsRelayResponse"/> from a <see cref="NSDictionary"/>. /// </summary> /// <param name="dict"> /// The message data. /// </param> /// <returns> /// A <see cref="DiagnosticsRelayResponse"/> object. /// </returns> public static DiagnosticsRelayResponse Read(NSDictionary dict) { if (dict == null) { throw new ArgumentNullException(nameof(dict)); } var value = new DiagnosticsRelayResponse(); value.Status = Enum.Parse <DiagnosticsRelayStatus>(dict.GetString(nameof(Status))); value.Diagnostics = dict.GetDictionary(nameof(Diagnostics)); return(value); }
private async Task <DiagnosticsRelayResponse> ExecuteRequestAsync( DiagnosticsRelayRequest request, CancellationToken cancellationToken) { await this.protocol.WriteMessageAsync(request.ToDictionary(), cancellationToken).ConfigureAwait(false); var response = await this.protocol.ReadMessageAsync(cancellationToken).ConfigureAwait(false); if (response == null) { return(null); } var value = DiagnosticsRelayResponse.Read(response); if (value.Status != DiagnosticsRelayStatus.Success) { throw new DiagnosticsRelayException(value.Status); } return(value); }