DreamineVMS 1.0.0.0
Windows PC의 RTSP·USB 카메라 영상을 HLS로 변환해 원격 CCTV Viewer에 전달하는 데스크톱 에이전트입니다.
로딩중...
검색중...
일치하는것 없음
DreamineVMS.ViewModels.MainWindowViewModel 클래스 참조sealed

더 자세히 ...

DreamineVMS.ViewModels.MainWindowViewModel에 대한 상속 다이어그램 :
DreamineVMS.ViewModels.MainWindowViewModel에 대한 협력 다이어그램:

Public 멤버 함수

 MainWindowViewModel (IVmsCameraRepository repository, ICameraRuntimeStateService runtimeState, ICameraStreamService streamService, IVmsDashboardStateService dashboardStateService, IHybridMessageBus messageBus, AgentSettingsViewModel agentSettings)
void Dispose ()

속성

AgentSettingsViewModel AgentSettings [get]
ObservableCollection< CameraRowViewModelCameras = new() [get]
ObservableCollection< VmsLogItemLogs = new() [get]
CameraRowViewModelSelectedCamera [get, set]
string StatusMessage [get, private set]
ICommand ConnectSelectedCameraCommand [get]
ICommand DisconnectSelectedCameraCommand [get]
ICommand StartAllCommand [get]
ICommand StopAllCommand [get]
ICommand ClearLogsCommand [get]

이벤트

PropertyChangedEventHandler? PropertyChanged
EventHandler? OpenLiveTabRequested

Private 멤버 함수

async Task ConnectSelectedCameraAsync ()
async Task DisconnectSelectedCameraAsync ()
async Task ConnectCameraAsync (string? cameraId)
async Task DisconnectCameraAsync (string? cameraId)
async Task StartAllAsync ()
async Task StopAllAsync ()
async Task OnDashboardActionRequestedAsync (VmsDashboardActionRequestedMessage message, CancellationToken cancellationToken)
void OnCameraRuntimeStateChanged (object? sender, CameraRuntimeState state)
void AddLog (string message)
void AddLogCore (string message)
void ClearLogs ()
void RaiseOpenLiveTabRequested ()
void OnPropertyChanged ([CallerMemberName] string? propertyName=null)

정적 Private 멤버 함수

static void DispatchToUi (Action action)

Private 속성

readonly IVmsCameraRepository _repository
readonly ICameraRuntimeStateService _runtimeState
readonly ICameraStreamService _streamService
readonly IVmsDashboardStateService _dashboardStateService
readonly IDisposable _dashboardSubscription
readonly AgentSettingsViewModel _agentSettings
CameraRowViewModel_selectedCamera
string _statusMessage = "VMS application started."

상세한 설명

DreamineVMS 메인 윈도우 ViewModel입니다.

이 ViewModel은 UI 표시와 사용자 명령 라우팅만 담당합니다. 대시보드 상태(VmsDashboardState) 갱신은 IVmsDashboardStateService가 책임집니다.

MainWindowViewModel.cs 파일의 31 번째 라인에서 정의되었습니다.

생성자 & 소멸자 문서화

◆ MainWindowViewModel()

DreamineVMS.ViewModels.MainWindowViewModel.MainWindowViewModel ( IVmsCameraRepository repository,
ICameraRuntimeStateService runtimeState,
ICameraStreamService streamService,
IVmsDashboardStateService dashboardStateService,
IHybridMessageBus messageBus,
AgentSettingsViewModel agentSettings )
inline

지정한 설정으로 MainWindowViewModel 클래스의 새 인스턴스를 초기화합니다.

매개변수
repositoryrepository에 사용할 IVmsCameraRepository 값입니다.
runtimeStateruntime State에 사용할 ICameraRuntimeStateService 값입니다.
streamServicestream Service에 사용할 ICameraStreamService 값입니다.
dashboardStateServicedashboard State Service에 사용할 IVmsDashboardStateService 값입니다.
messageBusmessage Bus에 사용할 IHybridMessageBus 값입니다.
agentSettingsagent Settings에 사용할 AgentSettingsViewModel 값입니다.
예외
ArgumentNullException필수 입력 인자 중 하나가 null인 경우 발생합니다.

