public void Co2Update(LiveFloor floor)
 {
     foreach (var room in floor.Rooms.Where(room => room.GetType() == typeof(LiveRoom)).Cast<LiveRoom>())
     {
         Co2Update(room);
     }
 }
 public TemporalFloor GetTemporalFloorReadings(LiveFloor liveFloor, DateTime timeFrom,
     DateTime timeTo)
 {
     TemporalFloor floor = GetTemporalFloor(liveFloor);
     sMapManagerTemporal.TemporalUpdateAll(floor, timeFrom, timeTo);
     return floor;
 }
        private TemporalFloor GetTemporalFloor(LiveFloor liveFloor)
        {
            TemporalFloor floor = (TemporalFloor)liveFloor;

            List<Room> liveRooms = floor.Rooms.Where(room => room.GetType() == typeof(LiveRoom)).ToList();

            foreach (Room room in liveRooms)
            {
                floor.Rooms.Remove(room);
                TemporalRoom temporalRoom = GetTemporalRoom((LiveRoom)room);
                floor.Rooms.Add(temporalRoom);
            }
            return 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 CreateFloors()
        {
            cellarFloor = new LiveFloor(-1)
            {
                FloorName = "Cellar",
                SurfaceArea = 2400,
                MaxHardwareConsumption = 200,
                MaxLightConsumption = 200,
                MaxVentilationConsumption = 200,
                MaxOtherConsumption = 200,
                MaxColdWaterConsumption = 20,
                MaxHotWaterConsumption = 20,
                HardwareConsumption = 100,
                LightConsumption = 90,
                OtherConsumption = 50,
                VentilationConsumption = 75,
                ColdWaterConsumption = 5,
                HotWaterConsumption = 3
            };

            parterreFloor = new LiveFloor(0)
            {
                FloorName = "Parterre",
                SurfaceArea = 2400,
                MaxHardwareConsumption = 200,
                MaxLightConsumption = 200,
                MaxVentilationConsumption = 200,
                MaxOtherConsumption = 200,
                MaxColdWaterConsumption = 20,
                MaxHotWaterConsumption = 20,
                HardwareConsumption = 100,
                LightConsumption = 90,
                OtherConsumption = 50,
                VentilationConsumption = 75,
                ColdWaterConsumption = 5,
                HotWaterConsumption = 3
            };

            groundFloor = new LiveFloor(1)
            {
                FloorName = "Ground Floor",
                SurfaceArea = 2400,
                MaxHardwareConsumption = 200,
                MaxLightConsumption = 200,
                MaxVentilationConsumption = 200,
                MaxOtherConsumption = 200,
                MaxColdWaterConsumption = 20,
                MaxHotWaterConsumption = 20,
                HardwareConsumption = 100,
                LightConsumption = 90,
                OtherConsumption = 50,
                VentilationConsumption = 75,
                ColdWaterConsumption = 5,
                HotWaterConsumption = 3,
                Endpoints = new Endpoints()
                {
                    SmapEndponts = new Dictionary<string, SensorType>()
                    {
                        { "0d7f95ef-d7eb-5b54-b9c2-494c04c963be", SensorType.TotalPowerConsumption}, //Smap 1567
                        { "b04967eb-4e49-5ea4-b633-795ae052a705", SensorType.LightPowerConsumption}, //sMap 1568
                        { "96935927-ae4f-58b0-93aa-11d17845af30", SensorType.OtherPowerConsumption}, //sMap 1571
                        { "9389fd92-ae2e-534b-aafd-ee1048ae472c", SensorType.TotalPowerConsumption}, //sMap 1572
                        { "3fa0b857-cbd3-5d17-9973-99e7ef55abbb", SensorType.LightPowerConsumption}, //sMap 1573
                        { "d28b4740-4b62-5908-9722-c57bbef7f6c0", SensorType.OtherPowerConsumption}, //sMap 1576
                    }
                }
            };

            firstFloor = new LiveFloor(2)
            {
                FloorName = "First Floor",
                SurfaceArea = 2400,
                MaxHardwareConsumption = 200,
                MaxLightConsumption = 200,
                MaxVentilationConsumption = 200,
                MaxOtherConsumption = 200,
                MaxColdWaterConsumption = 20,
                MaxHotWaterConsumption = 20,
                HardwareConsumption = 100,
                LightConsumption = 90,
                OtherConsumption = 50,
                VentilationConsumption = 75,
                ColdWaterConsumption = 5,
                HotWaterConsumption = 3
            };

        }