public void AddNewHumidityMeasuremenToDb(MyHumidityMeasurement measurement) { // hm.Add(measurement); //RMUnit rmu = m_MyDbContext.RMUnits.ToList().FirstOrDefault(r => r.LocationName.Equals(measurement.MyLocationName)); HumidityMeasurement m = new HumidityMeasurement(); m.Value = measurement.MyValue; m.LocationName = measurement.MyLocationName; m.DateTime = measurement.MyDateTime; MyDbContext.HumidityMeasurements.Add(m); if (MyDbContext.Entry(m).State == System.Data.EntityState.Added) { try { MyDbContext.SaveChanges(); } catch (InvalidOperationException ex) { MyDbContext.HumidityMeasurements.Remove(m); MyDbContext.HumidityMeasurements.Add(m); //MyDbContext.SaveChanges(); } } }
public MyMeasurements GetAllMeasuremensWithLimit(float limit, params string[] pars) { MyMeasurements m = new MyMeasurements(); List <TemperatureMeasurement> tlist = new List <TemperatureMeasurement>(); List <HumidityMeasurement> hlist = new List <HumidityMeasurement>(); if (pars[1].Equals("humid") || pars[1].Equals("both")) { if (pars[0].Equals("above")) { hlist = MyDbContext.HumidityMeasurements.ToList().Where(r => r.Value > limit).ToList(); } else if (pars[0].Equals("under")) { hlist = MyDbContext.HumidityMeasurements.ToList().Where(r => r.Value < limit).ToList(); } Action <HumidityMeasurement> toSendList = (item) => { var item2 = new MyHumidityMeasurement(); item2.MyDateTime = item.DateTime; item2.MyRMUnitName = item.RMUnit.Name; item2.MyValue = (float)item.Value; item2.MyLocationName = item.LocationName; m.MyHumMeasurements.Add(item2); }; hlist.ForEach(toSendList); } if (pars[1].Equals("temp") || pars[1].Equals("both")) { if (pars[0].Equals("above")) { tlist = MyDbContext.TemperatureMeasurements.ToList().Where(r => r.Value > limit).ToList(); } else if (pars[0].Equals("under")) { tlist = MyDbContext.TemperatureMeasurements.ToList().Where(r => r.Value < limit).ToList(); } Action <TemperatureMeasurement> toSendList = (item) => { var item2 = new MyTemperatureMeasurement(); item2.MyDateTime = item.DateTime; item2.MyRMUnitName = item.RMUnit.Name; item2.MyLocationName = item.LocationName; item2.MyValue = (float)item.Value; m.MyTempMeasurements.Add(item2); }; tlist.ForEach(toSendList); } return(m); }
public MyMeasurements GetAllMeasurementsFromLocationDateToDate(DateTime from, DateTime todate, params string[] pars) { MyMeasurements m = new MyMeasurements(); List <TemperatureMeasurement> tlist = new List <TemperatureMeasurement>(); List <HumidityMeasurement> hlist = new List <HumidityMeasurement>(); string location = pars[0]; string measurement = pars[1]; if (pars[0].Equals("all")) { hlist = MyDbContext.HumidityMeasurements.ToList(); tlist = MyDbContext.TemperatureMeasurements.ToList(); } else { hlist = MyDbContext.HumidityMeasurements.ToList().Where(r => r.LocationName.Equals(location)).ToList(); tlist = MyDbContext.TemperatureMeasurements.ToList().Where(r => r.LocationName.Equals(location)).ToList(); } if (pars[1].Equals("humid") || pars[1].Equals("both")) { hlist = hlist.Where(r => r.DateTime > from).ToList(); hlist = hlist.Where(r => r.DateTime < todate).ToList(); Action <HumidityMeasurement> toSendList = (item) => { var item2 = new MyHumidityMeasurement(); item2.MyDateTime = item.DateTime; item2.MyRMUnitName = item.RMUnit.Name; item2.MyLocationName = item.LocationName; item2.MyValue = (float)item.Value; m.MyHumMeasurements.Add(item2); }; hlist.ForEach(toSendList); } if (pars[1].Equals("temp") || pars[1].Equals("both")) { tlist = tlist.Where(r => r.DateTime > from).ToList(); tlist = tlist.Where(r => r.DateTime < todate).ToList(); Action <TemperatureMeasurement> toSendList = (item) => { var item2 = new MyTemperatureMeasurement(); item2.MyDateTime = item.DateTime; item2.MyRMUnitName = item.RMUnit.Name; item2.MyLocationName = item.LocationName; item2.MyValue = (float)item.Value; m.MyTempMeasurements.Add(item2); }; tlist.ForEach(toSendList); } return(m); }
public void SendNewHumidityMeasurement(MyHumidityMeasurement measurement) { //string str = "Received"; IPublisherCallback callback = m_MeasurementPublishers[measurement.MyLocationName]; if (callback != null) { callback.OnHumidityMeasurementSent(measurement); AddNewHumidityMeasuremenToDb(measurement); } foreach (var item in m_HumidityCallbacks[measurement.MyLocationName].Values) { WorkerClass work = new WorkerClass(); work.MyHumidity = measurement; work.MyCallback = item; ThreadPool.QueueUserWorkItem(new WaitCallback(ThreadPoolSendHumidityCallback), work); } }