Beispiel #1
0
        private Task <MethodResponse> UnsetConsoleSession(MethodRequest methodRequest, object userContext)
        {
            FireDirectMethodInvoked(methodRequest.Name, methodRequest);
            string json       = Encoding.UTF8.GetString(methodRequest.Data);
            var    consoleDsn = JsonConvert.DeserializeObject <string>(json);

            // if the existing MobileSession matches the value provided, then unset it:
            Task <MethodResponse> task = null;

            if (ConsoleSession != null && ConsoleSession.Equals(consoleDsn))
            {
                ConsoleSession = null;
                ConsoleState   = null;

                // Acknowlege the direct method call with a 200 success message
                string jsonResponse = JsonConvert.SerializeObject(new DirectMethodResponse()
                {
                    Result = $"Executed direct method: {methodRequest.Name}"
                });
                task = Task.FromResult(new MethodResponse(Encoding.UTF8.GetBytes(jsonResponse), (int)HttpStatusCode.OK));
            }
            else
            {
                // return 409 Conflict:
                string jsonResponse = JsonConvert.SerializeObject(new DirectMethodResponse()
                {
                    Result = $"Console session did not match (consoleDsn: {consoleDsn} current value: {ConsoleSession})."
                });
                task = Task.FromResult(new MethodResponse(Encoding.UTF8.GetBytes(jsonResponse), (int)HttpStatusCode.Conflict));
            }

            FireDirectMethodResponseSent(methodRequest.Name, task.Result);
            return(task);
        }
Beispiel #2
0
        private Task <MethodResponse> SetConsoleTelemetry(MethodRequest methodRequest, object userContext)
        {
            FireDirectMethodInvoked(methodRequest.Name, methodRequest);
            string json             = Encoding.UTF8.GetString(methodRequest.Data);
            var    consoleTelemetry = JsonConvert.DeserializeObject <ConsoleTelemetry>(json);

            Task <MethodResponse> task = null;

            if (ConsoleSession != null && ConsoleSession.Equals(consoleTelemetry.Id))
            {
                ConsoleTelemetry = consoleTelemetry;

                // Acknowlege the direct method call with a 200 success message
                string jsonResponse = JsonConvert.SerializeObject(new DirectMethodResponse()
                {
                    Result = $"Executed direct method: {methodRequest.Name}"
                });
                task = Task.FromResult(new MethodResponse(Encoding.UTF8.GetBytes(jsonResponse), (int)HttpStatusCode.OK));
            }

            FireDirectMethodResponseSent(methodRequest.Name, task.Result);
            return(task);
        }