MainWindowViewModel.cs 파일의 179 번째 라인에서 정의되었습니다.

186 {
187 _repository = repository ?? throw new ArgumentNullException(nameof(repository));
188 _runtimeState = runtimeState ?? throw new ArgumentNullException(nameof(runtimeState));
189 _streamService = streamService ?? throw new ArgumentNullException(nameof(streamService));
190 _dashboardStateService = dashboardStateService ?? throw new ArgumentNullException(nameof(dashboardStateService));
191 ArgumentNullException.ThrowIfNull(messageBus);
192 _agentSettings = agentSettings ?? throw new ArgumentNullException(nameof(agentSettings));
193
194 foreach (CameraDevice camera in _repository.GetAll())
195 {
196 CameraRuntimeState state = _runtimeState.GetState(camera.Id);
197 Cameras.Add(new CameraRowViewModel(camera, state));
198 }
199
200 SelectedCamera = Cameras.FirstOrDefault();
201 Logs.Add(new VmsLogItem { Message = "VMS application started." });
202
203 ConnectSelectedCameraCommand = new AsyncRelayCommand(ConnectSelectedCameraAsync, () => SelectedCamera is not null);
204 DisconnectSelectedCameraCommand = new AsyncRelayCommand(DisconnectSelectedCameraAsync, () => SelectedCamera is not null);
205 StartAllCommand = new AsyncRelayCommand(StartAllAsync);
206 StopAllCommand = new AsyncRelayCommand(StopAllAsync);
207 ClearLogsCommand = new RelayCommand(ClearLogs);
208
209 _runtimeState.StateChanged += OnCameraRuntimeStateChanged;
210 _dashboardSubscription = messageBus.Subscribe<VmsDashboardActionRequestedMessage>(OnDashboardActionRequestedAsync);
211 }

다음을 참조함 : _agentSettings, _dashboardStateService, _dashboardSubscription, _repository, _runtimeState, _streamService, Cameras, ClearLogs(), ClearLogsCommand, ConnectSelectedCameraAsync(), ConnectSelectedCameraCommand, DisconnectSelectedCameraAsync(), DisconnectSelectedCameraCommand, DreamineVMS.Models.CameraDevice.Id, Logs, OnCameraRuntimeStateChanged(), OnDashboardActionRequestedAsync(), SelectedCamera, StartAllAsync(), StartAllCommand, StopAllAsync(), StopAllCommand.

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

멤버 함수 문서화

◆ AddLog()

void DreamineVMS.ViewModels.MainWindowViewModel.AddLog ( string message)
inlineprivate

Log 항목을 추가합니다.

매개변수
message처리할 메시지입니다.

MainWindowViewModel.cs 파일의 677 번째 라인에서 정의되었습니다.

678 {
679 DispatchToUi(() => AddLogCore(message));
680 }

다음을 참조함 : AddLogCore(), DispatchToUi().

다음에 의해서 참조됨 : ClearLogs(), ConnectCameraAsync(), ConnectSelectedCameraAsync(), DisconnectCameraAsync(), DisconnectSelectedCameraAsync(), OnDashboardActionRequestedAsync(), StartAllAsync(), StopAllAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ AddLogCore()

void DreamineVMS.ViewModels.MainWindowViewModel.AddLogCore ( string message)
inlineprivate

Log Core 항목을 추가합니다.

매개변수
message처리할 메시지입니다.

MainWindowViewModel.cs 파일의 698 번째 라인에서 정의되었습니다.

699 {
700 StatusMessage = message;
701 Logs.Insert(0, new VmsLogItem { Message = message });
702 while (Logs.Count > 300)
703 {
704 Logs.RemoveAt(Logs.Count - 1);
705 }
706 }

다음을 참조함 : Logs, StatusMessage.

다음에 의해서 참조됨 : AddLog(), OnCameraRuntimeStateChanged().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ ClearLogs()

void DreamineVMS.ViewModels.MainWindowViewModel.ClearLogs ( )
inlineprivate

