Example #1
0
        protected override void TimerCallback(object state)
        {
            var _state = (State)state;
            SendToConditionerCommand command = new SendToConditionerCommand();
            DateTime now = DateTime.Now;

            foreach (var schedule in _state.ScheduleQuery.GetAll().Where(
                         o => (
                             (o.Time.Hour == now.Hour) &&
                             (o.Time.Minute == now.Minute) &&
                             ((now.DayOfWeek == DayOfWeek.Friday && o.Fri) |
                              (now.DayOfWeek == DayOfWeek.Saturday && o.Sat) |
                              (now.DayOfWeek == DayOfWeek.Sunday && o.Sun) |
                              (now.DayOfWeek == DayOfWeek.Monday && o.Mon) |
                              (now.DayOfWeek == DayOfWeek.Tuesday && o.Tue) |
                              (now.DayOfWeek == DayOfWeek.Wednesday && o.Wed) |
                              (now.DayOfWeek == DayOfWeek.Thursday && o.Thu)))
                         ).ToList())
            {
                Console.WriteLine(command);
                command.DeviceID = schedule.DeviceID;
                command.Command  = new ApplianceCommand()
                {
                    Mode        = schedule.Mode,
                    Fan         = schedule.Fan,
                    Temperature = schedule.Temperature
                };

                _state.CommandBus.Execute(command);
            }
        }
        public IActionResult SendCommand(int id, [FromBody] ApplianceCommand remoteCommand)
        {
            SendToConditionerCommand command = new SendToConditionerCommand()
            {
                Command = remoteCommand, DeviceID = id
            };

            commandBus.Execute(command);
            return(Ok());
        }