public string ConvertBuilding(LiveBuilding building)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("{");

            sb.Append("\"Name\":\"" + building.Name + "\",");
            sb.Append("\"SurfaceArea\":" + building.SurfaceArea + ",");

            sb.Append("\"NumberOfRooms\":" + JsonConvert.SerializeObject(building.NumberOfSensorRooms) + ",");

            sb.Append("\"Temperature\":" + JsonConvert.SerializeObject(building.Temperature) + ",");
            sb.Append("\"CO2\":" + JsonConvert.SerializeObject(building.CO2) + ",");
            sb.Append("\"Light\":" + JsonConvert.SerializeObject(building.Light) + ",");
            sb.Append("\"Lux\":" + JsonConvert.SerializeObject(building.Lux) + ",");

            sb.Append("\"HardwareConsumption\":" + JsonConvert.SerializeObject(building.HardwareConsumption) + ",");
            sb.Append("\"LightConsumption\":" + JsonConvert.SerializeObject(building.LightConsumption) + ",");
            sb.Append("\"VentilationConsumption\":" + JsonConvert.SerializeObject(building.VentilationConsumption) + ",");
            sb.Append("\"OtherConsumption\":" + JsonConvert.SerializeObject(building.OtherConsumption) + ",");
            sb.Append("\"TotalPowerConsumption\":" + JsonConvert.SerializeObject(building.TotalPowerConsumption) + ",");

            sb.Append("\"ColdWaterConsumption\":" + JsonConvert.SerializeObject(building.ColdWaterConsumption) + ",");
            sb.Append("\"MaxColdWaterConsumption\":" + JsonConvert.SerializeObject(building.MaxColdWaterConsumption) + ",");
            sb.Append("\"HotWaterConsumption\":" + JsonConvert.SerializeObject(building.HotWaterConsumption) + ",");
            sb.Append("\"MaxHotWaterConsumption\":" + JsonConvert.SerializeObject(building.MaxHotWaterConsumption) + ",");

            sb.Append("\"Motion\":" + JsonConvert.SerializeObject(building.Motion) + ",");
            sb.Append("\"Occupants\":" + JsonConvert.SerializeObject(building.Occupants) + ",");
            sb.Append("\"MaxOccupants\":" + JsonConvert.SerializeObject(building.MaxOccupants) + ",");
            sb.Append("\"WifiClients\":" + JsonConvert.SerializeObject(building.WifiClients) + ",");
            sb.Append("\"MaxWifiClients\":" + JsonConvert.SerializeObject(building.MaxWifiClients));
            sb.Append("}");

            return sb.ToString();
        }
 public void Co2Update(LiveBuilding building)
 {
     foreach (var floor in building.Floors.Where(floor => floor.GetType() == typeof(LiveFloor)).Cast<LiveFloor>())
     {
         Co2Update(floor);
     }
 }
 public TemporalBuilding GetTemporalBuildingReadings(LiveBuilding liveBuilding, DateTime timeFrom,
     DateTime timeTo)
 {
     TemporalBuilding building = GetTemporalBuilding(liveBuilding);
     sMapManagerTemporal.TemporalUpdateAll(building, timeFrom, timeTo);
     return building;
 }
 public string GetDrawableTemporalFloorReadings(int floorLeel, LiveBuilding liveBuilding, DateTime timeFrom,
    DateTime timeTo)
 {
     TemporalFloor floor = GetTemporalFloor(liveBuilding.Floors.Where(f => f.FloorLevel == floorLeel).Cast<LiveFloor>().First());
     timeFrom = TemporalValidator.ValidateDate(timeFrom);
     timeTo = TemporalValidator.ValidateDate(timeTo);
     sMapManagerTemporal.TemporalUpdateAll(floor, timeFrom, timeTo);
     return jsonConverterTemporal.GetDrawableFloor(floor);
 }
 public void LiveUpdateAllSensorss(LiveBuilding building)
 {
     TemperatureUpdate(building);
     Co2Update(building);
     LightUpdate(building);
     LuxUpdate(building);
     PowerConsumptionUpdate(building);
     WaterUpdate(building);
     OccupantsUpdate(building);
     WifiClientUpdate(building);
 }
 public RealTimeUpdater(LiveBuilding building, SmapManager smapManager, int temperatureUpdateInterval, int co2UpdateInterval, int lightUpdateInterval, int luxUpdateInterval, int powerConsumptionInterval, int waterUpdateInterval, int motionDetectedUpdateInterval, int occupantsUpdateInterval, int wifiClientsUpdateInterval) : this(building, smapManager)
 {
     this.temperatureUpdateInterval = temperatureUpdateInterval;
     this.co2UpdateInterval = co2UpdateInterval;
     this.lightUpdateInterval = lightUpdateInterval;
     this.luxUpdateInterval = luxUpdateInterval;
     this.powerConsumptionInterval = powerConsumptionInterval;
     this.waterUpdateInterval = waterUpdateInterval;
     this.motionDetectedUpdateInterval = motionDetectedUpdateInterval;
     this.occupantsUpdateInterval = occupantsUpdateInterval;
     this.wifiClientsUpdateInterval = wifiClientsUpdateInterval;
 }
        private TemporalBuilding GetTemporalBuilding(LiveBuilding liveBuilding)
        {
            TemporalBuilding building = (TemporalBuilding)liveBuilding;
            List<Floor> liveFloors = building.Floors.Where(floor => floor.GetType() == typeof(LiveFloor)).ToList();

            foreach (Floor floor in liveFloors)
            {
                building.Floors.Remove(floor);
                TemporalFloor temporalFloor = GetTemporalFloor((LiveFloor)floor);
                building.Floors.Add(temporalFloor);
            }


            return building;
        }
        public string ConvertFloors(LiveBuilding building, int floorLevel)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("{");

            foreach (var floor in building.Floors.Where(floor => floor.GetType() == typeof(LiveFloor)).Cast<LiveFloor>())
            {
                if (floor.FloorLevel == floorLevel)
                {
                    sb.Append("\"Name\":\"" + floor.FloorName + "\",");
                    sb.Append("\"FloorLevel\":" + floor.FloorLevel + ",");
                    sb.Append("\"SurfaceArea\":" + floor.SurfaceArea + ",");
                    sb.Append("\"NumberOfRooms\":" + JsonConvert.SerializeObject(floor.NumberOfSensorRooms) + ",");

                    sb.Append("\"Temperature\":" + JsonConvert.SerializeObject(floor.Temperature) + ",");
                    sb.Append("\"CO2\":" + JsonConvert.SerializeObject(floor.CO2) + ",");
                    sb.Append("\"Light\":" + JsonConvert.SerializeObject(floor.Light) + ",");
                    sb.Append("\"Lux\":" + JsonConvert.SerializeObject(floor.Lux) + ",");

                    sb.Append("\"HardwareConsumption\":" + JsonConvert.SerializeObject(floor.HardwareConsumption) + ",");
                    sb.Append("\"LightConsumption\":" + JsonConvert.SerializeObject(floor.LightConsumption) + ",");
                    sb.Append("\"VentilationConsumption\":" + JsonConvert.SerializeObject(floor.VentilationConsumption) + ",");
                    sb.Append("\"OtherConsumption\":" + JsonConvert.SerializeObject(floor.OtherConsumption) + ",");
                    sb.Append("\"TotalPowerConsumption\":" + JsonConvert.SerializeObject(floor.TotalPowerConsumption) + ",");

                    sb.Append("\"ColdWaterConsumption\":" + JsonConvert.SerializeObject(floor.ColdWaterConsumption) + ",");
                    sb.Append("\"MaxColdWaterConsumption\":" + JsonConvert.SerializeObject(floor.MaxColdWaterConsumption) + ",");
                    sb.Append("\"HotWaterConsumption\":" + JsonConvert.SerializeObject(floor.HotWaterConsumption) + ",");
                    sb.Append("\"MaxHotWaterConsumption\":" + JsonConvert.SerializeObject(floor.MaxHotWaterConsumption) + ",");

                    sb.Append("\"Motion\":" + JsonConvert.SerializeObject(floor.Motion) + ",");
                    sb.Append("\"Occupants\":" + JsonConvert.SerializeObject(floor.Occupants) + ",");
                    sb.Append("\"WifiClients\":" + JsonConvert.SerializeObject(floor.WifiClients) + ",");
                    sb.Append("\"MaxWifiClients\":" + JsonConvert.SerializeObject(floor.MaxWifiClients));
                    break;
                }
            }

            sb.Append("}");

            return sb.ToString();
        }
 public RealTimeUpdater(LiveBuilding building, SmapManager smapManager)
 {
     this.building = building;
     this.smapManager = smapManager;
 }
 public void WifiClientUpdate(LiveBuilding building)
 {
     foreach (Floor floor in building.Floors)
     {
         foreach (
             LiveRoom room in floor.Rooms.Where(room => room.GetType() == typeof(LiveRoom)).Cast<LiveRoom>())
         {
             if (room.Endpoints != null && room.Endpoints.WifiEndpoint != null)
             {
                 //room.WifiClients = (int)smapDal.GetCurrentSensorValue(room.Endpoints.WifiEndpoint);
             }
         }
     }
 }
        public void OccupantsUpdate(LiveBuilding building)
        {
            foreach (
                var floor in building.Floors.Where(floor => floor.GetType() == typeof(LiveFloor)).Cast<LiveFloor>())
            {
                foreach (
                    LiveRoom room in floor.Rooms.Where(room => room.GetType() == typeof(LiveRoom)).Cast<LiveRoom>())
                {
                    if (room.Endpoints != null && room.Endpoints.SmapEndponts.ContainsValue(SensorType.Occupants))
                        room.Occupants =
                            (int)
                                smapDal.GetCurrentSensorValue(
                                    room.Endpoints.SmapEndponts.First(s => s.Value == SensorType.Occupants).Key);
                }
            }

            if (building.Endpoints != null && building.Endpoints.SmapEndponts.ContainsValue(SensorType.Occupants))
            {
                building.Occupants =
                    (int)
                        smapDal.GetCurrentSensorValue(
                            building.Endpoints.SmapEndponts.First(s => s.Value == SensorType.Occupants).Key);
            }

        }
        public void WaterUpdate(LiveBuilding building)
        {
            foreach (
                var floor in building.Floors.Where(floor => floor.GetType() == typeof(LiveFloor)).Cast<LiveFloor>())
            {
                if (floor.Endpoints != null)
                {
                    if (floor.Endpoints.SmapEndponts.ContainsValue(SensorType.HotWater))
                        floor.HotWaterConsumption =
                            smapDal.GetCurrentSensorValue(
                                floor.Endpoints.SmapEndponts.First(s => s.Value == SensorType.HotWater).Key);

                    if (floor.Endpoints.SmapEndponts.ContainsValue(SensorType.ColdWater))
                        floor.ColdWaterConsumption =
                            smapDal.GetCurrentSensorValue(
                                floor.Endpoints.SmapEndponts.First(s => s.Value == SensorType.ColdWater).Key);
                }
            }
        }
        public void PowerConsumptionUpdate(LiveBuilding building)
        {
            foreach (
                var floor in building.Floors.Where(floor => floor.GetType() == typeof(LiveFloor)).Cast<LiveFloor>())
            {
                foreach (var room in floor.Rooms.Where(room => room.GetType() == typeof(LiveRoom)).Cast<LiveRoom>())
                {
                    if (room.Endpoints != null)
                    {
                        if (room.Endpoints.SmapEndponts.ContainsValue(SensorType.HardwarePowerConsumption))
                            room.HardwareConsumption = GetPoweruser(room.Endpoints.SmapEndponts,
                                SensorType.HardwarePowerConsumption);

                        if (room.Endpoints.SmapEndponts.ContainsValue(SensorType.LightPowerConsumption))
                            room.LightConsumption = GetPoweruser(room.Endpoints.SmapEndponts,
                                SensorType.LightPowerConsumption);

                        if (room.Endpoints.SmapEndponts.ContainsValue(SensorType.VentilationPowerConsumption))
                            room.VentilationConsumption = GetPoweruser(room.Endpoints.SmapEndponts,
                                SensorType.VentilationPowerConsumption);


                        if (room.Endpoints.SmapEndponts.ContainsValue(SensorType.OtherPowerConsumption))
                            room.OtherConsumption = GetPoweruser(room.Endpoints.SmapEndponts,
                                SensorType.OtherPowerConsumption);

                        if (room.Endpoints.SmapEndponts.ContainsValue(SensorType.TotalPowerConsumption))
                            room.TotalPowerConsumption = GetPoweruser(room.Endpoints.SmapEndponts,
                                SensorType.TotalPowerConsumption);

                    }
                }
                if (floor.Endpoints != null)
                {
                    if (floor.Endpoints.SmapEndponts.ContainsValue(SensorType.HardwarePowerConsumption))
                        floor.HardwareConsumption = GetPoweruser(floor.Endpoints.SmapEndponts,
                            SensorType.HardwarePowerConsumption);

                    if (floor.Endpoints.SmapEndponts.ContainsValue(SensorType.LightPowerConsumption))
                        floor.LightConsumption = GetPoweruser(floor.Endpoints.SmapEndponts,
                            SensorType.LightPowerConsumption);

                    if (floor.Endpoints.SmapEndponts.ContainsValue(SensorType.VentilationPowerConsumption))
                        floor.VentilationConsumption = GetPoweruser(floor.Endpoints.SmapEndponts,
                            SensorType.VentilationPowerConsumption);

                    if (floor.Endpoints.SmapEndponts.ContainsValue(SensorType.OtherPowerConsumption))
                        floor.OtherConsumption = GetPoweruser(floor.Endpoints.SmapEndponts,
                            SensorType.OtherPowerConsumption);

                    if (floor.Endpoints.SmapEndponts.ContainsValue(SensorType.TotalPowerConsumption))
                        floor.TotalPowerConsumption = GetPoweruser(floor.Endpoints.SmapEndponts,
                            SensorType.TotalPowerConsumption);

                }
            }
        }
 public string ConvertBuilding(LiveBuilding building)
 {
     return jsonLiveConverter.ConvertBuilding(building);
 }
        public string ConvertRooms(LiveBuilding building, int? floorLevel = null)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("{\"type\": \"FeatureCollection\", \"features\": [");
            foreach (var floor in building.Floors.Where(floor => floor.GetType() == typeof(LiveFloor)).Cast<LiveFloor>())
            {
                if (floor.FloorLevel == floorLevel)
                {
                    foreach (Room room in floor.Rooms)
                    {
                        LiveRoom currentRoom = null;
                        if (typeof(LiveRoom) == room.GetType())
                        {
                            currentRoom = (LiveRoom)room;
                        }
                        else
                        {
                            continue;
                        }
                        sb.Append("{ \"type\": \"Feature\", \"properties\": {");
                        sb.Append("\"Name\":" + JsonConvert.SerializeObject(room.Name) + ",");
                        sb.Append("\"SurfaceArea\":" + JsonConvert.SerializeObject(currentRoom.SurfaceArea) + ",");
                        sb.Append("\"Alias\":" + JsonConvert.SerializeObject(currentRoom.Alias) + ",");

                        sb.Append("\"Temperature\":" + JsonConvert.SerializeObject(currentRoom.Temperature) + ",");
                        sb.Append("\"MaxTemperature\":" + JsonConvert.SerializeObject(currentRoom.MaxTemperature) + ",");
                        sb.Append("\"MinTemperature\":" + JsonConvert.SerializeObject(currentRoom.MinTemperature) + ",");

                        sb.Append("\"CO2\":" + JsonConvert.SerializeObject(currentRoom.CO2) + ",");
                        sb.Append("\"MaxCO2\":" + JsonConvert.SerializeObject(currentRoom.MaxCO2) + ",");
                        sb.Append("\"MinCO2\":" + JsonConvert.SerializeObject(currentRoom.MinCO2) + ",");

                        sb.Append("\"Light\":" + JsonConvert.SerializeObject(currentRoom.Light) + ",");

                        sb.Append("\"Lux\":" + JsonConvert.SerializeObject(currentRoom.Lux) + ",");
                        sb.Append("\"MaxLux\":" + JsonConvert.SerializeObject(currentRoom.MaxLux) + ",");

                        sb.Append("\"HardwareConsumption\":" + JsonConvert.SerializeObject(currentRoom.HardwareConsumption) + ",");
                        sb.Append("\"MaxHardwareConsumption\":" + JsonConvert.SerializeObject(currentRoom.MaxHardwareConsumption) + ",");
                        sb.Append("\"MinHardwareConsumption\":" + JsonConvert.SerializeObject(currentRoom.MinHardwareConsumption) + ",");

                        sb.Append("\"LightConsumption\":" + JsonConvert.SerializeObject(currentRoom.LightConsumption) + ",");
                        sb.Append("\"MaxLightConsumption\":" + JsonConvert.SerializeObject(currentRoom.MaxLightConsumption) + ",");
                        sb.Append("\"MinLightConsumption\":" + JsonConvert.SerializeObject(currentRoom.MinLightConsumption) + ",");

                        sb.Append("\"VentilationConsumption\":" + JsonConvert.SerializeObject(currentRoom.VentilationConsumption) + ",");
                        sb.Append("\"MaxVentilationConsumption\":" + JsonConvert.SerializeObject(currentRoom.MaxVentilationConsumption) + ",");
                        sb.Append("\"MinVentilationConsumption\":" + JsonConvert.SerializeObject(currentRoom.MinVentilationConsumption) + ",");

                        sb.Append("\"OtherConsumption\":" + JsonConvert.SerializeObject(currentRoom.OtherConsumption) + ",");
                        sb.Append("\"MaxOtherConsumption\":" + JsonConvert.SerializeObject(currentRoom.MaxOtherConsumption) + ",");
                        sb.Append("\"MinOtherConsumption\":" + JsonConvert.SerializeObject(currentRoom.MinOtherConsumption) + ",");

                        sb.Append("\"TotalPowerConsumption\":" + JsonConvert.SerializeObject(currentRoom.TotalPowerConsumption) + ",");
                        sb.Append("\"MaxTotalPowerConsumption\":" + JsonConvert.SerializeObject(currentRoom.MaxTotalPowerConsumption) + ",");
                        sb.Append("\"MinTotalPowerConsumption\":" + JsonConvert.SerializeObject(currentRoom.MinTotalPowerConsumption) + ",");

                        sb.Append("\"Motion\":" + JsonConvert.SerializeObject(currentRoom.Motion) + ",");

                        sb.Append("\"Occupants\":" + JsonConvert.SerializeObject(currentRoom.Occupants) + ",");
                        sb.Append("\"MaxOccupants\":" + JsonConvert.SerializeObject(currentRoom.MaxOccupants) + ",");

                        sb.Append("\"WifiClients\":" + JsonConvert.SerializeObject(currentRoom.WifiClients) + ",");
                        sb.Append("\"MaxWifiClients\":" + JsonConvert.SerializeObject(currentRoom.MaxWifiClients));

                        sb.Append("},\"geometry\": { \"type\": \"Polygon\", \"coordinates\": [ [");
                        sb.Append("[" + JsonConvert.SerializeObject(currentRoom.Corners.TopLeftCorner.XCoordinate) + "," + JsonConvert.SerializeObject(currentRoom.Corners.TopLeftCorner.YCoordinate) + "],");
                        sb.Append("[" + JsonConvert.SerializeObject(currentRoom.Corners.BottomLeftCorner.XCoordinate) + "," + JsonConvert.SerializeObject(currentRoom.Corners.BottomLeftCorner.YCoordinate) + "],");
                        sb.Append("[" + JsonConvert.SerializeObject(currentRoom.Corners.BottomRightCorner.XCoordinate) + "," + JsonConvert.SerializeObject(currentRoom.Corners.BottomRightCorner.YCoordinate) + "],");
                        sb.Append("[" + JsonConvert.SerializeObject(currentRoom.Corners.TopRightCorner.XCoordinate) + "," + JsonConvert.SerializeObject(currentRoom.Corners.TopRightCorner.YCoordinate) + "],");
                        sb.Remove(sb.Length - 1, 1);
                        sb.Append("]]}},");
                    }
                    sb.Remove(sb.Length - 1, 1);
                    break;
                }
            }
            sb.Append("]}");
            return sb.ToString();
        }
 public LiveBuilding CreateBuilding()
 {
     building = new LiveBuilding
     {
         //MaxColdWaterConsumption = 100000,
         //MaxHotWaterConsumption = 100000,
         MaxOccupants = 2000,
         Name = "Building 44",
         Occupants = 1108,
         //ColdWaterConsumption = 2200,
         //HotWaterConsumption = 2100,
     };
     return building;
 }
        public void SetupBuilding(LiveBuilding building)
        {
            //building = buildingDAL.GetBuilding("Building 44");
            //getLiveRooms(building);
            //getSensorLessRooms(building);
            this.building = building;

            CreateFloors();

            CreateCellarFloorRooms();
            CreateParterreFloorRooms();
            CreateGroundFloorRooms();
            CreateGroundFloorSensorlessRooms();
            CreateFirstFloorRooms();

            CreateFloors();

            CreateCellarFloorRooms();

            CreateParterreFloorRooms();
            CreateParterreFloorSensorlessRooms();

            CreateGroundFloorRooms();
            CreateGroundFloorSensorlessRooms();

            CreateFirstFloorRooms();
            CreateFirstFloorSensorlessRooms();

            AssembleBuilding();

            HttpContext.Current.Application["Building"] = building;
            //buildingDAL.SaveBuilding(building);
            //TestTimer();
        }
        public string GetTemporalBuildingInfoBox(LiveBuilding liveBuilding, DateTime timeFrom,
          DateTime timeTo)
        {
            TemporalBuilding building = GetTemporalBuilding(liveBuilding);
            timeFrom = TemporalValidator.ValidateDate(timeFrom);
            timeTo = TemporalValidator.ValidateDate(timeTo);
            sMapManagerTemporal.TemporalUpdateAll(building, timeFrom, timeTo);

            return jsonConverterTemporal.ConvertBuilding(building);
        }