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

더 자세히 ...

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

Public 멤버 함수

 AgentSettingsViewModel (IConfiguration config, AgentApiClient api, AgentSettingsWriter writer)

속성

string ServerUrl [get, set]
string Email [get, set]
string Password [get, set]
string StatusMessage [get, private set]
bool IsConnected [get, private set]
ICommand SaveCommand [get]
ICommand TestCommand [get]
ICommand ReconnectCommand [get]

이벤트

PropertyChangedEventHandler? PropertyChanged

Private 멤버 함수

async Task SaveAsync ()
async Task TestConnectionAsync ()
async Task ReconnectAsync ()
bool SetField< T > (ref T field, T value, [CallerMemberName] string? name=null)

Private 속성

readonly AgentApiClient _api
readonly AgentSettingsWriter _writer
string _serverUrl = ""
string _email = ""
string _password = ""
string _statusMessage = "저장된 설정을 불러왔습니다."
bool _isConnected = false

상세한 설명

에이전트 접속 정보(서버 URL·이메일·비밀번호)를 관리하는 ViewModel입니다.

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

생성자 & 소멸자 문서화

◆ AgentSettingsViewModel()

DreamineVMS.ViewModels.AgentSettingsViewModel.AgentSettingsViewModel ( IConfiguration config,
AgentApiClient api,
AgentSettingsWriter writer )
inline

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

매개변수
configconfig에 사용할 IConfiguration 값입니다.
apiapi에 사용할 AgentApiClient 값입니다.
writerwriter에 사용할 AgentSettingsWriter 값입니다.

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

117 {
118 _api = api;
119 _writer = writer;
120
121 // 현재 설정값으로 초기화
122 _serverUrl = config["Agent:ServerUrl"] ?? "http://cctvviewer.codemaru.co.kr";
123 _email = config["Agent:Email"] ?? "";
124 _password = config["Agent:Password"] ?? "";
125
126 SaveCommand = new AsyncRelayCommand(SaveAsync);
127 TestCommand = new AsyncRelayCommand(TestConnectionAsync);
128 ReconnectCommand = new AsyncRelayCommand(ReconnectAsync);
129
130 // 현재 연결 상태 반영
131 _isConnected = _api.Token is not null;
132 _statusMessage = _isConnected ? $"연결됨 — 토큰 보유 중" : "미연결 — 저장 후 '재연결'을 눌러주세요.";
133 }

다음을 참조함 : _api, _email, _isConnected, _password, _serverUrl, _statusMessage, _writer, ReconnectAsync(), ReconnectCommand, SaveAsync(), SaveCommand, TestCommand, TestConnectionAsync().

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

멤버 함수 문서화

◆ ReconnectAsync()

async Task DreamineVMS.ViewModels.AgentSettingsViewModel.ReconnectAsync ( )
inlineprivate

Reconnect Async 작업을 수행합니다.

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

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

342 {
343 StatusMessage = "재연결 시도 중...";
344 IsConnected = false;
345 _api.ClearToken();
346
347 var (ok, err) = await _api.LoginWithStoredCredentialsAsync().ConfigureAwait(true);
348 IsConnected = ok;
349 StatusMessage = ok
350 ? $"재연결 성공! 서버: {_api.ServerUrl}"
351 : $"재연결 실패: {err}";
352 }

다음을 참조함 : _api, IsConnected, StatusMessage.

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

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

◆ SaveAsync()

async Task DreamineVMS.ViewModels.AgentSettingsViewModel.SaveAsync ( )
inlineprivate

Async 데이터를 저장합니다.

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

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

260 {
261 if (string.IsNullOrWhiteSpace(ServerUrl))
262 {
263 StatusMessage = "서버 URL을 입력하세요.";
264 return;
265 }
266 if (string.IsNullOrWhiteSpace(Email))
267 {
268 StatusMessage = "이메일을 입력하세요.";
269 return;
270 }
271 if (string.IsNullOrWhiteSpace(Password))
272 {
273 StatusMessage = "비밀번호를 입력하세요.";
274 return;
275 }
276
277 try
278 {
279 await _writer.SaveAsync(ServerUrl.Trim(), Email.Trim(), Password, CancellationToken.None)
280 .ConfigureAwait(true);
281
282 // 실행 중인 ApiClient에도 즉시 반영
283 _api.SetCredentials(ServerUrl.Trim(), Email.Trim(), Password);
284 IsConnected = false;
285 StatusMessage = "설정을 저장했습니다. '재연결'을 눌러 서버에 연결하세요.";
286 }
287 catch (Exception ex)
288 {
289 StatusMessage = $"저장 실패: {ex.Message}";
290 }
291 }

다음을 참조함 : _api, _writer, Email, IsConnected, Password, ServerUrl, StatusMessage.

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

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

◆ SetField< T >()

bool DreamineVMS.ViewModels.AgentSettingsViewModel.SetField< T > ( ref T field,
T value,
[CallerMemberName] string? name = null )
inlineprivate

Field 값을 설정합니다.

템플릿 파라메터
TT 형식 매개변수입니다.
매개변수
fieldfield에 사용할 T 값입니다.
value적용할 값입니다.
namename에 사용할 string? 값입니다.
반환값
Set Field 조건이 충족되면 true이고, 그렇지 않으면 false입니다.

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

