Codemaru 1.0.0.0
QR 코드, 모바일 랜딩 페이지, vCard 연락처 저장과 명함 디자인을 한 화면에서 제공하는 디지털 명함 서비스입니다.
로딩중...
검색중...
일치하는것 없음
Codemaru.Services.CardHybridCircuitSession 클래스 참조sealed

더 자세히 ...

Codemaru.Services.CardHybridCircuitSession에 대한 상속 다이어그램 :
Codemaru.Services.CardHybridCircuitSession에 대한 협력 다이어그램:

Public 멤버 함수

 CardHybridCircuitSession (IQrSvgGenerator qr, ICardProfileStore store, AuthenticationStateProvider? authProvider=null)
async Task EnsureInitializedAsync (CancellationToken cancellationToken=default)
async Task ApplyUserAsync (CardHybridUser user, CancellationToken cancellationToken=default)
async Task ReplaceUserSnapshotAsync (CardHybridSnapshot snapshot, CancellationToken cancellationToken=default)
CardHybridSnapshot CaptureCurrentSnapshot ()
void ImportSnapshot (CardHybridSnapshot snapshot)
void UpdateProfile (CardProfile profile)
CardHistoryEntry SaveCurrent ()
CardHistoryEntryUpdateHistory (Guid id, CardProfile profile)
void LoadHistory (CardHistoryEntry entry)
void ClearHistory ()
bool RemoveHistory (Guid id)
void Dispose ()

속성

CardHybridState State [get]
CardHybridUser CurrentUser [get]
bool HasGuestChanges [get]

이벤트

EventHandler< CardHybridState >? StateChanged

Private 멤버 함수

void LoadSnapshot (CardHybridSnapshot? snapshot)
void MarkDirty ()
void PersistCurrent ()
void NotifyStateChanged ()

정적 Private 멤버 함수

static CardHybridUser MapPrincipalToUser (ClaimsPrincipal principal)

Private 속성

readonly SemaphoreSlim _saveLock = new(1, 1)
readonly List< CardHistoryEntry_history = new()
readonly IQrSvgGenerator _qr
readonly ICardProfileStore _store
readonly? AuthenticationStateProvider _authProvider
CardHybridState _state
CardHybridUser _currentUser = CardHybridUser.Guest
bool _hasGuestChanges
bool _initialized

상세한 설명

웹 방문자 1회 접속(Blazor Circuit) 단위로 격리되는 CardHybrid 세션입니다.

인증 자체는 상위 Dreamine.Identity 계층이 처리하고, 이 세션은 ApplyUserAsync 로 결과를 반영합니다. Guest 상태에서 편집한 내역은 HasGuestChanges 로 추적하며 로그인 시 PromoteGuestChangesAsync 로 사용자 소유로 이관할 수 있습니다.

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

생성자 & 소멸자 문서화

◆ CardHybridCircuitSession()

Codemaru.Services.CardHybridCircuitSession.CardHybridCircuitSession ( IQrSvgGenerator qr,
ICardProfileStore store,
AuthenticationStateProvider? authProvider = null )
inline

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

매개변수
qrqr에 사용할 IQrSvgGenerator 값입니다.
storestore에 사용할 ICardProfileStore 값입니다.
authProviderauth Provider에 사용할 AuthenticationStateProvider? 값입니다.
예외
ArgumentNullException필수 입력 인자 중 하나가 null인 경우 발생합니다.

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

