public static void SetLightColorFromBuildState(Build buildFromSource, Light light) { switch (buildFromSource.State) { case Build.BuildState.Success: { light.LightColor = Light.Color.Green; light.TurnOn(buildFromSource.IsBuilding); break; } case Build.BuildState.Unstable: { light.LightColor = Light.Color.Yellow; light.TurnOn(buildFromSource.IsBuilding); break; } case Build.BuildState.Failure: { light.LightColor = Light.Color.Red; light.TurnOn(buildFromSource.IsBuilding); break; } case Build.BuildState.Aborted: case Build.BuildState.Unknown: { light.TurnOff(); break; } default: { throw new UnknownBuildStateException(buildFromSource.State.ToString()); } } }
public static void HandleException(Exception exception, BuildServiceManager manager, Light buildLight) { if (exception is UnknownBuildStateException) { buildLight.LightColor = Light.Color.Yellow; buildLight.TurnOn(); Thread.Sleep(250); buildLight.LightColor = Light.Color.Green; buildLight.TurnOn(); Thread.Sleep(3000); buildLight.LightColor = Light.Color.Yellow; manager.Reset(); buildLight.LightColor = Light.Color.Green; manager.Reset(); return; } if (exception is BuildNotFoundException) { buildLight.LightColor = Light.Color.Yellow; buildLight.TurnOn(); Thread.Sleep(250); buildLight.LightColor = Light.Color.Red; buildLight.TurnOn(true); Thread.Sleep(3000); buildLight.LightColor = Light.Color.Yellow; manager.Reset(); buildLight.LightColor = Light.Color.Red; manager.Reset(); return; } if (exception is DeviceNotConnectedException) { //have to ignore return; } //default buildLight.LightColor = Light.Color.Yellow; buildLight.TurnOn(true); Thread.Sleep(250); buildLight.LightColor = Light.Color.Green; buildLight.TurnOn(true); Thread.Sleep(250); buildLight.LightColor = Light.Color.Red; buildLight.TurnOn(true); Thread.Sleep(3000); buildLight.LightColor = Light.Color.Red; manager.Reset(); buildLight.LightColor = Light.Color.Yellow; manager.Reset(); buildLight.LightColor = Light.Color.Green; manager.Reset(); }