403 {
404 if (EqualityComparer<T>.Default.Equals(field, value)) return false;
405 field = value;
406 PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
407 return true;
408 }

다음을 참조함 : PropertyChanged.

◆ TestConnectionAsync()

async Task DreamineVMS.ViewModels.AgentSettingsViewModel.TestConnectionAsync ( )
inlineprivate

Test Connection Async 작업을 수행합니다.

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

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

310 {
311 if (string.IsNullOrWhiteSpace(Email) || string.IsNullOrWhiteSpace(Password))
312 {
313 StatusMessage = "이메일과 비밀번호를 먼저 입력하세요.";
314 return;
315 }
316
317 StatusMessage = "서버에 연결 테스트 중...";
318 var (ok, err) = await _api.LoginAsync(Email.Trim(), Password).ConfigureAwait(true);
319 IsConnected = ok;
320 StatusMessage = ok
321 ? $"연결 성공! 서버: {_api.ServerUrl}"
322 : $"연결 실패: {err}";
323 }

다음을 참조함 : _api, Email, IsConnected, Password, StatusMessage.

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

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

멤버 데이터 문서화

◆ _api

readonly AgentApiClient DreamineVMS.ViewModels.AgentSettingsViewModel._api
private

api 값을 보관합니다.

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

다음에 의해서 참조됨 : AgentSettingsViewModel(), ReconnectAsync(), SaveAsync(), TestConnectionAsync().

◆ _email

string DreamineVMS.ViewModels.AgentSettingsViewModel._email = ""
private

email 값을 보관합니다.

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

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

◆ _isConnected

bool DreamineVMS.ViewModels.AgentSettingsViewModel._isConnected = false
private

is Connected 값을 보관합니다.

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

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

◆ _password

string DreamineVMS.ViewModels.AgentSettingsViewModel._password = ""
private

password 값을 보관합니다.

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

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

◆ _serverUrl

string DreamineVMS.ViewModels.AgentSettingsViewModel._serverUrl = ""
private

server Url 값을 보관합니다.

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

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

◆ _statusMessage

string DreamineVMS.ViewModels.AgentSettingsViewModel._statusMessage = "저장된 설정을 불러왔습니다."
private

status Message 값을 보관합니다.

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

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

◆ _writer

readonly AgentSettingsWriter DreamineVMS.ViewModels.AgentSettingsViewModel._writer
private

writer 값을 보관합니다.

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

다음에 의해서 참조됨 : AgentSettingsViewModel(), SaveAsync().

속성 문서화

◆ Email

string DreamineVMS.ViewModels.AgentSettingsViewModel.Email
getset

Email 값을 가져오거나 설정합니다.

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

168 {
169 get => _email;
170 set => SetField(ref _email, value);
171 }

다음에 의해서 참조됨 : SaveAsync(), TestConnectionAsync().

◆ IsConnected

bool DreamineVMS.ViewModels.AgentSettingsViewModel.IsConnected
getprivate set

Is Connected 값을 가져오거나 설정합니다.

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

210 {
211 get => _isConnected;
212 private set => SetField(ref _isConnected, value);
213 }

다음에 의해서 참조됨 : ReconnectAsync(), SaveAsync(), TestConnectionAsync().

◆ Password

string DreamineVMS.ViewModels.AgentSettingsViewModel.Password
getset

Password 값을 가져오거나 설정합니다.

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

182 {
183 get => _password;
184 set => SetField(ref _password, value);
185 }

다음에 의해서 참조됨 : SaveAsync(), TestConnectionAsync().

◆ ReconnectCommand

ICommand DreamineVMS.ViewModels.AgentSettingsViewModel.ReconnectCommand
get

Reconnect Command 값을 가져옵니다.

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

241{ get; }

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

◆ SaveCommand

ICommand DreamineVMS.ViewModels.AgentSettingsViewModel.SaveCommand
get

Save Command 값을 가져옵니다.

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

223{ get; }

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

◆ ServerUrl

string DreamineVMS.ViewModels.AgentSettingsViewModel.ServerUrl
getset

Server Url 값을 가져오거나 설정합니다.

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

154 {
155 get => _serverUrl;
156 set => SetField(ref _serverUrl, value);
157 }

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

◆ StatusMessage

string DreamineVMS.ViewModels.AgentSettingsViewModel.StatusMessage
getprivate set

Status Message 값을 가져오거나 설정합니다.

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

196 {
197 get => _statusMessage;
198 private set => SetField(ref _statusMessage, value);
199 }

다음에 의해서 참조됨 : ReconnectAsync(), SaveAsync(), TestConnectionAsync().

◆ TestCommand

ICommand DreamineVMS.ViewModels.AgentSettingsViewModel.TestCommand
get

Test Command 값을 가져옵니다.

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

232{ get; }

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

이벤트 문서화

◆ PropertyChanged

PropertyChangedEventHandler? DreamineVMS.ViewModels.AgentSettingsViewModel.PropertyChanged

Property Changed 상황이 발생할 때 알립니다.

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

다음에 의해서 참조됨 : SetField< T >().


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