Clear Logs 작업을 수행합니다.

MainWindowViewModel.cs 파일의 716 번째 라인에서 정의되었습니다.

717 {
718 Logs.Clear();
719 AddLog("Logs cleared.");
720 }

다음을 참조함 : AddLog(), Logs.

다음에 의해서 참조됨 : MainWindowViewModel(), OnDashboardActionRequestedAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ ConnectCameraAsync()

async Task DreamineVMS.ViewModels.MainWindowViewModel.ConnectCameraAsync ( string? cameraId)
inlineprivate

Connect Camera Async 작업을 수행합니다.

매개변수
cameraIdcamera Id에 사용할 string? 값입니다.
반환값
Connect Camera Async 작업에서 생성한 Task 결과입니다.

MainWindowViewModel.cs 파일의 451 번째 라인에서 정의되었습니다.

452 {
453 if (string.IsNullOrWhiteSpace(cameraId))
454 {
455 AddLog("Connect request ignored: camera id is empty.");
456 return;
457 }
458
459 CameraRowViewModel? camera = Cameras.FirstOrDefault(row => string.Equals(row.Id, cameraId, StringComparison.OrdinalIgnoreCase));
460 if (camera is null)
461 {
462 AddLog($"Connect request ignored: camera not found. id={cameraId}");
463 return;
464 }
465
466 await _streamService.StartAsync(camera.Id).ConfigureAwait(false);
467 AddLog($"Dashboard connect requested: {camera.Name}");
468 }

다음을 참조함 : _streamService, AddLog(), Cameras, DreamineVMS.ViewModels.CameraRowViewModel.Id.

다음에 의해서 참조됨 : OnDashboardActionRequestedAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ ConnectSelectedCameraAsync()

async Task DreamineVMS.ViewModels.MainWindowViewModel.ConnectSelectedCameraAsync ( )
inlineprivate

Connect Selected Camera Async 작업을 수행합니다.

반환값
Connect Selected Camera Async 작업에서 생성한 Task 결과입니다.

MainWindowViewModel.cs 파일의 387 번째 라인에서 정의되었습니다.

388 {
389 CameraRowViewModel? selected = SelectedCamera;
390 if (selected is null)
391 {
392 return;
393 }
394
395 await _streamService.StartAsync(selected.Id);
396 AddLog($"Connect requested: {selected.Name}");
397 }

다음을 참조함 : _streamService, AddLog(), DreamineVMS.ViewModels.CameraRowViewModel.Id, SelectedCamera.

다음에 의해서 참조됨 : MainWindowViewModel().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ DisconnectCameraAsync()

async Task DreamineVMS.ViewModels.MainWindowViewModel.DisconnectCameraAsync ( string? cameraId)
inlineprivate

Disconnect Camera Async 작업을 수행합니다.

매개변수
cameraIdcamera Id에 사용할 string? 값입니다.
반환값
Disconnect Camera Async 작업에서 생성한 Task 결과입니다.

MainWindowViewModel.cs 파일의 494 번째 라인에서 정의되었습니다.

495 {
496 if (string.IsNullOrWhiteSpace(cameraId))
497 {
498 AddLog("Disconnect request ignored: camera id is empty.");
499 return;
500 }
501
502 CameraRowViewModel? camera = Cameras.FirstOrDefault(row => string.Equals(row.Id, cameraId, StringComparison.OrdinalIgnoreCase));
503 if (camera is null)
504 {
505 AddLog($"Disconnect request ignored: camera not found. id={cameraId}");
506 return;
507 }
508
509 await _streamService.StopAsync(camera.Id).ConfigureAwait(false);
510 AddLog($"Dashboard disconnect requested: {camera.Name}");
511 }

다음을 참조함 : _streamService, AddLog(), Cameras, DreamineVMS.ViewModels.CameraRowViewModel.Id.

다음에 의해서 참조됨 : OnDashboardActionRequestedAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ DisconnectSelectedCameraAsync()

async Task DreamineVMS.ViewModels.MainWindowViewModel.DisconnectSelectedCameraAsync ( )
inlineprivate

