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()); }