155 {
156 _qr = qr ?? throw new ArgumentNullException(nameof(qr));
157 _store = store ?? throw new ArgumentNullException(nameof(store));
158 _authProvider = authProvider;
159 _state = CardHybridState.CreateDefault(_qr.CreateSvg(CardProfile.Default.LandingUrl));
160 }
record CardProfile(string Brand, string Tagline, string BackBrand, string BackTagline, string Category, string Name, string Role, string Email, string Phone, string Address, string Website, string LandingSlug, string AccentColor, string ShortBio, string LandingDescription, string VCardNote, string InternalMemo, string? LogoImageDataUrl, bool RemoveLogoBackground, double CardWidthMm, double CardHeightMm, string FrontFontFamily, string BackFontFamily, double FrontBrandFontSize, double FrontTaglineFontSize, double FrontCategoryFontSize, double FrontEmailFontSize, double BackBrandFontSize, double BackTaglineFontSize, double BackNameFontSize, double BackRoleFontSize, string LandingTheme, bool IncludePhoneInVCard, bool IncludeAddressInVCard, string? ImportedFrontImageDataUrl, string? ImportedBackImageDataUrl)

다음을 참조함 : _authProvider, _qr, _state, _store, Codemaru.Models.CardProfile().

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

멤버 함수 문서화

◆ ApplyUserAsync()

async Task Codemaru.Services.CardHybridCircuitSession.ApplyUserAsync ( CardHybridUser user,
CancellationToken cancellationToken = default )
inline

인증 결과로 얻은 사용자를 세션에 반영하고 저장된 스냅샷을 로드합니다.

매개변수
user세션에 반영할 사용자 (CardHybridUser.Guest 가능).
cancellationToken취소 토큰.
반환값
Apply User Async 작업에서 생성한 Task 결과입니다.

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

333 {
334 ArgumentNullException.ThrowIfNull(user);
335
336 _currentUser = user;
337 var snapshot = await _store.LoadAsync(user.Id, cancellationToken).ConfigureAwait(false);
338 LoadSnapshot(snapshot);
339 _hasGuestChanges = false;
340 NotifyStateChanged();
341 }

다음을 참조함 : _currentUser, _hasGuestChanges, _store, Codemaru.Models.CardHybridUser(), LoadSnapshot(), NotifyStateChanged().

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

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

◆ CaptureCurrentSnapshot()

CardHybridSnapshot Codemaru.Services.CardHybridCircuitSession.CaptureCurrentSnapshot ( )
inline

현재 편집 상태를 CardHybridSnapshot 으로 캡처합니다.

반환값
Capture Current Snapshot 작업에서 생성한 CardHybridSnapshot 결과입니다.

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

424 =>
425 new(_currentUser.Id, _state.Profile, _history.ToArray(), DateTime.Now);

다음을 참조함 : _currentUser, _history, _state, Codemaru.Models.CardHybridSnapshot().

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

◆ ClearHistory()

void Codemaru.Services.CardHybridCircuitSession.ClearHistory ( )
inline

Clear History 작업을 수행합니다.

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

614 {
615 _history.Clear();
616 _state = _state with { History = Array.Empty<CardHistoryEntry>(), LastUpdated = DateTime.Now };
617 MarkDirty();
618 PersistCurrent();
619 NotifyStateChanged();
620 }
record CardHistoryEntry(Guid Id, CardProfile Profile, string LandingUrl, string QrPayload, DateTime CreatedAt)

다음을 참조함 : _history, _state, Codemaru.Models.CardHistoryEntry(), MarkDirty(), NotifyStateChanged(), PersistCurrent().

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

◆ Dispose()

void Codemaru.Services.CardHybridCircuitSession.Dispose ( )
inline

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

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

768=> _saveLock.Dispose();

다음을 참조함 : _saveLock.

◆ EnsureInitializedAsync()

async Task Codemaru.Services.CardHybridCircuitSession.EnsureInitializedAsync ( CancellationToken cancellationToken = default)
inline

서킷 첫 사용 시 인증 상태를 읽어 사용자를 반영합니다.

매개변수
cancellationToken취소 요청을 감시하는 토큰입니다.
반환값
Ensure Initialized Async 작업에서 생성한 Task 결과입니다.

Blazor Server 의 쿠키 기반 인증은 서킷 생성 시점에 확정되므로 그 이후엔 다시 조회할 필요가 없습니다. 페이지 OnInitializedAsync 에서 호출합니다.

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