Disconnect Selected Camera Async 작업을 수행합니다.

반환값
Disconnect Selected Camera Async 작업에서 생성한 Task 결과입니다.

MainWindowViewModel.cs 파일의 415 번째 라인에서 정의되었습니다.

416 {
417 CameraRowViewModel? selected = SelectedCamera;
418 if (selected is null)
419 {
420 return;
421 }
422
423 await _streamService.StopAsync(selected.Id);
424 AddLog($"Disconnect requested: {selected.Name}");
425 }

다음을 참조함 : _streamService, AddLog(), DreamineVMS.ViewModels.CameraRowViewModel.Id, SelectedCamera.

다음에 의해서 참조됨 : MainWindowViewModel().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ DispatchToUi()

void DreamineVMS.ViewModels.MainWindowViewModel.DispatchToUi ( Action action)
inlinestaticprivate

Dispatch To Ui 작업을 수행합니다.

매개변수
actionaction에 사용할 Action 값입니다.

MainWindowViewModel.cs 파일의 751 번째 라인에서 정의되었습니다.

752 {
753 System.Windows.Application? app = System.Windows.Application.Current;
754 if (app is null)
755 {
756 return;
757 }
758
759 var dispatcher = app.Dispatcher;
760
761 // 종료 시퀀스 중에는 Invoke가 OperationCanceledException을 던지므로 무시합니다.
762 if (dispatcher.HasShutdownStarted || dispatcher.HasShutdownFinished)
763 {
764 return;
765 }
766
767 if (dispatcher.CheckAccess())
768 {
769 action();
770 }
771 else
772 {
773 try
774 {
775 dispatcher.Invoke(action);
776 }
777 catch (OperationCanceledException) { }
778 }
779 }

다음에 의해서 참조됨 : AddLog(), OnCameraRuntimeStateChanged(), RaiseOpenLiveTabRequested().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ Dispose()

void DreamineVMS.ViewModels.MainWindowViewModel.Dispose ( )
inline

이 인스턴스가 소유한 리소스를 해제합니다.

MainWindowViewModel.cs 파일의 359 번째 라인에서 정의되었습니다.

360 {
361 _dashboardSubscription.Dispose();
362 _runtimeState.StateChanged -= OnCameraRuntimeStateChanged;
363
364 foreach (CameraRowViewModel row in Cameras)
365 {
366 row.Dispose();
367 }
368 Cameras.Clear();
369 }

다음을 참조함 : _dashboardSubscription, Cameras, DreamineVMS.ViewModels.CameraRowViewModel.Dispose(), OnCameraRuntimeStateChanged().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OnCameraRuntimeStateChanged()

void DreamineVMS.ViewModels.MainWindowViewModel.OnCameraRuntimeStateChanged ( object? sender,
CameraRuntimeState state )
inlineprivate

Camera Runtime State Changed 이벤트 또는 상태 변경을 처리합니다.

매개변수
sender이벤트를 발생시킨 객체입니다.
statestate에 사용할 CameraRuntimeState 값입니다.

MainWindowViewModel.cs 파일의 654 번째 라인에서 정의되었습니다.

655 {
656 // 상태 스토어 갱신은 IVmsDashboardStateService가 담당.
657 // 여기서는 WPF UI 로그/상태 메시지만 처리.
658 DispatchToUi(() => AddLogCore(state.LastMessage));
659 }

다음을 참조함 : AddLogCore(), DispatchToUi(), DreamineVMS.Models.CameraRuntimeState.LastMessage.

다음에 의해서 참조됨 : Dispose(), MainWindowViewModel().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnDashboardActionRequestedAsync()

async Task DreamineVMS.ViewModels.MainWindowViewModel.OnDashboardActionRequestedAsync ( VmsDashboardActionRequestedMessage message,
CancellationToken cancellationToken )
inlineprivate

Dashboard Action Requested Async 이벤트 또는 상태 변경을 처리합니다.

