/// <summary> /// Open connection /// </summary> /// <returns></returns> private async Task <HubConnection> OpenAsync() { var connection = new HubConnectionBuilder() .WithAutomaticReconnect() .AddNewtonsoftJsonProtocol(options => { options.PayloadSerializerSettings = JsonConvertEx.GetSettings(); }) .WithUrl(_endpointUri) .Build(); connection.Closed += ex => OnClosedAsync(connection, ex); await connection.StartAsync(); return(connection); }
/// <inheritdoc/> public async Task <(ServiceResultModel, string)> CallMethodAsync( string method, string request, DiagnosticsModel diagnostics) { try { var response = await _client.CallMethodAsync( _deviceId ?? _identity?.DeviceId, _moduleId ?? "publisher", method, request); return(null, response); } catch (Exception ex) { return(new ServiceResultModel { ErrorMessage = ex.Message, Diagnostics = JToken.FromObject(ex, JsonSerializer.Create(JsonConvertEx.GetSettings())) }, null); } }
/// <summary> /// Get ua settings /// </summary> /// <param name="context"></param> /// <returns></returns> internal static JsonSerializerSettings GetSettings(ServiceMessageContext context) { return(JsonConvertEx.GetSettings().AddUaConverters(context)); }