234 {
235 if (_initialized)
236 {
237 return;
238 }
239 _initialized = true;
240
241 if (_authProvider is null)
242 {
243 return;
244 }
245
246 var authState = await _authProvider.GetAuthenticationStateAsync().ConfigureAwait(false);
247 var user = MapPrincipalToUser(authState.User);
248 await ApplyUserAsync(user, cancellationToken).ConfigureAwait(false);
249 }

다음을 참조함 : _authProvider, _initialized, ApplyUserAsync(), MapPrincipalToUser().

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

◆ ImportSnapshot()

void Codemaru.Services.CardHybridCircuitSession.ImportSnapshot ( CardHybridSnapshot snapshot)
inline

외부 스냅샷을 세션 메모리에 로드합니다 (저장하지 않음).

매개변수
snapshotsnapshot에 사용할 CardHybridSnapshot 값입니다.

브라우저 localStorage 에서 Guest 상태를 복구할 때 사용합니다. Guest 세션이면 HasGuestChanges 를 참으로 설정합니다.

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

452 {
453 ArgumentNullException.ThrowIfNull(snapshot);
454 LoadSnapshot(snapshot);
455 if (_currentUser.IsGuest)
456 {
457 _hasGuestChanges = true;
458 }
459 NotifyStateChanged();
460 }

다음을 참조함 : _currentUser, _hasGuestChanges, Codemaru.Models.CardHybridSnapshot(), LoadSnapshot(), NotifyStateChanged().

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

◆ LoadHistory()

void Codemaru.Services.CardHybridCircuitSession.LoadHistory ( CardHistoryEntry entry)
inline

History 데이터를 불러옵니다.

매개변수
entryentry에 사용할 CardHistoryEntry 값입니다.

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

603=> UpdateProfile(entry.Profile);

다음을 참조함 : Codemaru.Models.CardHistoryEntry().

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

◆ LoadSnapshot()

void Codemaru.Services.CardHybridCircuitSession.LoadSnapshot ( CardHybridSnapshot? snapshot)
inlineprivate

Snapshot 데이터를 불러옵니다.

매개변수
snapshotsnapshot에 사용할 CardHybridSnapshot? 값입니다.

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

677 {
678 _history.Clear();
679 if (snapshot?.History is not null)
680 _history.AddRange(snapshot.History);
681
682 var profile = snapshot?.Profile ?? CardProfile.Default;
683 _state = CardHybridState.Create(profile, _qr.CreateSvg(profile.LandingUrl), _history.ToArray());
684 }

다음을 참조함 : _history, _qr, _state, Codemaru.Models.CardHybridSnapshot(), Codemaru.Models.CardProfile().

다음에 의해서 참조됨 : ApplyUserAsync(), ImportSnapshot(), ReplaceUserSnapshotAsync().

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

◆ MapPrincipalToUser()

CardHybridUser Codemaru.Services.CardHybridCircuitSession.MapPrincipalToUser ( ClaimsPrincipal principal)
inlinestaticprivate

Map Principal To User 작업을 수행합니다.

매개변수
principalprincipal에 사용할 ClaimsPrincipal 값입니다.
반환값
Map Principal To User 작업에서 생성한 CardHybridUser 결과입니다.

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

276 {
277 if (principal?.Identity?.IsAuthenticated != true)
278 {
279 return CardHybridUser.Guest;
280 }
281
282 var userIdClaim = principal.FindFirstValue(DreamineIdentityExtensions.UserIdClaimType);
283 if (string.IsNullOrEmpty(userIdClaim))
284 {
285 return CardHybridUser.Guest;
286 }
287
288 var email = principal.FindFirstValue(ClaimTypes.Email) ?? string.Empty;
289 var name = principal.FindFirstValue(ClaimTypes.Name)
290 ?? principal.FindFirstValue(ClaimTypes.GivenName)
291 ?? string.Empty;
292
293 return new CardHybridUser(
294 Id: $"oauth-{userIdClaim}",
295 Email: email,
296 DisplayName: string.IsNullOrWhiteSpace(name) ? email : name,
297 SignedInAt: DateTime.UtcNow);
298 }
record CardHybridUser(string Id, string Email, string DisplayName, DateTime SignedInAt)

