Exemple #1
0
        public static async Task ToggleApplianceState(int applianceID)
        {
            var appl = await _database.CallSPReaderAsync("Appliances", "Appliances_GetAppliance",
                                                         new SqlParameter("@ApplianceID", SqlDbType.Int) { Value = applianceID });

            if (appl == null)
            {
                return;
            }
            switch (Convert.ToInt32(appl.Rows[0][5]))
            {
            case 1:
                if (_microcontroller.States[0])
                {
                    _microcontroller.SendCommand(Microcontroller.Command.TurnOffSocketA);
                    _microcontroller.States[0] = false;
                    await Log("SWITCH", string.Format("{0} at {1} has been turned {2}.", appl.Rows[0][1].ToString().Trim(), appl.Rows[0][2].ToString().Trim(), "Off"));
                }
                else
                {
                    _microcontroller.SendCommand(Microcontroller.Command.TurnOnSocketA);
                    _microcontroller.States[0] = true;
                    await Log("SWITCH", string.Format("{0} at {1} has been turned {2}.", appl.Rows[0][1].ToString().Trim(), appl.Rows[0][2].ToString().Trim(), "On"));
                }
                break;

            case 2:
                if (_microcontroller.States[1])
                {
                    _microcontroller.SendCommand(Microcontroller.Command.TurnOffSocketB);
                    _microcontroller.States[1] = false;
                    await Log("SWITCH", string.Format("{0} at {1} has been turned {2}.", appl.Rows[0][1].ToString().Trim(), appl.Rows[0][2].ToString().Trim(), "Off"));
                }
                else
                {
                    _microcontroller.SendCommand(Microcontroller.Command.TurnOnSocketB);
                    _microcontroller.States[1] = true;
                    await Log("SWITCH", string.Format("{0} at {1} has been turned {2}.", appl.Rows[0][1].ToString().Trim(), appl.Rows[0][2].ToString().Trim(), "On"));
                }
                break;

            default: break;
            }
        }