Exemple #1
0
        private static async Task <MethodResponse> RouletteMethodCallBack(MethodRequest methodRequest, object userContext)
        {
            Console.WriteLine($"Executing RouletteMethodCallBack at {DateTime.UtcNow}");

            var rouletteResponse = new RouletteResponse {
                responseState = 0
            };

            try
            {
                //// Find the actual empty slot

                var beerLiftMessageToRoulette = new BeerLiftMessage("dummy", _lastDataPortA, _lastDataPortB);

                // Returns a value between 1 and 16 (or 0 is no bottle left!)
                rouletteResponse.shot = beerLiftMessageToRoulette.Roulette();

                Console.WriteLine($"Empty slot found at position {rouletteResponse.shot} (0 when all slots occupied)");

                //// Lit the right led

                var result = await LedScenarios.DirectMarkPosition(_mcp23xxxWrite, rouletteResponse.shot);

                if (!result)
                {
                    rouletteResponse.errorMessage  = "RouletteMethodCallBack: Unable to cast Mcp23017 Write GPIO";
                    rouletteResponse.responseState = 1;
                }

                Console.WriteLine($"Roulette ended at {DateTime.UtcNow}.");
            }
            catch (Exception ex)
            {
                rouletteResponse.errorMessage  = ex.Message;
                rouletteResponse.responseState = -999;
            }

            var json     = JsonConvert.SerializeObject(rouletteResponse);
            var response = new MethodResponse(Encoding.UTF8.GetBytes(json), 200);

            return(response);
        }
Exemple #2
0
        private static async Task <MethodResponse> MarkPositionMethodCallBack(MethodRequest methodRequest, object userContext)
        {
            Console.WriteLine($"Executing MarkPositionMethodCallBack at {DateTime.UtcNow}");

            var markPositionResponse = new MarkPositionResponse {
                responseState = 0
            };

            try
            {
                dynamic request = JsonConvert.DeserializeObject(methodRequest.DataAsJson);

                int position = request.position;

                Console.WriteLine($"Blinking position {position}");

                var result = await LedScenarios.DirectMarkPosition(_mcp23xxxWrite, position);

                if (!result)
                {
                    markPositionResponse.errorMessage  = "MarkPositionMethodCallBack: Unable to cast Mcp23017 Write GPIO";
                    markPositionResponse.responseState = 1;
                }

                Console.WriteLine($"MarkPosition ended at {DateTime.UtcNow}.");
            }
            catch (Exception ex)
            {
                markPositionResponse.errorMessage  = ex.Message;
                markPositionResponse.responseState = -999;
            }

            var json     = JsonConvert.SerializeObject(markPositionResponse);
            var response = new MethodResponse(Encoding.UTF8.GetBytes(json), 200);

            return(response);
        }