public void ProcessNewData(SensorData newSData)
        {
            /*            if (newSData.Rainfall > 0.1)
             *          {
             *              RefinedData newRefinedData= new RefinedData(newSData.WaterFlow,newSData.WaterLevel,
             *                  newSData.Rainfall,newSData.StationId,newSData.MeasuredDateTime,DateTime.Now, EventType.Warning);
             *              this.refinedDataRepository.InsertData(newRefinedData);
             *
             *              this.hub.Clients.All.SendAsync("refinedDataUpdate", newSData);
             *              // this.hub.Clients.All.SendAsync("refinedDataUpdate", newSData);
             *              //  this.DecreaseWaterFlow(newSData);
             *              //this.IncreaseWaterFlow(newSData);
             *              //  this.IncreaseWaterLevel(newSData);
             *              // this.DecreaseWaterLevel(newSData);
             *
             *          }*/
            RefinedData newRefinedData = new RefinedData()
            {
                AnalyzedDataTime = DateTime.Now,
                StationId        = newSData.StationId,
                MeasuredDateTime = newSData.MeasuredDateTime,
                Rainfall         = newSData.Rainfall,
                WaterFlow        = newSData.WaterFlow,
                WaterLevel       = newSData.WaterLevel
            };

            if (newRefinedData.Rainfall > 1.4 && newRefinedData.WaterLevel > 5.70 && newRefinedData.WaterFlow < 0.80)
            {
                newRefinedData.AnalyzedEventType = EventType.Alarm;
                this.refinedDataRepository.InsertData(newRefinedData);
                this.hub.Clients.All.SendAsync("refinedDataUpdate", newRefinedData);
                this.DecreaseWaterLevel(newRefinedData.StationId, 10);
                this.IncreaseWaterFlow(newRefinedData.StationId, 10);
                return;
            }
            else
            {
                if (newRefinedData.WaterLevel > 5.815 && newRefinedData.WaterFlow > 0.8)
                {
                    newRefinedData.AnalyzedEventType = EventType.Warning;
                    this.refinedDataRepository.InsertData(newRefinedData);
                    this.hub.Clients.All.SendAsync("refinedDataUpdate", newRefinedData);
                    this.DecreaseWaterLevel(newRefinedData.StationId, 0.5);
                    this.IncreaseWaterFlow(newRefinedData.StationId, 0.5);
                }
                else if (newRefinedData.WaterFlow < 0.6)
                {
                    newRefinedData.AnalyzedEventType = EventType.Warning;
                    this.refinedDataRepository.InsertData(newRefinedData);
                    this.hub.Clients.All.SendAsync("refinedDataUpdate", newRefinedData);
                    this.IncreaseWaterFlow(newRefinedData.StationId, 0.5);
                }
            }
        }
 public void InsertData(RefinedData k)
 {
     refinedCollection.InsertOne(k);
 }