コード例 #1
0
        internal void Notify_AlarmOrEvent(ModuleState module, AlarmOrEventInfo e)
        {
            var ae = new AlarmOrEvent()
            {
                ModuleID        = module.ID,
                ModuleName      = module.Name,
                Time            = e.Time,
                IsSystem        = false,
                Severity        = e.Severity,
                Type            = e.Type,
                Message         = e.Message,
                Details         = e.Details,
                AffectedObjects = e.AffectedObjects,
                Initiator       = e.Initiator
            };

            reqHandler.OnAlarmOrEvent(ae);

            string msg = e.Message;

            switch (e.Severity)
            {
            case Severity.Info:
                module.logger.Info(msg);
                break;

            case Severity.Warning:
                module.logger.Warn(msg);
                break;

            case Severity.Alarm:
                module.logger.Error(msg);
                break;
            }
        }
コード例 #2
0
        internal void Notify_AlarmOrEvent(ModuleState module, AlarmOrEventInfo e)
        {
            Origin?initiator = e.Initiator;

            if (initiator.HasValue)
            {
                Origin origin = initiator.Value;
                string id     = origin.ID;
                if (origin.Type == OriginType.User)
                {
                    User user = userManagement.Users.FirstOrDefault(u => u.ID == id);
                    if (user != null)
                    {
                        origin.Name = user.Name;
                    }
                    else if (origin.Name == null)
                    {
                        origin.Name = "";
                    }
                }
                else if (origin.Type == OriginType.Module)
                {
                    var theModule = modules.FirstOrDefault(m => m.ID == id);
                    if (theModule != null)
                    {
                        origin.Name = theModule.Name;
                    }
                    else if (origin.Name == null)
                    {
                        origin.Name = "";
                    }
                }
                initiator = origin;
            }

            var ae = new AlarmOrEvent()
            {
                ModuleID        = module.ID,
                ModuleName      = module.Name,
                Time            = e.Time,
                IsSystem        = false,
                Severity        = e.Severity,
                ReturnToNormal  = e.ReturnToNormal,
                Type            = e.Type,
                Message         = e.Message,
                Details         = e.Details,
                AffectedObjects = e.AffectedObjects,
                Initiator       = initiator
            };

            reqHandler.OnAlarmOrEvent(ae);

            bool logInfo = module.UpdateWarningAlarmState(e);

            string msg = e.Message;

            switch (e.Severity)
            {
            case Severity.Info:
                if (logInfo)
                {
                    module.logger.Info(msg);
                }
                break;

            case Severity.Warning:
                module.logger.Warn(msg);
                break;

            case Severity.Alarm:
                module.logger.Error(msg);
                break;
            }
        }