public async void ReceiveData(string receivedData)
        {
            //Json Transform
            try
            {
                Models.SensorModel sensorModel = JsonConvert.DeserializeObject <Models.SensorModel>(receivedData);

                //Generate message status
                bathroomStatus = updateBathroomStatus(sensorModel);

                //Send data to API Webhook
                await ApiController.SendDataToWebhook(bathroomStatus);
            }
            catch (Exception) {
                ///TODO
            }
        }
		public async void ReceiveData(string receivedData)
		{
			//Json Transform
			try
			{
				Models.SensorModel sensorModel = JsonConvert.DeserializeObject<Models.SensorModel>(receivedData);

				//Generate message status
				bathroomStatus = updateBathroomStatus(sensorModel);

				//Send data to API Webhook
				await ApiController.SendDataToWebhook(bathroomStatus);
			}
			catch(Exception) {
				///TODO
			}

		}
        internal static Models.BathroomStatusModel UpdateBathroomStatus(Models.BathroomStatusModel bathroomStatusModel)
        {
            string message = String.Empty;

            bathroomStatusModel.Sensor.Connected = true;

            //Check if have anybody in bathroom
            bathroomStatusModel.isOccupied = SensorsService.SomeoneIsDetected(bathroomStatusModel.Sensor.SensorsValues);

            //Check Smell level
            bathroomStatusModel.smellOMeter = SensorsService.CheckSmellLevel(bathroomStatusModel.Sensor.SensorsValues);

            //Message
            message += bathroomStatusModel.isOccupied ? ":toilet: *Banheiro ocupado.* " : ":toilet: *Banheiro livre.* ";

            if (bathroomStatusModel.smellOMeter <= 10)
            {
                message += "Nunca se respirou um ar mais puro! :herb:";
            }
            else if (bathroomStatusModel.smellOMeter <= 30)
            {
                message += "Tudo bem, não tem com o que se preocupar. :thumbsup:";
            }
            else if (bathroomStatusModel.smellOMeter <= 50)
            {
                message += "Ainda está dando para aguentar. Vai fundo! :nose:";
            }
            else if (bathroomStatusModel.smellOMeter <= 70)
            {
                message += "A coisa está feia, é por sua conta e risco. :fearful:";
            }
            else if (bathroomStatusModel.smellOMeter > 70)
            {
                message += "ALERTA VERMELHO! :shit::shit: Se você tem amor ao seu pulmão, recomendo segurar a sua vontade. ::dizzy_face:";
            }



            bathroomStatusModel.statusMessage = message;

            return(bathroomStatusModel);
        }
示例#4
0
        internal static async Task SendDataToWebhook(Models.BathroomStatusModel bathroomStatus)
        {
            try
            {
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri("http://nibodev.azurewebsites.net/v1/");
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                    HttpResponseMessage response = await client.PostAsJsonAsync("Bathroom/SaveStatus", bathroomStatus);

                    response.EnsureSuccessStatusCode();

                    if (response.IsSuccessStatusCode)
                    {
                    }
                }
            }
            catch (Exception ex)
            {
                ///TODO
            }
        }
 private Models.BathroomStatusModel updateBathroomStatus(Models.BathroomStatusModel bathroomStatusModel)
 {
     return(Services.bathroomService.UpdateBathroomStatus(bathroomStatusModel));
 }
 public BathroomController()
 {
     bathroomStatus        = new Models.BathroomStatusModel();
     bathroomStatus.Sensor = new Models.SensorModel();
     bathroomStatus.Sensor.SensorsValues = new Models.SensorValuesModel();
 }
		public BathroomController() {
			bathroomStatus = new Models.BathroomStatusModel();
			bathroomStatus.Sensor = new Models.SensorModel();
			bathroomStatus.Sensor.SensorsValues = new Models.SensorValuesModel();
		}