protected void OnScvEventActivity(Object sender, ActivityOnLanArgs data) { EventThread.Enqueue("OnScvEventActivity", () => { //var controlDep = DepManager.Where(d => d.Key == data.ScvId).Select(d => d.Value).ToList(); var ctrldep = DepManagers.Where(d => d.Cfg.Id == data.ScvId).FirstOrDefault(); if (ctrldep != null) { if (ctrldep.Activity != data.ActivityOnLan) { /** Actualiza el estado de la dependencia y Genera el Historico */ ctrldep.Activity = data.ActivityOnLan; History.Add(HistoryItems.DepActivityEvent, "", ctrldep.Cfg.Id, data.ActivityOnLan ? "ON" : "OFF"); /** Actualiza el Tx del SCV */ var oldEnableTx = MainManager.Manager.TxEnabled; var actives = DepManagers.Where(d => d.Activity == true).ToList(); MainManager.Manager.TxEnabled = Cfg.General.ActivateSactaLogic == "OR" ? actives.Count() > 0 : Cfg.General.ActivateSactaLogic == "AND" ? actives.Count() == DepManagers.Count() : actives.Count() == DepManagers.Count(); /** Se genera el historico si corresponde */ if (oldEnableTx != MainManager.Manager.TxEnabled) { History.Add(HistoryItems.DepTxstateChange, "", MainManager.Cfg.Id, MainManager.Manager.TxEnabled ? "ON" : "OFF"); } } } else { // Algo no va bien. Logger.Fatal <SactaProxy>($"OnScvEventActivity. {data.ScvId} Dependency is missing or duplicated"); } }); }
protected void OnPsiEventActivity(Object sender, ActivityOnLanArgs data) { EventThread.Enqueue("OnPsiEventActivity", () => { if (data.ActivityOnLan != MainManager.Activity) { MainManager.Activity = data.ActivityOnLan; /** Historico del Cambio */ History.Add(HistoryItems.DepActivityEvent, "", MainManager.Cfg.Id, MainManager.Activity ? "ON" : "OFF"); // Si se pierde la conectividad con el SCV real, se simula 'inactividad' en la interfaz sacta. DepManagers.ForEach(dependency => { dependency.Manager.TxEnabled = MainManager.Activity; /** Historico del Cambio */ History.Add(HistoryItems.DepTxstateChange, "", dependency.Cfg.Id, MainManager.Activity ? "ON" : "OFF"); }); } }); }