예제 #1
0
        public DtoEditSensor EditSensor(DtoEditSensor value)
        {
            var dbSensor = sensorRepository.Update(new Sensor()
            {
                Id   = value.Id,
                Ip   = value.Ip,
                Name = value.Name,
                Mac  = value.Mac
            });

            if (dbSensor == null)
            {
                return(null);
            }

            if (value.ScheduleId == 0)
            {
                scheduleRepository.RemoveSensorFromSchedule(dbSensor, dbSensor.ScheduleId);
                sensorRepository.RemoveScheduleFromSensor(value.Id);
            }

            else
            if (AddScheduleToSensor(value.Id, value.ScheduleId) != null)
            {
                scheduleRepository.AddSensorToScheduleById(dbSensor, value.ScheduleId);
            }

            if (value.ZoneId == 0)
            {
                zoneRepository.RemoveSensorFromZone(dbSensor, dbSensor.ZoneId);
                sensorRepository.RemoveZoneFromSensor(value.Id);
            }

            else
            if (AddZoneToSensor(value.Id, value.ZoneId) != null)
            {
                zoneRepository.AddSensorToZoneById(dbSensor, value.ZoneId);
            }

            if (value.SwitchId == 0)
            {
                switchRepository.RemoveSensorFromSwitch(dbSensor, dbSensor.SwitchId);
                sensorRepository.RemoveSwitchFromSensor(value.Id);
            }

            else
            if (AddSwitchToSensor(value.Id, value.SwitchId) != null)
            {
                switchRepository.AddSensorToSwitchById(dbSensor, value.SwitchId);
            }


            return(new DtoEditSensor()
            {
                Id = dbSensor.Id,
                Ip = dbSensor.Ip,
                Name = dbSensor.Name,
                Mac = dbSensor.Mac
            });
        }