다음을 참조함 : Codemaru.Models.CardHybridUser().

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

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

◆ MarkDirty()

void Codemaru.Services.CardHybridCircuitSession.MarkDirty ( )
inlineprivate

Mark Dirty 작업을 수행합니다.

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

695 {
696 if (_currentUser.IsGuest)
697 {
698 _hasGuestChanges = true;
699 }
700 }

다음을 참조함 : _currentUser, _hasGuestChanges.

다음에 의해서 참조됨 : ClearHistory(), RemoveHistory(), SaveCurrent(), UpdateHistory(), UpdateProfile().

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

◆ NotifyStateChanged()

void Codemaru.Services.CardHybridCircuitSession.NotifyStateChanged ( )
inlineprivate

Notify State Changed 작업을 수행합니다.

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

748 {
749 var handlers = StateChanged?.GetInvocationList();
750 if (handlers is null)
751 return;
752
753 foreach (var handler in handlers)
754 {
755 try { ((EventHandler<CardHybridState>)handler).Invoke(this, _state); }
756 catch (Exception ex) { Debug.WriteLine($"CardHybridCircuitSession handler failed: {ex}"); }
757 }
758 }

다음을 참조함 : _state, StateChanged.

다음에 의해서 참조됨 : ApplyUserAsync(), ClearHistory(), ImportSnapshot(), RemoveHistory(), ReplaceUserSnapshotAsync(), SaveCurrent(), UpdateHistory(), UpdateProfile().

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

◆ PersistCurrent()

void Codemaru.Services.CardHybridCircuitSession.PersistCurrent ( )
inlineprivate

Persist Current 작업을 수행합니다.

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

711 {
712 if (_currentUser.IsGuest)
713 {
714 return;
715 }
716
717 var snapshot = new CardHybridSnapshot(
718 _currentUser.Id, _state.Profile, _history.ToArray(), DateTime.Now);
719 var userId = _currentUser.Id;
720
721 _ = Task.Run(async () =>
722 {
723 await _saveLock.WaitAsync().ConfigureAwait(false);
724 try
725 {
726 await _store.SaveAsync(userId, snapshot).ConfigureAwait(false);
727 }
728 catch (Exception ex)
729 {
730 Debug.WriteLine($"CardHybridCircuitSession save failed: {ex}");
731 }
732 finally
733 {
734 _saveLock.Release();
735 }
736 });
737 }
record CardHybridSnapshot(string? UserId, CardProfile Profile, IReadOnlyList< CardHistoryEntry > History, DateTime SavedAt)

다음을 참조함 : _currentUser, _history, _saveLock, _state, _store, Codemaru.Models.CardHybridSnapshot().

다음에 의해서 참조됨 : ClearHistory(), RemoveHistory(), SaveCurrent(), UpdateHistory(), UpdateProfile().

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

◆ RemoveHistory()

bool Codemaru.Services.CardHybridCircuitSession.RemoveHistory ( Guid id)
inline

History 항목을 제거합니다.

매개변수
idid에 사용할 Guid 값입니다.
반환값
Remove History 조건이 충족되면 true이고, 그렇지 않으면 false입니다.

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

647 {
648 var index = _history.FindIndex(e => e.Id == id);
649 if (index < 0)
650 return false;
651
652 _history.RemoveAt(index);
653 _state = _state with { History = _history.ToArray() };
654 MarkDirty();
655 PersistCurrent();
656 NotifyStateChanged();
657 return true;
658 }

다음을 참조함 : _history, _state, MarkDirty(), NotifyStateChanged(), PersistCurrent().

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

◆ ReplaceUserSnapshotAsync()

async Task Codemaru.Services.CardHybridCircuitSession.ReplaceUserSnapshotAsync ( CardHybridSnapshot snapshot,
CancellationToken cancellationToken = default )
inline

