Beispiel #1
0
        private void sendToEventHub(CO2 CO2)
        {
            SubscribeData subscribeData           = SampleCO2.Create(CO2.DeviceInformation.ExternalAssetId, CO2.CurrentCO2);
            var           subscribeDataJsonString = JsonConvert.SerializeObject(subscribeData);

            eventHubService.SendAsync(subscribeDataJsonString).Wait();
        }
Beispiel #2
0
        private void sendToEventHub(Area area)
        {
            SubscribeData subscribeData           = SampleAsset.Create(area.DeviceInformation.ExternalAssetId, area.Status);
            var           subscribeDataJsonString = JsonConvert.SerializeObject(subscribeData);

            eventHubService.SendAsync(subscribeDataJsonString).Wait();
        }
Beispiel #3
0
        private void sendToEventHub(Temperature temperature)
        {
            SubscribeData subscribeData           = SampleTemp.Create(temperature.DeviceInformation.ExternalAssetId, temperature.CurrentTemperature);
            var           subscribeDataJsonString = JsonConvert.SerializeObject(subscribeData);

            eventHubService.SendAsync(subscribeDataJsonString).Wait();
        }
        private bool m_IsEnableTestException;// = true;

        async Task RequestWaitAsync(SubscribeData subscribe, CancellationToken cancellationToken)
        {
            logger.Info($"RequestWaitAsync Start");

            try
            {
                await foreach (var req in subscribe.RequestStream.ReadAllAsync(cancellationToken))
                {
                    if (cancellationToken.IsCancellationRequested)
                    {
                        break;
                    }

                    logger.Info($"Case {req.ActionCase}");
                    switch (req.ActionCase)
                    {
                    case UserSessionToServiceRequest.ActionOneofCase.None:
                        break;

                    case UserSessionToServiceRequest.ActionOneofCase.RegisterUserSession:
                    {
                        var val = req.RegisterUserSession;
                        logger.Info($"RegisterUserSession Call, {val.SessionId}");
                        m_UserSessions.TryAdd(val.SessionId, subscribe);

                        ResponseTimer = new Timer(_ => subscribe.ResponseStream.WriteAsync(
                                                      new ServiceToUserSessionResponse
                            {
                                SendDataRequest = new SendDataRequestParam()
                                {
                                    Data = @"datastr"
                                }
                            }), null,
                                                  new TimeSpan(0, 0, 1),
                                                  new TimeSpan(0, 0, 5));
                    }
                    break;

                    case UserSessionToServiceRequest.ActionOneofCase.GetDataRequest:
                    {
                        var val = req.GetDataRequest;
                        logger.Info($"GetDataRequest Call, {val.Number}");
                        m_CountForTestException++;
                        if (m_IsEnableTestException && 2 < m_CountForTestException)
                        {
                            throw new Exception("over");
                        }

                        await subscribe.ResponseStream.WriteAsync(
                            new ServiceToUserSessionResponse
                            {
                                GetDataResponse = new GetDataResponseParam
                                {
                                    Data = "ResData"
                                }
                            });
                    }
                    break;

                    case UserSessionToServiceRequest.ActionOneofCase.SendDataResponse:
                    {
                        var val = req.SendDataResponse;
                        logger.Info($"SendDataResponse Call, {val.Result}");
                    }
                    break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                }
            }
            finally
            {
                ResponseTimer?.Dispose();
            }
        }