protected override void Run()
 {
     try
     {
         var req = new UpdateNodeRefreshCommandQueueStatusRequest()
         {
             NodeId = GlobalNodeConfig.NodeID, Source = Source.Web, RefreshStatus = RefreshCommandQueueStatus.Refreshing, MonitorClassName = this.GetType().Name
         };
         var r = NodeProxy.PostToServer <EmptyResponse, UpdateNodeRefreshCommandQueueStatusRequest>(ProxyUrl.UpdateNodeRefreshCmdQueueStatus_Url, req);
         if (r.Status != ResponesStatus.Success)
         {
             string        title      = "节点(编号):" + GlobalNodeConfig.NodeInfo.nodename + "(" + GlobalNodeConfig.NodeInfo.id.ToString() + ")上报监听命令状态失败,请及时处理!";
             StringBuilder strContent = new StringBuilder();
             strContent.AppendLine("请求地址:" + ProxyUrl.UpdateNodeRefreshCmdQueueStatus_Url + "<br/>");
             strContent.AppendLine("请求参数:" + JsonConvert.SerializeObject(req) + "<br/>");
             strContent.AppendLine("响应结果:" + JsonConvert.SerializeObject(r) + "<br/>");
             AlarmHelper.AlarmAsync(GlobalNodeConfig.NodeInfo.isenablealarm, (AlarmType)GlobalNodeConfig.NodeInfo.alarmtype, GlobalNodeConfig.Alarm, title, strContent.ToString());
             LogProxy.AddNodeErrorLog(strContent.ToString());
         }
     }
     catch (Exception ex)
     {
         LogProxy.AddNodeErrorLog("节点(" + GlobalNodeConfig.NodeInfo.nodename + "(" + GlobalNodeConfig.NodeInfo.id.ToString() + ")" + ")监听命令队列监控异常:" + ex.Message + ",异常:" + JsonConvert.SerializeObject(ex));
         AlarmHelper.AlarmAsync(GlobalNodeConfig.NodeInfo.isenablealarm, (AlarmType)GlobalNodeConfig.NodeInfo.alarmtype, GlobalNodeConfig.Alarm, "节点(" + GlobalNodeConfig.NodeInfo.nodename + "(" + GlobalNodeConfig.NodeInfo.id.ToString() + ")" + ")监听命令队列监控异常", JsonConvert.SerializeObject(ex));
     }
 }
Exemple #2
0
 public TasksActivity()
 {
     _taskDataHelper = new ScheduledTaskDataHelper();
     _dialogHelper   = new DialogHelper();
     _alarmHelper    = new AlarmHelper();
     _layoutManager  = new LinearLayoutManager(this);
 }
 public override void OnReceive(Context context, Intent intent)
 {
     if (intent.Action.Equals(Intent.ActionBootCompleted))
     {
         AlarmHelper.SetAllAlarmWhenRestart();
     }
 }