매개변수
message처리할 메시지입니다.
cancellationToken취소 요청을 감시하는 토큰입니다.
반환값
On Dashboard Action Requested Async 작업에서 생성한 Task 결과입니다.

MainWindowViewModel.cs 파일의 589 번째 라인에서 정의되었습니다.

590 {
591 switch (message.Action)
592 {
593 case VmsDashboardActions.EmbeddedRefresh:
594 _dashboardStateService.Refresh("Embedded dashboard refresh requested.");
595 AddLog("Embedded dashboard refresh requested.");
596 break;
597
598 case VmsDashboardActions.ServerOpenLive:
599 // Server Dashboard is a browser/WebView route.
600 // Do not switch the WPF tab from here, otherwise the Server Dashboard tab and WPF Live tab appear to be mixed.
601 AddLog("Server dashboard requested Open Live. Use /live route in the server WebView.");
602 break;
603
604 case VmsDashboardActions.CameraConnect:
605 await ConnectCameraAsync(message.CameraId).ConfigureAwait(false);
606 break;
607
608 case VmsDashboardActions.CameraDisconnect:
609 await DisconnectCameraAsync(message.CameraId).ConfigureAwait(false);
610 break;
611
612 case VmsDashboardActions.CameraStartAll:
613 await StartAllAsync().ConfigureAwait(false);
614 break;
615
616 case VmsDashboardActions.CameraStopAll:
617 await StopAllAsync().ConfigureAwait(false);
618 break;
619
620 case VmsDashboardActions.ClearLogs:
621 ClearLogs();
622 break;
623
624 default:
625 AddLog($"Dashboard action requested: {message.Action}");
626 break;
627 }
628 }

다음을 참조함 : _dashboardStateService, DreamineVMS.Messages.VmsDashboardActionRequestedMessage.Action, AddLog(), DreamineVMS.Messages.VmsDashboardActions.CameraConnect, DreamineVMS.Messages.VmsDashboardActions.CameraDisconnect, DreamineVMS.Messages.VmsDashboardActionRequestedMessage.CameraId, DreamineVMS.Messages.VmsDashboardActions.CameraStartAll, DreamineVMS.Messages.VmsDashboardActions.CameraStopAll, DreamineVMS.Messages.VmsDashboardActions.ClearLogs, ClearLogs(), ConnectCameraAsync(), DisconnectCameraAsync(), DreamineVMS.Messages.VmsDashboardActions.EmbeddedRefresh, DreamineVMS.Messages.VmsDashboardActions.ServerOpenLive, StartAllAsync(), StopAllAsync().

다음에 의해서 참조됨 : MainWindowViewModel().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnPropertyChanged()

void DreamineVMS.ViewModels.MainWindowViewModel.OnPropertyChanged ( [CallerMemberName] string? propertyName = null)
inlineprivate

Property Changed 이벤트 또는 상태 변경을 처리합니다.

매개변수
propertyNameproperty Name에 사용할 string? 값입니다.

MainWindowViewModel.cs 파일의 797 번째 라인에서 정의되었습니다.

798 {
799 PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
800 }

다음을 참조함 : PropertyChanged.

◆ RaiseOpenLiveTabRequested()

void DreamineVMS.ViewModels.MainWindowViewModel.RaiseOpenLiveTabRequested ( )
inlineprivate

Raise Open Live Tab Requested 작업을 수행합니다.

MainWindowViewModel.cs 파일의 730 번째 라인에서 정의되었습니다.

731 {
732 DispatchToUi(() => OpenLiveTabRequested?.Invoke(this, EventArgs.Empty));
733 }

다음을 참조함 : DispatchToUi(), OpenLiveTabRequested.

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ StartAllAsync()

async Task DreamineVMS.ViewModels.MainWindowViewModel.StartAllAsync ( )
inlineprivate

Start All Async 작업을 수행합니다.

반환값
Start All Async 작업에서 생성한 Task 결과입니다.

MainWindowViewModel.cs 파일의 529 번째 라인에서 정의되었습니다.

530 {
531 await _streamService.StartAllAsync();
532 AddLog("Start all cameras requested.");
533 }

