public void AddNewRMUnitToDBEntities(string location, RMUnit unit) { Location dbLocation = m_MyDbContext.Locations.ToList().FirstOrDefault(r => r.Name.Equals(location)); if (dbLocation == null) { return; } unit.LocationName = dbLocation.Name; MyDbContext.RMUnits.Add(unit); try { m_MyDbContext.SaveChanges(); } catch (System.Data.Entity.Infrastructure.DbUpdateException dbEx) { Exception raisel = dbEx.InnerException; while (raisel.InnerException != null) { raisel = raisel.InnerException; continue; } } }
public RMUnit GenerateNewRMUnit() { RMUnit rmu = new RMUnit(); rmu.Name = UuIdGenerator(); return(rmu); }
public MyRMUnit FromDbEntityToMyClass(RMUnit dbUnit) { MyRMUnit myUnit; if (dbUnit == null) { myUnit = null; } else { myUnit = new MyRMUnit(); myUnit.MyName = dbUnit.Name; myUnit.MyLocationName = dbUnit.LocationName; } return(myUnit); }
public void Subscribe(string location) { string message = ""; string uuid = ""; RMUnit unit = null; IPublisherCallback publisher = OperationContext.Current.GetCallbackChannel <IPublisherCallback>(); if (m_MeasurementPublishers.Keys.Contains(location)) { IPublisherCallback publishers = m_MeasurementPublishers[location]; if (publishers == null) { m_MeasurementPublishers[location] = publisher; message = "Measurement unit initialised"; unit = GetRMUnitForLocation(location); m_TemperatureCallbacks[location] = new Dictionary <string, IMeasurementUserCallback>(); m_HumidityCallbacks[location] = new Dictionary <string, IMeasurementUserCallback>(); if (unit == null) { unit = GenerateNewRMUnit(); AddNewRMUnitToDBEntities(location, unit); } uuid = unit.Name; } else { message = "Publisher allready running"; } } else { message = "Invalid location"; } MyRMUnit myUnit = FromDbEntityToMyClass(unit); publisher.OnSubcribe(myUnit, message); }