Exemple #4
0
        protected override void Run()
        {
            lock (lockObj)
            {
                int monitorstatus = (int)MonitorStatus.Monitoring;
                List <tb_nodemonitor> nodemonitorlist = nodemonitorRep.Find(x => x.isdel == 0 && x.monitorstatus == monitorstatus).ToList();
                List <tb_user>        userList        = userRep.Find(x => x.isdel == 0).ToList();
                StringBuilder         strLog          = new StringBuilder();
                nodemonitorlist.ForEach(x =>
                {
                    try
                    {
                        tb_node node            = nodeRep.FindSingle(m => m.id == x.nodeid);
                        List <int> uidlist      = node.alarmuserid.ConvertToList();
                        List <tb_user> userlist = userList.Where(m => uidlist.Contains(m.id)).ToList();
                        string alaramperson     = node.alarmtype == (int)AlarmType.Email ? string.Join(",", userlist.Select(m => m.useremail).ToArray()) : string.Join(",", userlist.Select(m => m.usermobile).ToArray());
                        if (x.monitorstatus == (int)MonitorStatus.Monitoring)//运行中
                        {
                            #region 检测心跳
                            double totalsecond = Math.Abs(x.lastmonitortime.Subtract(DateTime.Now).TotalSeconds);
                            if (totalsecond > (20 + x.interval / 1000) || totalsecond < 0)//大于10s 说明心跳不正常
                            {
                                nodemonitorRep.UpdateById(new List <int>()
                                {
                                    x.id
                                }, new Dictionary <string, string>()
                                {
                                    { "monitorstatus", ((int)NodeStatus.NoRun).ToString() }
                                });                                                                                                                                               //, { "refreshcommandqueuestatus", ((int)RefreshCommandQueueStatus.NoRefresh).ToString() }
                                if (node.nodestatus != (int)NodeStatus.NoRun)
                                {
                                    string title = "节点(编号):" + node.nodename + "(" + x.nodeid.ToString() + "),监控组件:" +
                                                   x.classname + ",心跳异常,已自动更新为未监控状态,请及时处理该节点下该监控组件!";
                                    StringBuilder strContent = new StringBuilder();
                                    strContent.AppendLine("节点(编号):" + node.nodename + "(" + node.id.ToString() +
                                                          ")<br/>");
                                    strContent.AppendLine("节点监控组件名称(编号):" + x.name + "(" + x.id.ToString() + ")<br/>");
                                    strContent.AppendLine("节点监控组件描述:" + x.discription + "<br/>");
                                    strContent.AppendLine("节点监控类名,命名空间:" + x.classname + "," +
                                                          x.classnamespace.ToString() + "<br/>");
                                    strContent.AppendLine("节点监控组件最后一次心跳时间:" + x.lastmonitortime + "<br/>");
                                    AlarmHelper.AlarmAsync(node.isenablealarm, (AlarmType)node.alarmtype, alaramperson,
                                                           title, strContent.ToString());
                                }
                            }

                            #endregion
                        }
                    }
                    catch (Exception ex)
                    {
                        strLog.AppendLine("监控节点监控组件异常:" + JsonConvert.SerializeObject(ex));
                    }
                });
                if (strLog.Length > 0)
                {
                    log.Error(strLog.ToString());
                }
            }
        }
Exemple #5
0
        public void UpdateAckStatus(AlarmHelper alarmtoupdate)
        {
            long powerSystemResGid = alarmtoupdate.Gid;

            foreach (AlarmHelper alarm in this.Alarms)
            {
                if (alarm.Gid.Equals(powerSystemResGid) && alarm.AckState == AckState.Unacknowledged)
                {
                    alarm.AckState     = alarmtoupdate.AckState;
                    alarm.CurrentState = alarmtoupdate.CurrentState;
                    alarm.PubStatus    = PublishingStatus.UPDATE;
                    if (UpdateAlarmAckStatusIntoDb(alarm))
                    {
                        Console.WriteLine("Alarm status with GID:{0} updated into database.", alarm.Gid);
                    }

                    try
                    {
                        this.Publisher.PublishStateChange(alarm);
                        string message = string.Format("Alarm on Gid: {0} - Changed status: {1}", alarm.Gid, alarm.CurrentState);
                        CommonTrace.WriteTrace(CommonTrace.TraceInfo, message);
                    }
                    catch (Exception ex)
                    {
                        string message = string.Format("Greska ", ex.Message);
                        CommonTrace.WriteTrace(CommonTrace.TraceError, message);
                        // throw new Exception(message);
                    }
                }
            }
        }
        public void UpdateAlarmsEvents(AlarmHelper alarm)
        {
            CommonTrace.WriteTrace(CommonTrace.TraceInfo, string.Format("UPDATE ALARM: {0} on Signal GID: {1} | SessionID id: {2}",
                                                                        alarm.Value.ToString(), alarm.Gid.ToString(), OperationContext.Current.SessionId));

            CallbackAction(alarm);
        }
 public static void EnsureAllScheduled()
 {
     foreach (var alarm in Alarms)
     {
         AlarmHelper.EnsureScheduled(alarm);
     }
 }
