SampleSmart 1.0.0.0
SampleSmart 사용 방법을 보여 주는 예제 프로젝트입니다.
로딩중...
검색중...
일치하는것 없음
SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel 클래스 참조sealed

더 자세히 ...

SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel에 대한 상속 다이어그램 :
SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel에 대한 협력 다이어그램:

Public 멤버 함수

 DatabaseSampleTabViewModel (string title, string connectionString, Func< string, IDatabaseProvider > providerFactory, bool autoInitialize=false)

속성

string Title [get]
ObservableCollection< SampleCustomerCustomers = [] [get]
string ConnectionString [get, set]
SampleCustomerSelectedCustomer [get, set]
string NameInput [get, set]
string RoleInput [get, set]
string StatusMessage [get, set]
RelayCommand InitializeCommand [get]
RelayCommand AddCommand [get]
RelayCommand UpdateCommand [get]
RelayCommand DeleteCommand [get]
RelayCommand RefreshCommand [get]

Private 멤버 함수

void Initialize ()
void Add ()
void Update ()
void Delete ()
void Refresh ()
void AddSeedDataIfNeeded ()
bool TryGetProvider (out IDatabaseProvider provider)

정적 Private 멤버 함수

static string NormalizeInput (string value, string fallback)

Private 속성

readonly Func< string, IDatabaseProvider > _providerFactory
IDatabaseProvider? _provider
SampleCustomer_selectedCustomer
string _connectionString
string _nameInput = "Dreamine"
string _roleInput = "Operator"
string _statusMessage = "Not initialized."

상세한 설명

Database Sample Tab View Model 기능과 관련 상태를 캡슐화합니다.

PageDatabase.xaml.ViewModel.cs 파일의 108 번째 라인에서 정의되었습니다.

생성자 & 소멸자 문서화

◆ DatabaseSampleTabViewModel()

SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel.DatabaseSampleTabViewModel ( string title,
string connectionString,
Func< string, IDatabaseProvider > providerFactory,
bool autoInitialize = false )
inline

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

매개변수
titletitle에 사용할 string 값입니다.
connectionStringconnection String에 사용할 string 값입니다.
providerFactoryprovider Factory에 사용할 Func<string, IDatabaseProvider> 값입니다.
autoInitializeauto Initialize에 사용할 bool 값입니다.

PageDatabase.xaml.ViewModel.cs 파일의 214 번째 라인에서 정의되었습니다.

219 {
220 Title = title;
221 _connectionString = connectionString;
222 _providerFactory = providerFactory;
223
224 if (autoInitialize)
225 {
226 Initialize();
227 }
228 }

다음을 참조함 : _connectionString, _providerFactory, Initialize(), Title.

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

멤버 함수 문서화

◆ Add()

void SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel.Add ( )
inlineprivate

항목을 추가합니다.

PageDatabase.xaml.ViewModel.cs 파일의 417 번째 라인에서 정의되었습니다.

418 {
419 if (!TryGetProvider(out var provider))
420 {
421 return;
422 }
423
424 try
425 {
426 var name = NormalizeInput(NameInput, "New customer");
427 var role = NormalizeInput(RoleInput, "Viewer");
428
429 provider.Insert(new SampleCustomer
430 {
431 Name = name,
432 Role = role,
433 CreatedAt = DateTime.Now
434 });
435
436 StatusMessage = $"{Title}: added {name}.";
437 Refresh();
438 }
439 catch (Exception ex)
440 {
441 StatusMessage = $"{Title} add failed: {ex.Message}";
442 }
443 }

다음을 참조함 : NameInput, NormalizeInput(), Refresh(), RoleInput, StatusMessage, TryGetProvider().

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

◆ AddSeedDataIfNeeded()

void SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel.AddSeedDataIfNeeded ( )
inlineprivate

Seed Data If Needed 항목을 추가합니다.

PageDatabase.xaml.ViewModel.cs 파일의 559 번째 라인에서 정의되었습니다.

560 {
561 if (!TryGetProvider(out var provider))
562 {
563 return;
564 }
565
566 var count = provider.ExecuteScalar<long>("SELECT COUNT(1) FROM SampleCustomers");
567 if (count > 0)
568 {
569 return;
570 }
571
572 provider.Insert(new SampleCustomer
573 {
574 Name = "Minsu",
575 Role = "Admin",
576 CreatedAt = DateTime.Now
577 });
578
579 provider.Insert(new SampleCustomer
580 {
581 Name = "Sample Operator",
582 Role = "Operator",
583 CreatedAt = DateTime.Now
584 });
585 }

다음을 참조함 : TryGetProvider().

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

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

◆ Delete()

void SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel.Delete ( )
inlineprivate

Delete 작업을 수행합니다.

PageDatabase.xaml.ViewModel.cs 파일의 489 번째 라인에서 정의되었습니다.

