/// <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);
            }
        }
Example #3
0
 /// <summary>
 /// Get ua settings
 /// </summary>
 /// <param name="context"></param>
 /// <returns></returns>
 internal static JsonSerializerSettings GetSettings(ServiceMessageContext context)
 {
     return(JsonConvertEx.GetSettings().AddUaConverters(context));
 }