Exemple #8
0
        /// <summary>
        /// 报警处理
        /// </summary>
        /// <param name="mon"></param>
        protected void CheckAlarm(byte[] alarmCode)
        {
            try
            {
                List <string> acList = new List <string>();

                //未有报警
                if (alarmCode.Length == 0 || alarmCode[0] == 0x00)
                {
                    //删除当前报警(当前报警自动转化为历史报警)
                    AlarmHelper.RemoveAlarm(GlobalConfig.AlarmSource);
                }
                else
                {
                    //添加MCU报警
                    for (int i = 0; alarmCode != null && i < alarmCode.Length; i++)
                    {
                        if (alarmCode[i] > 0x00)
                        {
                            acList.Add(string.Format("0x{0}", CII.Library.Util.Sundry.StringUtil.ByteToString(alarmCode[i])));
                        }
                    }

                    AlarmHelper.AddAlarm(GlobalConfig.AlarmSource, acList);
                }
            }
            catch (Exception ex)
            {
                Entry.LAR.Entry.LogException(ex);
            }
        }
Exemple #9
0
        /// <summary>
        /// Check for sensor type Units Of Measure
        /// </summary>
        /// <param name="alarmObject"></param>
        /// <returns></returns>
        private string GetSensorTypeUOM(Interface.Alarm.AlarmObject alarmObject)
        {
            string         sensorType = "", sensorTypeUOM = "";
            SensorTypeInfo sensorTypeInfo = null;

            sensorType = alarmObject.SensorType.ToStr().Trim().ToUpper();
            if (AlarmHelper.IsTempSensor(sensorType))
            {
                sensorTypeUOM = (alarmObject.IsCelsius) ? "C" : "F";
            }
            else if (sensorType.IndexOf("HUMI") >= 0)
            {
                sensorTypeUOM = "%RH";
            }
            else if (AlarmHelper.IsContactSensor(sensorType))
            {
                sensorTypeUOM = "";
            }
            else if (sensorType.Length > 0)
            {
                sensorTypeInfo = AlarmHelper.GetSensorTypeInfo(sensorType);
                if (sensorTypeInfo != null)
                {
                    sensorTypeUOM  = sensorTypeInfo.UOM;
                    sensorTypeInfo = null;
                }
            }
            return(sensorTypeUOM);
        }
Exemple #10
0
 public CreateTaskActivity()
 {
     _taskDataHelper = new ScheduledTaskDataHelper();
     _dialogHelper   = new DialogHelper();
     _alarmHelper    = new AlarmHelper();
     _items          = Enum.GetNames(typeof(Frequency));
 }