490 {
491 if (!TryGetProvider(out var provider))
492 {
493 return;
494 }
495
496 if (SelectedCustomer is null)
497 {
498 StatusMessage = "Select a row to delete.";
499 return;
500 }
501
502 try
503 {
504 var deletedId = SelectedCustomer.Id;
505 provider.Delete(SelectedCustomer);
506 SelectedCustomer = null;
507 StatusMessage = $"{Title}: deleted #{deletedId}.";
508 Refresh();
509 }
510 catch (Exception ex)
511 {
512 StatusMessage = $"{Title} delete failed: {ex.Message}";
513 }
514 }

다음을 참조함 : Refresh(), SelectedCustomer, StatusMessage, TryGetProvider().

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

◆ Initialize()

void SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel.Initialize ( )
inlineprivate

Initialize 작업을 수행합니다.

PageDatabase.xaml.ViewModel.cs 파일의 392 번째 라인에서 정의되었습니다.

393 {
394 try
395 {
396 _provider = _providerFactory(ConnectionString);
397 _provider.EnsureDatabaseExists();
398 _provider.CreateTable<SampleCustomer>();
399
400 AddSeedDataIfNeeded();
401 Refresh();
402 }
403 catch (Exception ex)
404 {
405 StatusMessage = $"{Title} initialize failed: {ex.Message}";
406 }
407 }

다음을 참조함 : _provider, _providerFactory, AddSeedDataIfNeeded(), ConnectionString, Refresh(), StatusMessage.

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

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

◆ NormalizeInput()

string SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel.NormalizeInput ( string value,
string fallback )
inlinestaticprivate

Normalize Input 작업을 수행합니다.

매개변수
value적용할 값입니다.
fallbackfallback에 사용할 string 값입니다.
반환값
Normalize Input 작업에서 생성한 string 결과입니다.

PageDatabase.xaml.ViewModel.cs 파일의 656 번째 라인에서 정의되었습니다.

657 {
658 return string.IsNullOrWhiteSpace(value)
659 ? fallback
660 : value.Trim();
661 }

다음에 의해서 참조됨 : Add(), Update().

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

◆ Refresh()

void SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel.Refresh ( )
inlineprivate

Refresh 작업을 수행합니다.

PageDatabase.xaml.ViewModel.cs 파일의 524 번째 라인에서 정의되었습니다.

525 {
526 if (!TryGetProvider(out var provider))
527 {
528 return;
529 }
530
531 try
532 {
533 var rows = provider
534 .Query<SampleCustomer>("SELECT Id, Name, Role, CreatedAt FROM SampleCustomers ORDER BY Id DESC")
535 .ToArray();
536
537 Customers.Clear();
538 foreach (var row in rows)
539 {
540 Customers.Add(row);
541 }
542
543 StatusMessage = $"{Title}: loaded {Customers.Count} rows.";
544 }
545 catch (Exception ex)
546 {
547 StatusMessage = $"{Title} refresh failed: {ex.Message}";
548 }
549 }

다음을 참조함 : Customers, StatusMessage, TryGetProvider().

다음에 의해서 참조됨 : Add(), Delete(), Initialize(), Update().

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

◆ TryGetProvider()

bool SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel.TryGetProvider ( out IDatabaseProvider provider)
inlineprivate

Get Provider 작업을 시도하고 성공 여부를 반환합니다.

매개변수
providerprovider에 사용할 IDatabaseProvider 값입니다.
반환값
Try Get Provider 조건이 충족되면 true이고, 그렇지 않으면 false입니다.

PageDatabase.xaml.ViewModel.cs 파일의 611 번째 라인에서 정의되었습니다.

612 {
613 if (_provider is not null)
614 {
615 provider = _provider;
616 return true;
617 }
618
619 StatusMessage = $"{Title}: initialize the provider first.";
620 provider = null!;
621 return false;
622 }

다음을 참조함 : _provider, StatusMessage.

다음에 의해서 참조됨 : Add(), AddSeedDataIfNeeded(), Delete(), Refresh(), Update().

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

◆ Update()

void SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel.Update ( )
inlineprivate

Update 작업을 수행합니다.

PageDatabase.xaml.ViewModel.cs 파일의 453 번째 라인에서 정의되었습니다.

454 {
455 if (!TryGetProvider(out var provider))
456 {
457 return;
458 }
459
460 if (SelectedCustomer is null)
461 {
462 StatusMessage = "Select a row to update.";
463 return;
464 }
465
466 try
467 {
468 SelectedCustomer.Name = NormalizeInput(NameInput, SelectedCustomer.Name);
469 SelectedCustomer.Role = NormalizeInput(RoleInput, SelectedCustomer.Role);
470
471 provider.Update(SelectedCustomer);
472 StatusMessage = $"{Title}: updated #{SelectedCustomer.Id}.";
473 Refresh();
474 }
475 catch (Exception ex)
476 {
477 StatusMessage = $"{Title} update failed: {ex.Message}";
478 }
479 }

다음을 참조함 : NameInput, NormalizeInput(), Refresh(), RoleInput, SelectedCustomer, StatusMessage, TryGetProvider().

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

멤버 데이터 문서화

◆ _connectionString

string SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel._connectionString
private

connection String 값을 보관합니다.

