Example #1
0
        public IHttpActionResult FireAlarm(FireAlarm alarm)
        {
            AlarmDomain alarmDomain   = new AlarmDomain();
            DeviceRead  currentDevice = StaticContext.GetCurrentDevice();

            if (currentDevice == null)
            {
                throw new UnauthorizedAccessException("Device token required");
            }

            ValuesDomain valuesDomain = new ValuesDomain();
            DeviceValue  val          = new DeviceValue();

            val          = Utilities.Map <FireAlarm, DeviceValue>(alarm, val);
            val.DeviceId = currentDevice.Id;
            val.AlarmId  = alarm.AlarmId;
            valuesDomain.SaveValue(val);



            if (alarm.Side == "onserver")
            {
                AlarmFireDto alarmDto = new AlarmFireDto();
                alarmDto = Utilities.Map <FireAlarm, AlarmFireDto>(alarm, alarmDto);
                alarmDomain.FireAlarm(alarmDto);
            }
            return(Ok());
        }
Example #2
0
        internal void FireAlarm(AlarmFireDto alarm)
        {
            tKovanContext ctx = new tKovanContext();

            TeknolojiKovaniWebApi.Models.EntityClass.Alarm alarmEnt = ctx.Alarm.FirstOrDefault(i => i.Id == alarm.AlarmId);

            alarmEnt = ctx.Alarm.Include("Device").Include("Property").FirstOrDefault(i => i.Id == alarm.AlarmId);

            AlarmNotification notification = new AlarmNotification();

            notification.DeviceName            = alarmEnt.Device.Name;
            notification.Max                   = alarmEnt.Max;
            notification.Min                   = alarmEnt.Min;
            notification.NotificationParameter = alarmEnt.AlarmParameter;
            notification.Property              = alarmEnt.Property.Name;
            notification.Value                 = alarm.Value;

            switch (alarmEnt.AlarmType)
            {
            case TeknolojiKovaniWebApi.Models.EntityClass.AlarmType.Sms:
                break;

            case TeknolojiKovaniWebApi.Models.EntityClass.AlarmType.Email:
                AlarmSendEmail(notification);
                break;

            case TeknolojiKovaniWebApi.Models.EntityClass.AlarmType.VoiceCall:
                break;

            case TeknolojiKovaniWebApi.Models.EntityClass.AlarmType.OnDevice:
                break;

            default:
                break;
            }
        }