public void RequestLockOperation(RouterOutput output, RouterOutputLockType lockType, RouterOutputLockOperationType lockOperationType) { if (!outputs.Contains(output)) { throw new ArgumentException(); } string logMessage = string.Format("Router output {0} request. Router: [(#{1}) #2], destination: {3}.", translateLockOperation(lockType, lockOperationType), ID, Name, output.Index); LogDispatcher.I(LOG_TAG, logMessage); requestLockOperationImpl(output, lockType, lockOperationType); }
protected void notifyLockChanged(RouterOutput output, RouterOutputLockType lockType, RouterOutputLockState lockState) { if (!outputs.Contains(output)) { throw new ArgumentException(); } switch (lockType) { case RouterOutputLockType.Lock: output.LockStateUpdateFromRouter(lockState); break; case RouterOutputLockType.Protect: output.ProtectStateUpdateFromRouter(lockState); break; } }
public void SetLock(RouterOutputLockType lockType, RouterOutputLockOperationType lockOperationType) { if (lockOperationType == RouterOutputLockOperationType.Unlock) { SetLock(0, VirtualLeitchRouter.PanelIdSetting.Value); return; } if (lockOperationType == RouterOutputLockOperationType.ForceUnlock) { SetLock(0, VirtualLeitchRouter.FORCE_UNLOCK_PANEL_ID); return; } if (lockType == RouterOutputLockType.Lock) { SetLock(1, VirtualLeitchRouter.PanelIdSetting.Value); return; } if (lockType == RouterOutputLockType.Protect) { SetLock(2, VirtualLeitchRouter.PanelIdSetting.Value); return; } }
protected void notifyLockChanged(int outputIndex, RouterOutputLockType lockType, RouterOutputLockState lockState) { RouterOutput output = outputs.FirstOrDefault(ro => (ro.Index == outputIndex)); notifyLockChanged(outputs[outputIndex], lockType, lockState); }
protected abstract void requestLockOperationImpl(RouterOutput output, RouterOutputLockType lockType, RouterOutputLockOperationType lockOperationType);
private static string translateLockOperation(RouterOutputLockType lockType, RouterOutputLockOperationType lockOperationType) => string.Format(LOCK_OPERATION_TYPE_TRANSLATIONS[lockOperationType], LOCK_TYPE_TRANSLATIONS[lockType]);
protected override void requestLockOperationImpl(RouterOutput output, RouterOutputLockType lockType, RouterOutputLockOperationType lockOperationType) { RouterOutputLockState newState = (lockOperationType == RouterOutputLockOperationType.Lock) ? RouterOutputLockState.Locked : RouterOutputLockState.Clear; notifyLockChanged(output, lockType, newState); }