public void BroadcastAllDoorsInformation() { using var context = _doorContextFactory(); foreach (var door in context.Doors) { var informationMessage = _informationMessageFactory.CreateDoorInformationMessage(door); Task.Factory.StartNew(() => _messageWriterService.SendMessage(informationMessage)); } }
private void SendTheMessage(int doorId, DoorStates state) { Task.Factory.StartNew(() => { var message = _messageFactory.CreateDoorControlMessage(doorId, state); _messageWriterService?.SendMessage(message); }); }
public void RegisterNewDoor(string label, DoorStates initialState) { var door = _createNewDoor().WhoseLabelIs(label).And.SetStateTo(initialState); using var context = _createDoorContext(); context.Doors.Add((Door)door); context.SaveChanges(); door = context.Doors.First(d => d.Label == label); var informationMessage = _informationMessageFactory.CreateDoorInformationMessage(door.SetMonitorId("new")); _messageWriterService.SendMessage(informationMessage); var currentEvent = _createEvent().ForDoorWithId(door.Id) .And.SetTheEventDescriptionTo(DoorStates.DoorRegistered); context.Events.Add((DoorEvent)currentEvent); context.SaveChanges(); }