PageDatabase.xaml.ViewModel.cs 파일의 145 번째 라인에서 정의되었습니다.

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

◆ _nameInput

string SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel._nameInput = "Dreamine"
private

name Input 값을 보관합니다.

PageDatabase.xaml.ViewModel.cs 파일의 154 번째 라인에서 정의되었습니다.

◆ _provider

IDatabaseProvider? SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel._provider
private

provider 값을 보관합니다.

PageDatabase.xaml.ViewModel.cs 파일의 127 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : Initialize(), TryGetProvider().

◆ _providerFactory

readonly Func<string, IDatabaseProvider> SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel._providerFactory
private

provider Factory 값을 보관합니다.

PageDatabase.xaml.ViewModel.cs 파일의 118 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : DatabaseSampleTabViewModel(), Initialize().

◆ _roleInput

string SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel._roleInput = "Operator"
private

role Input 값을 보관합니다.

PageDatabase.xaml.ViewModel.cs 파일의 163 번째 라인에서 정의되었습니다.

◆ _selectedCustomer

SampleCustomer? SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel._selectedCustomer
private

selected Customer 값을 보관합니다.

PageDatabase.xaml.ViewModel.cs 파일의 136 번째 라인에서 정의되었습니다.

◆ _statusMessage

string SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel._statusMessage = "Not initialized."
private

status Message 값을 보관합니다.

PageDatabase.xaml.ViewModel.cs 파일의 172 번째 라인에서 정의되었습니다.

속성 문서화

◆ AddCommand

RelayCommand SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel.AddCommand
get

Add Command 값을 가져옵니다.

PageDatabase.xaml.ViewModel.cs 파일의 352 번째 라인에서 정의되었습니다.

◆ ConnectionString

string SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel.ConnectionString
getset

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

PageDatabase.xaml.ViewModel.cs 파일의 258 번째 라인에서 정의되었습니다.

259 {
260 get => _connectionString;
261 set => SetProperty(ref _connectionString, value);
262 }

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

◆ Customers

ObservableCollection<SampleCustomer> SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel.Customers = []
get

Customers 값을 가져옵니다.

PageDatabase.xaml.ViewModel.cs 파일의 248 번째 라인에서 정의되었습니다.

248{ get; } = [];

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

◆ DeleteCommand

RelayCommand SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel.DeleteCommand
get

Delete Command 값을 가져옵니다.

PageDatabase.xaml.ViewModel.cs 파일의 372 번째 라인에서 정의되었습니다.

◆ InitializeCommand

RelayCommand SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel.InitializeCommand
get

Initialize Command 값을 가져옵니다.

PageDatabase.xaml.ViewModel.cs 파일의 342 번째 라인에서 정의되었습니다.

◆ NameInput

string SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel.NameInput
getset

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

PageDatabase.xaml.ViewModel.cs 파일의 300 번째 라인에서 정의되었습니다.

301 {
302 get => _nameInput;
303 set => SetProperty(ref _nameInput, value);
304 }

다음에 의해서 참조됨 : Add(), Update().

◆ RefreshCommand

RelayCommand SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel.RefreshCommand
get

Refresh Command 값을 가져옵니다.

PageDatabase.xaml.ViewModel.cs 파일의 382 번째 라인에서 정의되었습니다.

◆ RoleInput

string SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel.RoleInput
getset

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

PageDatabase.xaml.ViewModel.cs 파일의 314 번째 라인에서 정의되었습니다.

315 {
316 get => _roleInput;
317 set => SetProperty(ref _roleInput, value);
318 }

다음에 의해서 참조됨 : Add(), Update().

◆ SelectedCustomer

SampleCustomer? SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel.SelectedCustomer
getset

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

PageDatabase.xaml.ViewModel.cs 파일의 272 번째 라인에서 정의되었습니다.

273 {
274 get => _selectedCustomer;
275 set
276 {
277 if (!SetProperty(ref _selectedCustomer, value))
278 {
279 return;
280 }
281
282 if (value is null)
283 {
284 return;
285 }
286
287 NameInput = value.Name;
288 RoleInput = value.Role;
289 }
290 }

다음에 의해서 참조됨 : Delete(), Update().

◆ StatusMessage

string SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel.StatusMessage
getset

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

PageDatabase.xaml.ViewModel.cs 파일의 328 번째 라인에서 정의되었습니다.

329 {
330 get => _statusMessage;
331 set => SetProperty(ref _statusMessage, value);
332 }

다음에 의해서 참조됨 : Add(), Delete(), Initialize(), Refresh(), TryGetProvider(), Update().

◆ Title

string SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel.Title
get

Title 값을 가져옵니다.

PageDatabase.xaml.ViewModel.cs 파일의 238 번째 라인에서 정의되었습니다.

238{ get; }

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

◆ UpdateCommand

RelayCommand SampleSmart.Pages.PageSub.DatabaseSampleTabViewModel.UpdateCommand
get

Update Command 값을 가져옵니다.

PageDatabase.xaml.ViewModel.cs 파일의 362 번째 라인에서 정의되었습니다.


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