private void HandleCameraSyncProposal(SyncResponse response) { // Other admin proposed YOU to sync to HIS camera try { var camera = (CameraDetails) JsonConvert.DeserializeObject <CameraDetails>(response.Data.CameraDetails.ToString()); var adminId = (int)response.Data.ProposingAdmin; var admin = SyncManager.Instance.Users.FromId(adminId); // Invoke on dispatcher to not block response handling thread App.Instance.Dispatcher.Invoke(() => { if ((bool)response.Data.Force || App.Instance.MainModel.ShowDialog(new ConfirmCameraSyncWindow(admin, camera)).GetValueOrDefault()) { CameraControl.ChangeCamera(camera); } }); } catch (Exception ex) { App.Instance.LogError("Handling Camera Sync. Response: " + response, ex); } }
public void JoinPenalty(Penalty penalty) { var user = SyncManager.Instance.User; // If penalty is already decided - ignore if (!penalty.IsUnderInvestigation) { return; } if (penalty.Users.Contains(user)) { // If we are already investigating - leave penalty.Users.Remove(user); } else { // If we are not yet investigating - join penalty.JoinUser(user); // Sync camera CameraControl.ChangeCamera(penalty.Camera); } SyncManager.Instance.SendPenaltyUpdate(penalty); this.PenaltiesView.Refresh(); }
public void SwitchToDriver(DriverContainer driver) { if (driver == null) { return; } // Switch client camera to driver var camera = CameraDetails.ChangeFocus(driver.Driver.CarNumberRaw); CameraControl.ChangeCamera(camera); }