コード例 #1
0
        /// <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);
            }
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        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;
            }
        }