DreamineVMS
1.0.0.0
Windows PC의 RTSP·USB 카메라 영상을 HLS로 변환해 원격 CCTV Viewer에 전달하는 데스크톱 에이전트입니다.
Toggle main menu visibility
로딩중...
검색중...
일치하는것 없음
DashboardPageViewModel.cs
이 파일의 문서화 페이지로 가기
1
using
Dreamine.Hybrid.Interfaces;
2
using
Dreamine.Hybrid.State;
3
using
DreamineVMS.Messages
;
4
using
DreamineVMS.Models
;
5
using
DreamineVMS.Services.Cameras
;
6
using
DreamineVMS.Services.Runtime
;
7
using
DreamineVMS.States
;
8
9
namespace
DreamineVMS.Blazor.ViewModels
;
10
27
public
sealed
class
DashboardPageViewModel
: IDisposable
28
{
37
private
readonly IHybridStateStore<VmsDashboardState>
_store
;
46
private
readonly IHybridMessageBus
_bus
;
55
private
readonly
IVmsCameraRepository
_repository
;
64
private
readonly
ICameraRuntimeStateService
_runtimeState
;
73
private
bool
_isInitialized
;
74
123
public
DashboardPageViewModel
(
124
IHybridStateStore<VmsDashboardState> store,
125
IHybridMessageBus bus,
126
IVmsCameraRepository
repository,
127
ICameraRuntimeStateService
runtimeState)
128
{
129
_store
= store ??
throw
new
ArgumentNullException(nameof(store));
130
_bus
= bus ??
throw
new
ArgumentNullException(nameof(bus));
131
_repository
= repository ??
throw
new
ArgumentNullException(nameof(repository));
132
_runtimeState
= runtimeState ??
throw
new
ArgumentNullException(nameof(runtimeState));
133
}
134
143
public
event
EventHandler?
StateChanged
;
144
153
public
int
TotalCameraCount
=>
_store
.State.TotalCameraCount;
154
163
public
int
ConnectedCameraCount
=>
_store
.State.ConnectedCameraCount;
164
173
public
int
RecordingCameraCount
=>
_store
.State.RecordingCameraCount;
174
183
public
string
LastEvent
=>
_store
.State.LastEvent;
184
193
public
string
LastUpdatedText
=>
_store
.State.LastUpdated?.ToString(
"yyyy-MM-dd HH:mm:ss"
) ??
"-"
;
194
203
public
IReadOnlyList<DashboardCameraItemViewModel>
Cameras
{
get
;
private
set
; }
204
= Array.Empty<
DashboardCameraItemViewModel
>();
205
214
public
void
Initialize
()
215
{
216
if
(
_isInitialized
)
217
{
218
return
;
219
}
220
221
RefreshCameras
();
222
223
_store.StateChanged +=
OnDashboardStateChanged
;
224
_runtimeState.StateChanged +=
OnCameraRuntimeStateChanged
;
225
226
_isInitialized
=
true
;
227
}
228
245
public
Task
OpenLiveAsync
()
246
{
247
return
Task.CompletedTask;
248
}
249
274
public
Task
ConnectCameraAsync
(
string
cameraId)
275
{
276
return
PublishAsync
(
VmsDashboardActions
.
CameraConnect
, cameraId);
277
}
278
303
public
Task
DisconnectCameraAsync
(
string
cameraId)
304
{
305
return
PublishAsync
(
VmsDashboardActions
.
CameraDisconnect
, cameraId);
306
}
307
324
public
Task
StartAllAsync
()
325
{
326
return
PublishAsync
(
VmsDashboardActions
.
CameraStartAll
);
327
}
328
345
public
Task
StopAllAsync
()
346
{
347
return
PublishAsync
(
VmsDashboardActions
.
CameraStopAll
);
348
}
349
366
public
Task
ClearLogsAsync
()
367
{
368
return
PublishAsync
(
VmsDashboardActions
.
ClearLogs
);
369
}
370
403
private
Task
PublishAsync
(
string
action,
string
? cameraId =
null
)
404
{
405
return
_bus
.PublishAsync(
new
VmsDashboardActionRequestedMessage
406
{
407
Action = action,
408
CameraId = cameraId
409
});
410
}
411
420
public
void
Dispose
()
421
{
422
if
(!
_isInitialized
)
423
{
424
return
;
425
}
426
427
_store.StateChanged -=
OnDashboardStateChanged
;
428
_runtimeState.StateChanged -=
OnCameraRuntimeStateChanged
;
429
430
_isInitialized
=
false
;
431
}
432
441
private
void
RefreshCameras
()
442
{
443
Cameras
=
_repository
.GetAll()
444
.OrderBy(camera => camera.DisplayOrder)
445
.Select(
CreateCameraItem
)
446
.ToArray();
447
}
448
473
private
DashboardCameraItemViewModel
CreateCameraItem
(
CameraDevice
camera)
474
{
475
CameraRuntimeState
runtimeState =
_runtimeState
.GetState(camera.
Id
);
476
477
return
new
DashboardCameraItemViewModel
(
478
id
: camera.
Id
,
479
name: camera.
Name
,
480
host: camera.
Host
,
481
hlsUrl: camera.
HlsUrl
,
482
displayOrder: camera.
DisplayOrder
,
483
enabled: camera.
Enabled
,
484
state: runtimeState.
State
,
485
lastMessage: runtimeState.
LastMessage
,
486
lastError: runtimeState.
LastError
,
487
lastUpdated: runtimeState.
LastUpdated
,
488
restartCount: runtimeState.
RestartCount
);
489
}
490
515
private
void
OnDashboardStateChanged
(
516
object
? sender,
517
HybridStateChangedEventArgs<VmsDashboardState> e)
518
{
519
NotifyStateChanged
();
520
}
521
546
private
void
OnCameraRuntimeStateChanged
(
object
? sender,
CameraRuntimeState
e)
547
{
548
RefreshCameras
();
549
NotifyStateChanged
();
550
}
551
560
private
void
NotifyStateChanged
()
561
{
562
StateChanged
?.Invoke(
this
, EventArgs.Empty);
563
}
564
}
565
574
public
sealed
class
DashboardCameraItemViewModel
575
{
672
public
DashboardCameraItemViewModel
(
673
string
id
,
674
string
name,
675
string
host,
676
string
hlsUrl,
677
int
displayOrder,
678
bool
enabled,
679
CameraConnectionState
state,
680
string
lastMessage,
681
string
? lastError,
682
DateTimeOffset lastUpdated,
683
int
restartCount)
684
{
685
Id
= id;
686
Name
= name;
687
Host
= host;
688
HlsUrl
= hlsUrl;
689
DisplayOrder
= displayOrder;
690
Enabled
= enabled;
691
State
= state;
692
LastMessage
= lastMessage;
693
LastError
= lastError;
694
LastUpdated
= lastUpdated;
695
RestartCount
= restartCount;
696
}
697
706
public
string
Id
{
get
; }
707
716
public
string
Name
{
get
; }
717
726
public
string
Host
{
get
; }
727
736
public
string
HlsUrl
{
get
; }
737
746
public
int
DisplayOrder
{
get
; }
747
756
public
bool
Enabled
{
get
; }
757
766
public
CameraConnectionState
State
{
get
; }
767
776
public
string
LastMessage
{
get
; }
777
786
public
string
?
LastError
{
get
; }
787
796
public
DateTimeOffset
LastUpdated
{
get
; }
797
806
public
int
RestartCount
{
get
; }
807
816
public
string
StateCssClass
=>
State
.ToString().ToLowerInvariant();
817
826
public
string
StateText
=>
State
.ToString();
827
836
public
string
LastUpdatedText
=>
LastUpdated
.ToString(
"yyyy-MM-dd HH:mm:ss"
);
837
}
DreamineVMS.Blazor.ViewModels
Definition
DashboardPageViewModel.cs:9
DreamineVMS.Messages
Definition
VmsDashboardActionRequestedMessage.cs:3
DreamineVMS.Models
Definition
CameraConnectionState.cs:1
DreamineVMS.Models.CameraConnectionState
CameraConnectionState
Definition
CameraConnectionState.cs:12
DreamineVMS.Services.Cameras
Definition
CameraRepositoryChangedEventArgs.cs:3
DreamineVMS.Services.Runtime
Definition
CameraRuntimeStateService.cs:4
DreamineVMS.States
Definition
VmsDashboardState.cs:1
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel._runtimeState
readonly ICameraRuntimeStateService _runtimeState
Definition
DashboardPageViewModel.cs:64
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel._store
readonly IHybridStateStore< VmsDashboardState > _store
Definition
DashboardPageViewModel.cs:37
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel.Initialize
void Initialize()
Definition
DashboardPageViewModel.cs:214
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel.ConnectCameraAsync
Task ConnectCameraAsync(string cameraId)
Definition
DashboardPageViewModel.cs:274
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel.RefreshCameras
void RefreshCameras()
Definition
DashboardPageViewModel.cs:441
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel.TotalCameraCount
int TotalCameraCount
Definition
DashboardPageViewModel.cs:153
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel.Cameras
IReadOnlyList< DashboardCameraItemViewModel > Cameras
Definition
DashboardPageViewModel.cs:203
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel.OnDashboardStateChanged
void OnDashboardStateChanged(object? sender, HybridStateChangedEventArgs< VmsDashboardState > e)
Definition
DashboardPageViewModel.cs:515
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel.RecordingCameraCount
int RecordingCameraCount
Definition
DashboardPageViewModel.cs:173
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel.CreateCameraItem
DashboardCameraItemViewModel CreateCameraItem(CameraDevice camera)
Definition
DashboardPageViewModel.cs:473
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel._bus
readonly IHybridMessageBus _bus
Definition
DashboardPageViewModel.cs:46
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel._isInitialized
bool _isInitialized
Definition
DashboardPageViewModel.cs:73
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel.DashboardPageViewModel
DashboardPageViewModel(IHybridStateStore< VmsDashboardState > store, IHybridMessageBus bus, IVmsCameraRepository repository, ICameraRuntimeStateService runtimeState)
Definition
DashboardPageViewModel.cs:123
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel.StartAllAsync
Task StartAllAsync()
Definition
DashboardPageViewModel.cs:324
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel.OnCameraRuntimeStateChanged
void OnCameraRuntimeStateChanged(object? sender, CameraRuntimeState e)
Definition
DashboardPageViewModel.cs:546
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel.StateChanged
EventHandler? StateChanged
Definition
DashboardPageViewModel.cs:143
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel._repository
readonly IVmsCameraRepository _repository
Definition
DashboardPageViewModel.cs:55
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel.NotifyStateChanged
void NotifyStateChanged()
Definition
DashboardPageViewModel.cs:560
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel.PublishAsync
Task PublishAsync(string action, string? cameraId=null)
Definition
DashboardPageViewModel.cs:403
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel.ConnectedCameraCount
int ConnectedCameraCount
Definition
DashboardPageViewModel.cs:163
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel.StopAllAsync
Task StopAllAsync()
Definition
DashboardPageViewModel.cs:345
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel.LastUpdatedText
string LastUpdatedText
Definition
DashboardPageViewModel.cs:193
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel.ClearLogsAsync
Task ClearLogsAsync()
Definition
DashboardPageViewModel.cs:366
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel.OpenLiveAsync
Task OpenLiveAsync()
Definition
DashboardPageViewModel.cs:245
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel.LastEvent
string LastEvent
Definition
DashboardPageViewModel.cs:183
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel.Dispose
void Dispose()
Definition
DashboardPageViewModel.cs:420
DreamineVMS.Blazor.ViewModels.DashboardPageViewModel.DisconnectCameraAsync
Task DisconnectCameraAsync(string cameraId)
Definition
DashboardPageViewModel.cs:303
DreamineVMS.Blazor.ViewModels.DashboardCameraItemViewModel
Definition
DashboardPageViewModel.cs:575
DreamineVMS.Blazor.ViewModels.DashboardCameraItemViewModel.State
CameraConnectionState State
Definition
DashboardPageViewModel.cs:766
DreamineVMS.Blazor.ViewModels.DashboardCameraItemViewModel.Name
string Name
Definition
DashboardPageViewModel.cs:716
DreamineVMS.Blazor.ViewModels.DashboardCameraItemViewModel.HlsUrl
string HlsUrl
Definition
DashboardPageViewModel.cs:736
DreamineVMS.Blazor.ViewModels.DashboardCameraItemViewModel.StateText
string StateText
Definition
DashboardPageViewModel.cs:826
DreamineVMS.Blazor.ViewModels.DashboardCameraItemViewModel.DashboardCameraItemViewModel
DashboardCameraItemViewModel(string id, string name, string host, string hlsUrl, int displayOrder, bool enabled, CameraConnectionState state, string lastMessage, string? lastError, DateTimeOffset lastUpdated, int restartCount)
Definition
DashboardPageViewModel.cs:672
DreamineVMS.Blazor.ViewModels.DashboardCameraItemViewModel.LastMessage
string LastMessage
Definition
DashboardPageViewModel.cs:776
DreamineVMS.Blazor.ViewModels.DashboardCameraItemViewModel.RestartCount
int RestartCount
Definition
DashboardPageViewModel.cs:806
DreamineVMS.Blazor.ViewModels.DashboardCameraItemViewModel.Enabled
bool Enabled
Definition
DashboardPageViewModel.cs:756
DreamineVMS.Blazor.ViewModels.DashboardCameraItemViewModel.Host
string Host
Definition
DashboardPageViewModel.cs:726
DreamineVMS.Blazor.ViewModels.DashboardCameraItemViewModel.DisplayOrder
int DisplayOrder
Definition
DashboardPageViewModel.cs:746
DreamineVMS.Blazor.ViewModels.DashboardCameraItemViewModel.LastUpdatedText
string LastUpdatedText
Definition
DashboardPageViewModel.cs:836
DreamineVMS.Blazor.ViewModels.DashboardCameraItemViewModel.LastError
string? LastError
Definition
DashboardPageViewModel.cs:786
DreamineVMS.Blazor.ViewModels.DashboardCameraItemViewModel.LastUpdated
DateTimeOffset LastUpdated
Definition
DashboardPageViewModel.cs:796
DreamineVMS.Blazor.ViewModels.DashboardCameraItemViewModel.Id
string Id
Definition
DashboardPageViewModel.cs:706
DreamineVMS.Blazor.ViewModels.DashboardCameraItemViewModel.StateCssClass
string StateCssClass
Definition
DashboardPageViewModel.cs:816
DreamineVMS.Messages.VmsDashboardActionRequestedMessage
Definition
VmsDashboardActionRequestedMessage.cs:14
DreamineVMS.Messages.VmsDashboardActions
Definition
VmsDashboardActions.cs:20
DreamineVMS.Messages.VmsDashboardActions.CameraDisconnect
const string CameraDisconnect
Definition
VmsDashboardActions.cs:59
DreamineVMS.Messages.VmsDashboardActions.CameraStopAll
const string CameraStopAll
Definition
VmsDashboardActions.cs:79
DreamineVMS.Messages.VmsDashboardActions.CameraConnect
const string CameraConnect
Definition
VmsDashboardActions.cs:49
DreamineVMS.Messages.VmsDashboardActions.ClearLogs
const string ClearLogs
Definition
VmsDashboardActions.cs:89
DreamineVMS.Messages.VmsDashboardActions.CameraStartAll
const string CameraStartAll
Definition
VmsDashboardActions.cs:69
DreamineVMS.Models.CameraDevice
Definition
CameraDevice.cs:12
DreamineVMS.Models.CameraDevice.Id
required string Id
Definition
CameraDevice.cs:21
DreamineVMS.Models.CameraDevice.HlsUrl
string HlsUrl
Definition
CameraDevice.cs:123
DreamineVMS.Models.CameraDevice.DisplayOrder
int DisplayOrder
Definition
CameraDevice.cs:61
DreamineVMS.Models.CameraDevice.Name
required string Name
Definition
CameraDevice.cs:31
DreamineVMS.Models.CameraDevice.Enabled
bool Enabled
Definition
CameraDevice.cs:81
DreamineVMS.Models.CameraDevice.Host
required string Host
Definition
CameraDevice.cs:41
DreamineVMS.Models.CameraRuntimeState
Definition
CameraRuntimeState.cs:15
DreamineVMS.Models.CameraRuntimeState.LastError
string? LastError
Definition
CameraRuntimeState.cs:133
DreamineVMS.Models.CameraRuntimeState.RestartCount
int RestartCount
Definition
CameraRuntimeState.cs:147
DreamineVMS.Models.CameraRuntimeState.LastMessage
string LastMessage
Definition
CameraRuntimeState.cs:105
DreamineVMS.Models.CameraRuntimeState.LastUpdated
DateTimeOffset LastUpdated
Definition
CameraRuntimeState.cs:119
DreamineVMS.Models.CameraRuntimeState.State
CameraConnectionState State
Definition
CameraRuntimeState.cs:91
DreamineVMS.Services.Cameras.IVmsCameraRepository
Definition
IVmsCameraRepository.cs:14
DreamineVMS.Services.Runtime.ICameraRuntimeStateService
Definition
ICameraRuntimeStateService.cs:14
Blazor
ViewModels
DashboardPageViewModel.cs
다음에 의해 생성됨 :
1.17.0