외부(예: 브라우저 localStorage) 에서 복구한 스냅샷을 현재 사용자의 저장 스냅샷으로 대체합니다.

매개변수
snapshotsnapshot에 사용할 CardHybridSnapshot 값입니다.
cancellationToken취소 요청을 감시하는 토큰입니다.
반환값
Replace User Snapshot Async 작업에서 생성한 Task 결과입니다.
예외
InvalidOperationException현재 객체 상태에서 Replace User Snapshot Async 작업을 수행할 수 없는 경우 발생합니다.

Guest 상태에서 편집한 내용을 로그인 후 사용자 계정으로 이관할 때 사용합니다. 사용자가 이미 저장한 스냅샷이 있으면 그 스냅샷은 이 호출로 덮어써집니다.

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

392 {
393 ArgumentNullException.ThrowIfNull(snapshot);
394
395 if (_currentUser.IsGuest)
396 {
397 throw new InvalidOperationException("Cannot replace snapshot for guest user.");
398 }
399
400 var withUserId = snapshot with { UserId = _currentUser.Id };
401 LoadSnapshot(withUserId);
402 _hasGuestChanges = false;
403
404 await _store.SaveAsync(_currentUser.Id, withUserId, cancellationToken).ConfigureAwait(false);
405 NotifyStateChanged();
406 }

다음을 참조함 : _currentUser, _hasGuestChanges, _store, Codemaru.Models.CardHybridSnapshot(), LoadSnapshot(), NotifyStateChanged().

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

◆ SaveCurrent()

CardHistoryEntry Codemaru.Services.CardHybridCircuitSession.SaveCurrent ( )
inline

Current 데이터를 저장합니다.

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

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

510 {
511 var entry = new CardHistoryEntry(
512 Id: Guid.NewGuid(),
513 Profile: _state.Profile,
514 LandingUrl: _state.Profile.LandingUrl,
515 QrPayload: _state.QrPayload,
516 CreatedAt: DateTime.Now);
517
518 _history.Insert(0, entry);
519 _state = _state with { History = _history.ToArray(), LastUpdated = DateTime.Now };
520 MarkDirty();
521 PersistCurrent();
522 NotifyStateChanged();
523 return entry;
524 }

다음을 참조함 : _history, _state, Codemaru.Models.CardHistoryEntry(), MarkDirty(), NotifyStateChanged(), PersistCurrent().

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

◆ UpdateHistory()

CardHistoryEntry? Codemaru.Services.CardHybridCircuitSession.UpdateHistory ( Guid id,
CardProfile profile )
inline

Update History 작업을 수행합니다.

매개변수
idid에 사용할 Guid 값입니다.
profileprofile에 사용할 CardProfile 값입니다.
반환값
Update History 작업에서 생성한 CardHistoryEntry? 결과입니다.

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

559 {
560 var index = _history.FindIndex(e => e.Id == id);
561 if (index < 0)
562 return null;
563
564 var payload = profile.LandingUrl;
565 var entry = _history[index] with
566 {
567 Profile = profile,
568 LandingUrl = payload,
569 QrPayload = payload,
570 CreatedAt = DateTime.Now
571 };
572 _history[index] = entry;
573 _state = _state with
574 {
575 Profile = profile,
576 QrPayload = payload,
577 QrSvg = _qr.CreateSvg(payload),
578 History = _history.ToArray(),
579 LastUpdated = DateTime.Now
580 };
581 MarkDirty();
582 PersistCurrent();
583 NotifyStateChanged();
584 return entry;
585 }

다음을 참조함 : _history, _qr, _state, Codemaru.Models.CardHistoryEntry(), Codemaru.Models.CardProfile(), MarkDirty(), NotifyStateChanged(), PersistCurrent().

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

◆ UpdateProfile()

void Codemaru.Services.CardHybridCircuitSession.UpdateProfile ( CardProfile profile)
inline

Update Profile 작업을 수행합니다.