다음을 참조함 : _streamService, AddLog().

다음에 의해서 참조됨 : MainWindowViewModel(), OnDashboardActionRequestedAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ StopAllAsync()

async Task DreamineVMS.ViewModels.MainWindowViewModel.StopAllAsync ( )
inlineprivate

Stop All Async 작업을 수행합니다.

반환값
Stop All Async 작업에서 생성한 Task 결과입니다.

MainWindowViewModel.cs 파일의 551 번째 라인에서 정의되었습니다.

552 {
553 await _streamService.StopAllAsync();
554 AddLog("Stop all cameras requested.");
555 }

다음을 참조함 : _streamService, AddLog().

다음에 의해서 참조됨 : MainWindowViewModel(), OnDashboardActionRequestedAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ _agentSettings

readonly AgentSettingsViewModel DreamineVMS.ViewModels.MainWindowViewModel._agentSettings
private

agent Settings 값을 보관합니다.

MainWindowViewModel.cs 파일의 86 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : MainWindowViewModel().

◆ _dashboardStateService

readonly IVmsDashboardStateService DreamineVMS.ViewModels.MainWindowViewModel._dashboardStateService
private

dashboard State Service 값을 보관합니다.

MainWindowViewModel.cs 파일의 68 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : MainWindowViewModel(), OnDashboardActionRequestedAsync().

◆ _dashboardSubscription

readonly IDisposable DreamineVMS.ViewModels.MainWindowViewModel._dashboardSubscription
private

dashboard Subscription 값을 보관합니다.

MainWindowViewModel.cs 파일의 77 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : Dispose(), MainWindowViewModel().

◆ _repository

readonly IVmsCameraRepository DreamineVMS.ViewModels.MainWindowViewModel._repository
private

repository 값을 보관합니다.

MainWindowViewModel.cs 파일의 41 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : MainWindowViewModel().

◆ _runtimeState

readonly ICameraRuntimeStateService DreamineVMS.ViewModels.MainWindowViewModel._runtimeState
private

runtime State 값을 보관합니다.

MainWindowViewModel.cs 파일의 50 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : MainWindowViewModel().

◆ _selectedCamera

CameraRowViewModel? DreamineVMS.ViewModels.MainWindowViewModel._selectedCamera
private

selected Camera 값을 보관합니다.

MainWindowViewModel.cs 파일의 95 번째 라인에서 정의되었습니다.

◆ _statusMessage

string DreamineVMS.ViewModels.MainWindowViewModel._statusMessage = "VMS application started."
private

status Message 값을 보관합니다.

MainWindowViewModel.cs 파일의 104 번째 라인에서 정의되었습니다.

◆ _streamService

readonly ICameraStreamService DreamineVMS.ViewModels.MainWindowViewModel._streamService
private

stream Service 값을 보관합니다.

MainWindowViewModel.cs 파일의 59 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectCameraAsync(), ConnectSelectedCameraAsync(), DisconnectCameraAsync(), DisconnectSelectedCameraAsync(), MainWindowViewModel(), StartAllAsync(), StopAllAsync().

속성 문서화

◆ AgentSettings

AgentSettingsViewModel DreamineVMS.ViewModels.MainWindowViewModel.AgentSettings
get

MainWindowViewModel 클래스의 새 인스턴스를 초기화합니다.

MainWindowViewModel.cs 파일의 113 번째 라인에서 정의되었습니다.

◆ Cameras

ObservableCollection<CameraRowViewModel> DreamineVMS.ViewModels.MainWindowViewModel.Cameras = new()
get

카메라 목록(행 ViewModel)입니다.

MainWindowViewModel.cs 파일의 241 번째 라인에서 정의되었습니다.

241{ get; } = new();

다음에 의해서 참조됨 : ConnectCameraAsync(), DisconnectCameraAsync(), Dispose(), MainWindowViewModel().

◆ ClearLogsCommand

ICommand DreamineVMS.ViewModels.MainWindowViewModel.ClearLogsCommand
get

로그 삭제 명령입니다.

MainWindowViewModel.cs 파일의 349 번째 라인에서 정의되었습니다.

