public void SaveBuilding(Building building)
        {
            using (BuildingDbContext context = new BuildingDbContext())
            {
                context.Buildings.AddOrUpdate(building);
                context.SaveChanges();
            }

            foreach (var floor in building.Floors)
            {
                //SaveFloor(floor);
            }
        }
        private void SaveFloor(LiveFloor floor)
        {
            using (BuildingDbContext context = new BuildingDbContext())
            {
                context.Floors.AddOrUpdate(floor);
                context.SaveChanges();
            }

            foreach (Room room in floor.Rooms)
            {
                if (room.GetType() == typeof(LiveRoom))
                {
                    SaveLiveRoom((LiveRoom)room);
                }
                else if (room.GetType() == typeof(SensorlessRoom))
                {
                    SaveSensorlessRoom((SensorlessRoom)room);
                }
            }

        }
        private void SaveSensorlessRoom(SensorlessRoom sensorlessRoom)
        {
            using (BuildingDbContext context = new BuildingDbContext())
            {
                context.SensorlessRoom.AddOrUpdate(sensorlessRoom);
                context.SaveChanges();
            }

            foreach (Coordinates coordinates in sensorlessRoom.Coordinates)
            {
                SaveCoordinates(coordinates);
            }
        }
 private void SaveSmapEndpoints(Endpoints endpoints)
 {
     using (BuildingDbContext context = new BuildingDbContext())
     {
         context.Endpoints.AddOrUpdate(endpoints);
         context.SaveChanges();
     }
 }
 private void SaveCorners(Corners corners)
 {
     using (BuildingDbContext context = new BuildingDbContext())
     {
         context.Corners.AddOrUpdate(corners);
         context.SaveChanges();
     }
 }
 private void SaveLiveRoom(LiveRoom liveRoom)
 {
     using (BuildingDbContext context = new BuildingDbContext())
     {
         context.SensorRoom.AddOrUpdate(liveRoom);
         context.SaveChanges();
     }
     SaveCorners(liveRoom.Corners);
     if (liveRoom.Endpoints != null)
         SaveSmapEndpoints(liveRoom.Endpoints);
 }