/// <summary> /// Request to turn the coffee machine on. /// </summary> /// <param name="turnOffMode"></param> /// <param name="customMsToTurnOff">A custom time in milliseconds to turn of the machine /// if automatic turn off mode is switched on.</param> /// <param name="delayBrewingByMinutes">The delay in milliseconds, befor turning the coffee machine on.</param> public void RequestTurnOnCoffeeMachine(TurnOffMode turnOffMode = TurnOffMode.Automatic, int customMinutesToTurnOff = 0, int delayBrewingByMinutes = 0) { TurnOffMode = turnOffMode; // Delay the brewing if requested and the machine was not already in brewing mode if (delayBrewingByMinutes > 0 && MachineState != CoffeeMachineState.Brewing) { // Check if request is overriding previous request and dispose // previous turn on timer in that case. TurnOnCoffeeMachineTimer?.Dispose(); this.MachineState = CoffeeMachineState.TimedForActivation; BrewingCoffeeAt = DateTime.Now.AddMinutes(delayBrewingByMinutes); TimeSpan dueTime = new TimeSpan(0, delayBrewingByMinutes, 0); TurnOnCoffeeMachineTimer = new Timer((obj) => { TurnOnCoffeeMachine(customMinutesToTurnOff); }, null, dueTime, dueTime); } else { // Check if request is overriding previous request and dispose // previous turn on timer in that case. TurnOnCoffeeMachineTimer?.Dispose(); TurnOnCoffeeMachine(customMinutesToTurnOff); } }
public void postTurnOn() { TurnOffMode mode = TurnOffMode.Automatic; int turnOffMs = 0; int delayBrew = 0; // Parse any parameters of the request that exist if (QueryString.Contains("mode")) { if (QueryString["mode"].ToString() == "manual") { mode = TurnOffMode.Manual; } } if (QueryString.Contains("turnoffin")) { turnOffMs = Convert.ToInt32(QueryString["turnoffin"].ToString()); } if (QueryString.Contains("delaybrew")) { delayBrew = Convert.ToInt32(QueryString["delaybrew"].ToString()); } Application.Instance?.RequestTurnOnCoffeeMachine(mode, turnOffMs, delayBrew); SendSuccessStatusResponse(); }
private void turnOffMode_drpdown_SelectedValueChanged(object sender, EventArgs e) { switch ((sender as ComboBox).SelectedItem.ToString()) { case "Manual": TurnOffMode = TurnOffMode.Manual; break; default: TurnOffMode = TurnOffMode.Automatic; break; } }