Exemple #11
0
        private int GetSensorTypeDecimals(string sensorType)
        {
            int            sensorTypeDecimals = 1;
            SensorTypeInfo sensorTypeInfo     = null;

            sensorType = sensorType.ToStr().Trim().ToUpper();
            if (AlarmHelper.IsTempSensor(sensorType))
            {
                sensorTypeDecimals = 1;
            }
            else if (sensorType.IndexOf("HUMI") >= 0)
            {
                sensorTypeDecimals = 0;
            }
            else if (AlarmHelper.IsContactSensor(sensorType))
            {
                sensorTypeDecimals = 0;
            }
            else if (sensorType.IndexOf("REPEA") >= 0)
            {
                sensorTypeDecimals = 0;
            }
            else if (sensorType.Length > 0)
            {
                sensorTypeInfo = AlarmHelper.GetSensorTypeInfo(sensorType);
                if (sensorTypeInfo.ID != 0)
                {
                    sensorTypeDecimals = sensorTypeInfo.nDecimals;
                    sensorTypeInfo     = null;
                }
            }
            return(sensorTypeDecimals);
        }
        private void CancelAlarms(List <MedicationSpread> reminders)
        {
            if (reminders == null)
            {
                return;
            }

            AlarmHelper alarmHelper = new AlarmHelper(this);

            try
            {
                foreach (var med in reminders)
                {
                    if (med.MedicationTakeReminder != null)
                    {
                        if (med.MedicationTakeReminder.IsSet)
                        {
                            alarmHelper.CancelAlarm(med.MedicationTakeReminder.ID);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Log.Error(TAG, "CancelAlarms: Exception - " + e.Message);
                if (GlobalData.ShowErrorDialog)
                {
                    ErrorDisplay.ShowErrorAlert(this, e, GetString(Resource.String.ErrorMedicationRemove), "MedicationActivity.CancelAlarms");
                }
            }
        }
        private string ReadAlarmHandle(ref ushort flib, string para)
        {
            string message = null;

            var res = new List <ReadAlarmResultItemModel>();

            var ret = new AlarmHelper().ReadAlarmRange(flib, ref res);

            if (ret.Item1 == -16)
            {
                var ret_conn = ConnectHelper.BuildConnect(ref flib, m_ip, m_port, m_timeout);

                if (ret_conn == 0)
                {
                    ret = new AlarmHelper().ReadAlarmRange(flib, ref res);
                }
            }

            if (ret.Item1 != 0)
            {
                message = ret.Item2;
            }
            GetResultEvent?.Invoke(new BaseCNCResultModel <ReadAlarmResultItemModel>()
            {
                Value = res, Id = para
            });

            return(message);
        }
        public ActionResult FilterCurrent()
        {
            List <int> alarms = (List <int>)Session["alarmIDs"];
            int        plcID  = 1;
            string     lang   = "en";

            if (Session["AlarmPlcID"] != null)
            {
                plcID = (int)Session["AlarmPlcID"];
            }
            if (Session["AlarmLang"] != null)
            {
                if (Session["AlarmLang"].ToString().Length >= 2)
                {
                    lang = Session["AlarmLang"].ToString();
                }
            }
            if (alarms != null)
            {
                Session["alarmIDs"] = null;

                AlarmHelper AH = new AlarmHelper();
                List <AlarmHelper.alarm_texts> model = new List <AlarmHelper.alarm_texts>();
                model = AH.SelectAlarmsTexts(Session["AlarmDB"].ToString(), alarms, plcID, lang);
                return(View("Filter", model));
            }
            Session["tempforview"] = "Problem with accesing current alarms";
            return(RedirectToAction("Index", "Alarm"));
        }
Exemple #15
0
        private bool CheckForEGUAlarms(float value, float minEgu, float maxEgu, long gid, string name)
        {
            bool        retVal = false;
            AlarmHelper ah     = new AlarmHelper(gid, value, minEgu, maxEgu, DateTime.Now);

            if (value < minEgu)
            {
                ah.Type = AlarmType.LOW;
                if (value >= (minEgu - (minEgu * 20 / 100)))
                {
                    ah.Severity = SeverityLevel.MEDIUM;
                }
                else if (value >= (minEgu - (minEgu * 40 / 100)))
                {
                    ah.Severity = SeverityLevel.MINOR;
                }
                else
                {
                    ah.Severity = SeverityLevel.LOW;
                }
                ah.TimeStamp = DateTime.Now;
                ah.Message   = string.Format("Value on input analog signal: {0} lower than minimum expected value", name);
                ah.Name      = name;
                AlarmsEventsProxy.Instance.AddAlarm(ah);
                retVal = true;
                CommonTrace.WriteTrace(CommonTrace.TraceInfo, "Alarm on low raw limit on gid: {0:X}", gid);
                Console.WriteLine("Alarm on low raw limit on gid: {0}", name);
            }

            if (value > maxEgu)
            {
                ah.Type = AlarmType.HIGH;
                if (value <= (maxEgu + (maxEgu * 10 / 100)))
                {
                    ah.Severity = SeverityLevel.MAJOR;
                }
                else if (value <= (maxEgu + (maxEgu * 20 / 100)))
                {
                    ah.Severity = SeverityLevel.HIGH;
                }
                else
                {
                    ah.Severity = SeverityLevel.CRITICAL;
                }
                ah.TimeStamp = DateTime.Now;
                ah.Message   = string.Format("Value on input analog signal: {0} higher than maximum expected value", name);
                ah.Name      = name;

                AlarmsEventsProxy.Instance.AddAlarm(ah);
                retVal = true;
                CommonTrace.WriteTrace(CommonTrace.TraceInfo, "Alarm on high raw limit on gid: {0}", name);
                Console.WriteLine("Alarm on high raw limit on gid: {0}", name);
            }

            return(retVal);
        }
Exemple #16
0
        protected override void Run()
        {
            try
            {
                var res = NodeProxy.PostToServer <EmptyResponse, UpdateNodeMonitorRequest>(ProxyUrl.UpdateNodeMonitorRequest_Url, new UpdateNodeMonitorRequest()
                {
                    MonitorClassName = this.GetType().Name, MonitorStatus = (int)MonitorStatus.Monitoring, NodeId = GlobalNodeConfig.NodeID, Source = Source.Node
                });
                if (res.Status != ResponesStatus.Success)
                {
                    LogProxy.AddNodeErrorLog(this.GetType().Name + "监控组件上报监控信息失败,请求地址:" + ProxyUrl.UpdateNodeMonitorRequest_Url + ",返回结果:" + JsonConvert.SerializeObject(res));
                }

                LoadTaskIdListRequest req = new LoadTaskIdListRequest()
                {
                    Source = Source.Node, TaskScheduleStatus = (int)TaskScheduleStatus.Scheduling, NodeId = GlobalNodeConfig.NodeID
                };
                var        r = NodeProxy.PostToServer <LoadTaskIdListResponse, LoadTaskIdListRequest>(ProxyUrl.LoadTaskIdList_Url, req);
                List <int> taskschdulinglist = TaskPoolManager.CreateInstance().GetList().Select(x => x.TaskModel.id).ToList();
                if (r.Status != ResponesStatus.Success)
                {
                    //如果服务端没有调度中的,则把本地在调度中的上报状态
                    if (taskschdulinglist.Count > 0)
                    {
                        UploadLocalTask(taskschdulinglist);
                    }
                    return;
                }

                List <int> taskidnotserver = taskschdulinglist.Where(x => !(r.Data.TaskIdList.Contains(x))).ToList();
                r.Data.TaskIdList.ForEach(x =>
                {
                    var taskruntimeInfo = TaskPoolManager.CreateInstance().Get(x.ToString());
                    if (taskruntimeInfo == null)//如果等于空值则报警,说明该任务再
                    {
                        string title             = "节点(id):" + GlobalNodeConfig.NodeInfo.nodename + "(" + GlobalNodeConfig.NodeInfo.id.ToString() + "),任务id:(" + x + ")" + ",调度异常,请及时处理!";
                        StringBuilder strContent = new StringBuilder();
                        strContent.AppendLine("所在节点名称(编号):" + GlobalNodeConfig.NodeInfo.nodename + "(" + GlobalNodeConfig.NodeID + ")<br/>");
                        strContent.AppendLine("任务编号:" + x + "<br/>");
                        strContent.AppendLine("服务端任务状态:调度中<br/>");
                        strContent.AppendLine("节点端任务状态:任务池中已不存在该任务,调度异常<br/>");
                        AlarmHelper.AlarmAsync(GlobalNodeConfig.NodeInfo.isenablealarm, (AlarmType)GlobalNodeConfig.NodeInfo.alarmtype, GlobalNodeConfig.Alarm, title, strContent.ToString());
                        LogProxy.AddNodeErrorLog(strContent.ToString());
                    }
                });
                if (taskidnotserver.Count > 0)
                {
                    UploadLocalTask(taskidnotserver);
                }
            }
            catch (Exception ex)
            {
                LogProxy.AddNodeErrorLog("节点(" + GlobalNodeConfig.NodeInfo.nodename + "(" + GlobalNodeConfig.NodeInfo.id.ToString() + ")" + ")监控调度中任务异常:" + ex.Message + ",异常:" + JsonConvert.SerializeObject(ex));
                AlarmHelper.AlarmAsync(GlobalNodeConfig.NodeInfo.isenablealarm, (AlarmType)GlobalNodeConfig.NodeInfo.alarmtype, GlobalNodeConfig.Alarm, "节点(" + GlobalNodeConfig.NodeInfo.nodename + "(" + GlobalNodeConfig.NodeInfo.id.ToString() + ")" + ")监控调度中任务异常", JsonConvert.SerializeObject(ex));
            }
        }
Exemple #17
0
        protected override Tuple <short, string> PollRead(string item)
        {
            var ret = new AlarmHelper().ReadAlarmRange(flib, ref temp);

            if (ret.Item1 != 0)
            {
                message = ret.Item2;
            }
            return(ret);
        }
Exemple #18
0
        public async Task <JsonResult> getData(string json = null)
        {
            Error.TraceStart();
            string controllerName = this.ControllerContext.RouteData.Values["controller"].ToString();
            //Error.TraceLog("GraphController.getData, point1");



            StreamReader stream = new StreamReader(Request.InputStream);

            if (json == null)
            {
                json = stream.ReadToEnd();
            }
            if (json != "")
            {
                object      data        = new object();
                DataRequest dataRequest = new JavaScriptSerializer().Deserialize <DataRequest>(json);
                Error.TraceLog("GraphController.getData, point1");
                try
                {
                    GraphHandler GH = new GraphHandler();

                    DataRequest dataResponse = await GH.proceedSQLquery(dataRequest, config);

                    Error.TraceLog("GraphController.getData, point2");
                    if ((dataRequest.beginTime + dataRequest.timeAxisLength) <= AlarmHelper.DateTimeTopkTime(DateTime.Now))
                    {
                        if (dataResponse.tags.All(p => p.vals.All(q => (q == double.MaxValue)) == true))
                        {
                            for (int i = 0; i < dataResponse.tags.Count; i++)
                            {
                                dataResponse.tags[i].vals = null;
                            }
                        }
                    }
                    data = dataResponse;
                    Error.TraceLog("GraphController.getData, point3");
                    return(Json(data, "application/json", JsonRequestBehavior.AllowGet));
                }
                catch (Exception e)
                {
                    data = dataRequest;
                    string k    = e.Message.ToString() + e.Source.ToString() + e.StackTrace.ToString();
                    string name = this.ControllerContext.RouteData.Values["controller"].ToString();
                    Error.toFile(k, name);
                    Session["tempforview"] = Error.timestamp + "   Error " + MvcApplication.ErrorId.ToString() + " occured so please try it again after some time"; //To screen also with id
                    return(Json(data, "application/json", JsonRequestBehavior.AllowGet));
                }
            }
            else
            {
                return(null);
            }
        }
        private void CheckOnlyCountActivityAndRefreshAlarmManager()
        {
            // Refresh AlarmManager
            Alarm.IsInitFinished = false;
            var allAlarms = alarmService.GetAllAlarms();

            Alarm.IsInitFinished = true;
            AlarmHelper.RefreshAlarmByManager100(allAlarms);

            OnlyCountDown();
        }
        public override void OnReceive(Context context, Intent intent)
        {
            Console.WriteLine("OnReceive_NotificationReceiver");
            var bundle = intent.Extras;

            id = bundle.GetInt("id", -100000);
            GetAlarmById();

            try
            {
                if (intent.Action == context.GetString(Resource.String.AlarmOff))
                {
                    TurnOffLaterAlarm();

                    CreateFailedRecord();

                    if (HelperAndroid.IsApplicationInTheBackground())
                    {
                        CrossCurrentActivity.Current.Activity?.FinishAffinity();
                    }
                }
                else if (intent.Action == context.GetString(Resource.String.GoOffNow))
                {
                    OpenAlarmActivity(context, bundle);
                }
                else if (intent.Action == context.GetString(Resource.String.AlarmPreOff))
                {
                    alarm.IsTurnOffPreAlarm = true;
                    App.AlarmService.SaveAlarm(alarm);
                    alarm.IsGoOffPreAlarm = true;

                    TurnOffPreAlarm();

                    if (HelperAndroid.IsApplicationInTheBackground())
                    {
                        CrossCurrentActivity.Current.Activity?.FinishAffinity();
                    }
                }
                else if (intent.Action == "GoOffPre")
                {
                    alarm.IsGoOffPreAlarm = true;
                    App.AlarmService.SaveAlarmAtLocal(alarm);

                    alarm.LaterAlarmTime = DateTime.Now.AddSeconds(0.5);
                    AlarmHelper.SetLaterAlarm(alarm);
                }
            }
            catch { }
            finally
            {
                CancelNotification(context, intent);
                AlarmsViewModel.RefreshAlarmsCommand?.Execute(null);
            }
        }
Exemple #21
0
        public override void OnReceive(Context context, Intent intent)
        {
            Console.WriteLine("OnReceive_PreAlarmReceiver");
            var bundle = intent.Extras;

            id = (int)bundle.Get("id");
            Console.WriteLine($"Id_AlarmReceiver : {id}");

            var alarm = GetAlarmFromDB();

            NotificationAndroid.NotifyPreAlarm(GetAlarmFromDB(), intent);

            AlarmHelper.SetAlarmAtFirst(alarm);
        }
        public static async Task DeleteAlarm(MyAlarm alarm)
        {
            try
            {
                Alarms.Remove(alarm);

                await Task.Run(async delegate
                {
                    await SaveAlarmsAsync();

                    AlarmHelper.RemoveAlarm(alarm);
                });
            }
            catch { }
        }
        private void SetAlarmComeback()
        {
            switch (CultureInfo.CurrentCulture.Name)
            {
            case "ko-KR":
                AlarmHelper.SetComebackNotification(true);
                break;

            case "en-US":
                break;

            default:
                break;
            }
        }
        private void SetLaterAlarm(int minutes)
        {
            var alarmTime = SetLaterAlarmAndGetLaterAlarmTime(minutes);

            AlarmHelper.SetLaterAlarm(alarm);
            //AlarmController.SetLaterAlarmByManager(alarm, (long)diffTimeSpan.TotalMilliseconds);

            alarmService.SaveAlarmAtLocal(alarm);

            countDownForFailed.Cancel();

            Toast.MakeText(ApplicationContext, CreateDateString.CreateTimeRemainingString(alarmTime), ToastLength.Long).Show();

            NotificationAndroid.NotifyLaterAlarm(alarm, Intent);
        }
Exemple #25
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            InitForOpenApp(savedInstanceState);

            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource   = Resource.Layout.Toolbar;

            SetMobileAds();

            Fabric.Fabric.With(this, new Crashlytics.Crashlytics());
            Crashlytics.Crashlytics.HandleManagedExceptions();

            AlarmHelper.SetComebackNotification(false);
        }
Exemple #26
0
        public void PublishAlarmsEvents(AlarmHelper alarm, PublishingStatus status)
        {
            switch (status)
            {
            case PublishingStatus.INSERT:
            {
                AlarmsEventsEventArgs e = new AlarmsEventsEventArgs()
                {
                    Alarm = alarm
                };

                try
                {
                    AlarmEvent(this, e);
                }
                catch (Exception ex)
                {
                    string message = string.Format("AES does not have any subscribed client for publishing new alarms. {0}", ex.Message);
                    CommonTrace.WriteTrace(CommonTrace.TraceVerbose, message);
                    Console.WriteLine(message);
                }

                break;
            }

            case PublishingStatus.UPDATE:
            {
                alarm.PubStatus = PublishingStatus.UPDATE;
                AlarmUpdateEventArgs e = new AlarmUpdateEventArgs()
                {
                    Alarm = alarm
                };

                try
                {
                    AlarmUpdate(this, e);
                }
                catch (Exception ex)
                {
                    string message = string.Format("AES does not have any subscribed client for publishing alarm status change. {0}", ex.Message);
                    CommonTrace.WriteTrace(CommonTrace.TraceVerbose, message);
                    Console.WriteLine(message);
                }
                break;
            }
            }
        }
Exemple #27
0
 private static void Alaram(UpdateTaskExecuteLogRequest req2, NodeTaskRunTimeInfo task, AbstractTask abstracttask)
 {
     if (task.TaskModel.isenablealarm == 1)
     {
         string        alarmperson = task.TaskModel.alarmtype == (int)AlarmType.Email ? abstracttask.GetAlarmEmailList() : abstracttask.GetAlarmMobileList();
         string        title       = "任务名称(" + task.TaskModel.taskname + ")" + req2.RunStatus.description() + ",请及时处理!";
         StringBuilder strContent  = new StringBuilder();
         strContent.AppendLine("所在节点名称(编号):" + GlobalNodeConfig.NodeInfo.nodename + "(" + GlobalNodeConfig.NodeID + ")<br/>");
         strContent.AppendLine("任务名称(编号):" + task.TaskModel.taskname + "(" + task.TaskModel.id + ")<br/>");
         strContent.AppendLine("任务类型:" + ((TaskType)task.TaskModel.tasktype).description() + "<br/>");
         strContent.AppendLine("任务执行参数:" + task.TaskVersionModel.taskparams + "<br/>");
         strContent.AppendLine("任务执行日志:" + req2.LogMsg + "<br/>");
         strContent.AppendLine("任务执行结果,状态:" + req2.RunStatus.description() + ",结果:" + JsonConvert.SerializeObject(req2.TaskResult) + "<br/>");
         strContent.AppendLine("任务执行耗时(s):" + req2.TotalRunTime + "<br/>");
         AlarmHelper.AlarmAsync(task.TaskModel.isenablealarm, (AlarmType)task.TaskModel.alarmtype, alarmperson, title, strContent.ToString());
     }
 }
        /// <param name="id">Id is page </param>s
        public async Task <ActionResult> Page(int page = 0, int count = 30)
        {
            List <int> alarms = new List <int>();
            string     lang   = "en";

            if (Session["filteredAlarms"] != null)
            {
                alarms = (List <int>)Session["filteredAlarms"];
            }
            else
            {
                alarms = null;
            }
            int offsetPage = page * count;

            if (page < 0)
            {
                Session["tempforview"] = "You have reached the minimum alarm page";
                return(RedirectToAction("Index"));
            }
            List <AlarmHelper.alarm> model = new List <AlarmHelper.alarm>();
            AlarmHelper AH    = new AlarmHelper();
            int         plcID = 1;

            if (int.Parse(Session["AlarmPlcID"].ToString()) != 0)
            {
                plcID = int.Parse(Session["AlarmPlcID"].ToString());
            }
            if (Session["AlarmLang"] != null)
            {
                if (Session["AlarmLang"].ToString().Length >= 2)
                {
                    lang = Session["AlarmLang"].ToString();
                }
            }
            model = await AH.SelectAlarms(Session["AlarmDB"].ToString(), page, 30, alarms, plcID, lang);

            if (model.Count == 0)
            {
                Session["tempforview"] = "No alarms has been found";
                return(RedirectToAction("Index"));
            }
            ViewBag.page   = page;
            ViewBag.legend = "Notification from current alarms means only from the unique ones \n Other occurence of the alarm would not viewed";
            return(View("Index", model));
        }
Exemple #29
0
        public void PublishStateChange(AlarmHelper alarm)
        {
            AlarmUpdateEventArgs e = new AlarmUpdateEventArgs()
            {
                Alarm = alarm
            };

            try
            {
                AlarmUpdate(this, e);
            }
            catch (Exception ex)
            {
                string message = string.Format("AES does not have any subscribed client for publishing alarm status change. {0}", ex.Message);
                CommonTrace.WriteTrace(CommonTrace.TraceVerbose, message);
                Console.WriteLine(message);
            }
        }
        /// <summary>
        /// Adds an alarm to the storage, and schedules the alarm in the notifications platform
        /// </summary>
        /// <param name="alarm"></param>
        /// <returns></returns>
        public static async Task AddAlarm(MyAlarm alarm)
        {
            try
            {
                // Generate Id for it
                alarm.Id = Guid.NewGuid();

                Alarms.Add(alarm);

                await Task.Run(async delegate
                {
                    await SaveAlarmsAsync();

                    AlarmHelper.ScheduleAlarm(alarm);
                });
            }

            catch { }
        }