매개변수
profileprofile에 사용할 CardProfile 값입니다.

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

479 {
480 var payload = profile.LandingUrl;
481 _state = _state with
482 {
483 Profile = profile,
484 QrPayload = payload,
485 QrSvg = _qr.CreateSvg(payload),
486 LastUpdated = DateTime.Now
487 };
488 MarkDirty();
489 PersistCurrent();
490 NotifyStateChanged();
491 }

다음을 참조함 : _qr, _state, Codemaru.Models.CardProfile(), MarkDirty(), NotifyStateChanged(), PersistCurrent().

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

멤버 데이터 문서화

◆ _authProvider

readonly? AuthenticationStateProvider Codemaru.Services.CardHybridCircuitSession._authProvider
private

auth Provider 값을 보관합니다.

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

다음에 의해서 참조됨 : CardHybridCircuitSession(), EnsureInitializedAsync().

◆ _currentUser

CardHybridUser Codemaru.Services.CardHybridCircuitSession._currentUser = CardHybridUser.Guest
private

current User 값을 보관합니다.

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

다음에 의해서 참조됨 : ApplyUserAsync(), CaptureCurrentSnapshot(), ImportSnapshot(), MarkDirty(), PersistCurrent(), ReplaceUserSnapshotAsync().

◆ _hasGuestChanges

bool Codemaru.Services.CardHybridCircuitSession._hasGuestChanges
private

has Guest Changes 값을 보관합니다.

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

다음에 의해서 참조됨 : ApplyUserAsync(), ImportSnapshot(), MarkDirty(), ReplaceUserSnapshotAsync().

◆ _history

readonly List<CardHistoryEntry> Codemaru.Services.CardHybridCircuitSession._history = new()
private

history 값을 보관합니다.

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

다음에 의해서 참조됨 : CaptureCurrentSnapshot(), ClearHistory(), LoadSnapshot(), PersistCurrent(), RemoveHistory(), SaveCurrent(), UpdateHistory().

◆ _initialized

bool Codemaru.Services.CardHybridCircuitSession._initialized
private

initialized 값을 보관합니다.

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

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

◆ _qr

readonly IQrSvgGenerator Codemaru.Services.CardHybridCircuitSession._qr
private

qr 값을 보관합니다.

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

다음에 의해서 참조됨 : CardHybridCircuitSession(), LoadSnapshot(), UpdateHistory(), UpdateProfile().

◆ _saveLock

readonly SemaphoreSlim Codemaru.Services.CardHybridCircuitSession._saveLock = new(1, 1)
private

save Lock 값을 보관합니다.

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

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

◆ _state

CardHybridState Codemaru.Services.CardHybridCircuitSession._state
private

state 값을 보관합니다.

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

다음에 의해서 참조됨 : CaptureCurrentSnapshot(), CardHybridCircuitSession(), ClearHistory(), LoadSnapshot(), NotifyStateChanged(), PersistCurrent(), RemoveHistory(), SaveCurrent(), UpdateHistory(), UpdateProfile().

◆ _store

readonly ICardProfileStore Codemaru.Services.CardHybridCircuitSession._store
private

store 값을 보관합니다.

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

다음에 의해서 참조됨 : ApplyUserAsync(), CardHybridCircuitSession(), PersistCurrent(), ReplaceUserSnapshotAsync().

속성 문서화

◆ CurrentUser

CardHybridUser Codemaru.Services.CardHybridCircuitSession.CurrentUser
get

Current User 값을 가져옵니다.

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

◆ HasGuestChanges

bool Codemaru.Services.CardHybridCircuitSession.HasGuestChanges
get

Guest 상태에서 이번 서킷 안에 편집이 있었는지 여부입니다.

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

◆ State

CardHybridState Codemaru.Services.CardHybridCircuitSession.State
get

State 값을 가져옵니다.

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

이벤트 문서화

◆ StateChanged

EventHandler<CardHybridState>? Codemaru.Services.CardHybridCircuitSession.StateChanged

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

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

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


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