示例#1
0
        /// <summary>
        /// Default method handler for any method calls which are not implemented
        /// </summary>
        /// <param name="methodRequest"></param>
        /// <param name="userContext"></param>
        /// <returns></returns>
        private static Task <MethodResponse> DefaultMethodHandler(MethodRequest methodRequest, object userContext)
        {
            Console.WriteLine($"Received method invocation for non-existing method {methodRequest.Name}. Returning 404.");
            var result = new MethodResponsePayload()
            {
                DirectMethodResponse = $"Method {methodRequest.Name} not implemented"
            };
            var outResult = JsonConvert.SerializeObject(result, new JsonSerializerSettings {
                NullValueHandling = NullValueHandling.Ignore
            });

            return(Task.FromResult(new MethodResponse(Encoding.UTF8.GetBytes(outResult), 404)));
        }
示例#2
0
        /// <summary>
        /// SkipMessage method handler for any method calls which are not implemented
        /// </summary>
        /// <param name="methodRequest"></param>
        /// <param name="userContext"></param>
        /// <returns></returns>
        private static Task <MethodResponse> SkipMessageMethodHandler(MethodRequest methodRequest, object userContext)
        {
            Console.WriteLine($"SkipMessage method invocation ");
            var result = new MethodResponsePayload()
            {
                DirectMethodResponse = $"Next message will be skipped."
            };

            Interlocked.Exchange(ref _skipNextMessage, 1);

            var outResult = JsonConvert.SerializeObject(result, new JsonSerializerSettings {
                NullValueHandling = NullValueHandling.Ignore
            });

            return(Task.FromResult(new MethodResponse(Encoding.UTF8.GetBytes(outResult), 200)));
        }