349{ get; }

다음에 의해서 참조됨 : MainWindowViewModel().

◆ ConnectSelectedCameraCommand

ICommand DreamineVMS.ViewModels.MainWindowViewModel.ConnectSelectedCameraCommand
get

선택 카메라 연결 명령입니다.

MainWindowViewModel.cs 파일의 309 번째 라인에서 정의되었습니다.

309{ get; }

다음에 의해서 참조됨 : MainWindowViewModel().

◆ DisconnectSelectedCameraCommand

ICommand DreamineVMS.ViewModels.MainWindowViewModel.DisconnectSelectedCameraCommand
get

선택 카메라 연결 해제 명령입니다.

MainWindowViewModel.cs 파일의 319 번째 라인에서 정의되었습니다.

319{ get; }

다음에 의해서 참조됨 : MainWindowViewModel().

◆ Logs

ObservableCollection<VmsLogItem> DreamineVMS.ViewModels.MainWindowViewModel.Logs = new()
get

로그 목록입니다.

MainWindowViewModel.cs 파일의 251 번째 라인에서 정의되었습니다.

251{ get; } = new();

다음에 의해서 참조됨 : AddLogCore(), ClearLogs(), MainWindowViewModel().

◆ SelectedCamera

CameraRowViewModel? DreamineVMS.ViewModels.MainWindowViewModel.SelectedCamera
getset

선택된 카메라입니다.

MainWindowViewModel.cs 파일의 261 번째 라인에서 정의되었습니다.

262 {
263 get => _selectedCamera;
264 set
265 {
266 if (ReferenceEquals(_selectedCamera, value))
267 {
268 return;
269 }
270
271 _selectedCamera = value;
272 OnPropertyChanged();
273 (ConnectSelectedCameraCommand as AsyncRelayCommand)?.RaiseCanExecuteChanged();
274 (DisconnectSelectedCameraCommand as AsyncRelayCommand)?.RaiseCanExecuteChanged();
275 }
276 }

다음에 의해서 참조됨 : ConnectSelectedCameraAsync(), DisconnectSelectedCameraAsync(), MainWindowViewModel().

◆ StartAllCommand

ICommand DreamineVMS.ViewModels.MainWindowViewModel.StartAllCommand
get

전체 카메라 연결 명령입니다.

MainWindowViewModel.cs 파일의 329 번째 라인에서 정의되었습니다.

329{ get; }

다음에 의해서 참조됨 : MainWindowViewModel().

◆ StatusMessage

string DreamineVMS.ViewModels.MainWindowViewModel.StatusMessage
getprivate set

상태 메시지입니다.

MainWindowViewModel.cs 파일의 286 번째 라인에서 정의되었습니다.

287 {
288 get => _statusMessage;
289 private set
290 {
291 if (_statusMessage == value)
292 {
293 return;
294 }
295
296 _statusMessage = value;
297 OnPropertyChanged();
298 }
299 }

다음에 의해서 참조됨 : AddLogCore().

◆ StopAllCommand

ICommand DreamineVMS.ViewModels.MainWindowViewModel.StopAllCommand
get

전체 카메라 연결 해제 명령입니다.

MainWindowViewModel.cs 파일의 339 번째 라인에서 정의되었습니다.

339{ get; }

다음에 의해서 참조됨 : MainWindowViewModel().

이벤트 문서화

◆ OpenLiveTabRequested

EventHandler? DreamineVMS.ViewModels.MainWindowViewModel.OpenLiveTabRequested

Server Dashboard에서 Live 탭으로 이동 요청이 들어왔을 때 발생합니다.

MainWindowViewModel.cs 파일의 231 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : RaiseOpenLiveTabRequested().

◆ PropertyChanged

PropertyChangedEventHandler? DreamineVMS.ViewModels.MainWindowViewModel.PropertyChanged

속성 변경 이벤트입니다.

MainWindowViewModel.cs 파일의 221 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : OnPropertyChanged().


이 클래스에 대한 문서화 페이지는 다음의 파일로부터 생성되었습니다.: