|
Codemaru 1.0.0.0
QR 코드, 모바일 랜딩 페이지, vCard 연락처 저장과 명함 디자인을 한 화면에서 제공하는 디지털 명함 서비스입니다.
|


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 () |
| CardHistoryEntry? | UpdateHistory (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 번째 라인에서 정의되었습니다.
|
inline |
지정한 설정으로 CardHybridCircuitSession 클래스의 새 인스턴스를 초기화합니다.
| qr | qr에 사용할 IQrSvgGenerator 값입니다. |
| store | store에 사용할 ICardProfileStore 값입니다. |
| authProvider | auth Provider에 사용할 AuthenticationStateProvider? 값입니다. |
| ArgumentNullException | 필수 입력 인자 중 하나가 null인 경우 발생합니다. |
CardHybridCircuitSession.cs 파일의 151 번째 라인에서 정의되었습니다.
다음을 참조함 : _authProvider, _qr, _state, _store, Codemaru.Models.CardProfile().

|
inline |
인증 결과로 얻은 사용자를 세션에 반영하고 저장된 스냅샷을 로드합니다.
| user | 세션에 반영할 사용자 (CardHybridUser.Guest 가능). |
| cancellationToken | 취소 토큰. |
Task 결과입니다.CardHybridCircuitSession.cs 파일의 332 번째 라인에서 정의되었습니다.
다음을 참조함 : _currentUser, _hasGuestChanges, _store, Codemaru.Models.CardHybridUser(), LoadSnapshot(), NotifyStateChanged().
다음에 의해서 참조됨 : EnsureInitializedAsync().


|
inline |
현재 편집 상태를 CardHybridSnapshot 으로 캡처합니다.
CardHybridSnapshot 결과입니다.CardHybridCircuitSession.cs 파일의 424 번째 라인에서 정의되었습니다.
다음을 참조함 : _currentUser, _history, _state, Codemaru.Models.CardHybridSnapshot().

|
inline |
Clear History 작업을 수행합니다.
CardHybridCircuitSession.cs 파일의 613 번째 라인에서 정의되었습니다.
다음을 참조함 : _history, _state, Codemaru.Models.CardHistoryEntry(), MarkDirty(), NotifyStateChanged(), PersistCurrent().

|
inline |
이 인스턴스가 소유한 리소스를 해제합니다.
CardHybridCircuitSession.cs 파일의 768 번째 라인에서 정의되었습니다.
다음을 참조함 : _saveLock.
|
inline |
서킷 첫 사용 시 인증 상태를 읽어 사용자를 반영합니다.
| cancellationToken | 취소 요청을 감시하는 토큰입니다. |
Task 결과입니다.Blazor Server 의 쿠키 기반 인증은 서킷 생성 시점에 확정되므로 그 이후엔 다시 조회할 필요가 없습니다. 페이지 OnInitializedAsync 에서 호출합니다.
CardHybridCircuitSession.cs 파일의 233 번째 라인에서 정의되었습니다.
다음을 참조함 : _authProvider, _initialized, ApplyUserAsync(), MapPrincipalToUser().

|
inline |
외부 스냅샷을 세션 메모리에 로드합니다 (저장하지 않음).
| snapshot | snapshot에 사용할 CardHybridSnapshot 값입니다. |
브라우저 localStorage 에서 Guest 상태를 복구할 때 사용합니다. Guest 세션이면 HasGuestChanges 를 참으로 설정합니다.
CardHybridCircuitSession.cs 파일의 451 번째 라인에서 정의되었습니다.
다음을 참조함 : _currentUser, _hasGuestChanges, Codemaru.Models.CardHybridSnapshot(), LoadSnapshot(), NotifyStateChanged().

|
inline |
History 데이터를 불러옵니다.
| entry | entry에 사용할 CardHistoryEntry 값입니다. |
CardHybridCircuitSession.cs 파일의 603 번째 라인에서 정의되었습니다.
다음을 참조함 : Codemaru.Models.CardHistoryEntry().

|
inlineprivate |
Snapshot 데이터를 불러옵니다.
| snapshot | snapshot에 사용할 CardHybridSnapshot? 값입니다. |
CardHybridCircuitSession.cs 파일의 676 번째 라인에서 정의되었습니다.
다음을 참조함 : _history, _qr, _state, Codemaru.Models.CardHybridSnapshot(), Codemaru.Models.CardProfile().
다음에 의해서 참조됨 : ApplyUserAsync(), ImportSnapshot(), ReplaceUserSnapshotAsync().


|
inlinestaticprivate |
Map Principal To User 작업을 수행합니다.
| principal | principal에 사용할 ClaimsPrincipal 값입니다. |
CardHybridUser 결과입니다.CardHybridCircuitSession.cs 파일의 275 번째 라인에서 정의되었습니다.
다음을 참조함 : Codemaru.Models.CardHybridUser().
다음에 의해서 참조됨 : EnsureInitializedAsync().


|
inlineprivate |
Mark Dirty 작업을 수행합니다.
CardHybridCircuitSession.cs 파일의 694 번째 라인에서 정의되었습니다.
다음을 참조함 : _currentUser, _hasGuestChanges.
다음에 의해서 참조됨 : ClearHistory(), RemoveHistory(), SaveCurrent(), UpdateHistory(), UpdateProfile().

|
inlineprivate |
Notify State Changed 작업을 수행합니다.
CardHybridCircuitSession.cs 파일의 747 번째 라인에서 정의되었습니다.
다음을 참조함 : _state, StateChanged.
다음에 의해서 참조됨 : ApplyUserAsync(), ClearHistory(), ImportSnapshot(), RemoveHistory(), ReplaceUserSnapshotAsync(), SaveCurrent(), UpdateHistory(), UpdateProfile().

|
inlineprivate |
Persist Current 작업을 수행합니다.
CardHybridCircuitSession.cs 파일의 710 번째 라인에서 정의되었습니다.
다음을 참조함 : _currentUser, _history, _saveLock, _state, _store, Codemaru.Models.CardHybridSnapshot().
다음에 의해서 참조됨 : ClearHistory(), RemoveHistory(), SaveCurrent(), UpdateHistory(), UpdateProfile().


|
inline |
History 항목을 제거합니다.
| id | id에 사용할 Guid 값입니다. |
true이고, 그렇지 않으면 false입니다.CardHybridCircuitSession.cs 파일의 646 번째 라인에서 정의되었습니다.
다음을 참조함 : _history, _state, MarkDirty(), NotifyStateChanged(), PersistCurrent().

|
inline |
외부(예: 브라우저 localStorage) 에서 복구한 스냅샷을 현재 사용자의 저장 스냅샷으로 대체합니다.
| snapshot | snapshot에 사용할 CardHybridSnapshot 값입니다. |
| cancellationToken | 취소 요청을 감시하는 토큰입니다. |
Task 결과입니다.| InvalidOperationException | 현재 객체 상태에서 Replace User Snapshot Async 작업을 수행할 수 없는 경우 발생합니다. |
Guest 상태에서 편집한 내용을 로그인 후 사용자 계정으로 이관할 때 사용합니다. 사용자가 이미 저장한 스냅샷이 있으면 그 스냅샷은 이 호출로 덮어써집니다.
CardHybridCircuitSession.cs 파일의 391 번째 라인에서 정의되었습니다.
다음을 참조함 : _currentUser, _hasGuestChanges, _store, Codemaru.Models.CardHybridSnapshot(), LoadSnapshot(), NotifyStateChanged().

|
inline |
Current 데이터를 저장합니다.
CardHistoryEntry 결과입니다.CardHybridCircuitSession.cs 파일의 509 번째 라인에서 정의되었습니다.
다음을 참조함 : _history, _state, Codemaru.Models.CardHistoryEntry(), MarkDirty(), NotifyStateChanged(), PersistCurrent().

|
inline |
Update History 작업을 수행합니다.
| id | id에 사용할 Guid 값입니다. |
| profile | profile에 사용할 CardProfile 값입니다. |
CardHistoryEntry? 결과입니다.CardHybridCircuitSession.cs 파일의 558 번째 라인에서 정의되었습니다.
다음을 참조함 : _history, _qr, _state, Codemaru.Models.CardHistoryEntry(), Codemaru.Models.CardProfile(), MarkDirty(), NotifyStateChanged(), PersistCurrent().

|
inline |
Update Profile 작업을 수행합니다.
| profile | profile에 사용할 CardProfile 값입니다. |
CardHybridCircuitSession.cs 파일의 478 번째 라인에서 정의되었습니다.
다음을 참조함 : _qr, _state, Codemaru.Models.CardProfile(), MarkDirty(), NotifyStateChanged(), PersistCurrent().

|
private |
auth Provider 값을 보관합니다.
CardHybridCircuitSession.cs 파일의 72 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : CardHybridCircuitSession(), EnsureInitializedAsync().
|
private |
current User 값을 보관합니다.
CardHybridCircuitSession.cs 파일의 91 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : ApplyUserAsync(), CaptureCurrentSnapshot(), ImportSnapshot(), MarkDirty(), PersistCurrent(), ReplaceUserSnapshotAsync().
|
private |
has Guest Changes 값을 보관합니다.
CardHybridCircuitSession.cs 파일의 100 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : ApplyUserAsync(), ImportSnapshot(), MarkDirty(), ReplaceUserSnapshotAsync().
|
private |
history 값을 보관합니다.
CardHybridCircuitSession.cs 파일의 45 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : CaptureCurrentSnapshot(), ClearHistory(), LoadSnapshot(), PersistCurrent(), RemoveHistory(), SaveCurrent(), UpdateHistory().
|
private |
initialized 값을 보관합니다.
CardHybridCircuitSession.cs 파일의 109 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : EnsureInitializedAsync().
|
private |
qr 값을 보관합니다.
CardHybridCircuitSession.cs 파일의 54 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : CardHybridCircuitSession(), LoadSnapshot(), UpdateHistory(), UpdateProfile().
|
private |
save Lock 값을 보관합니다.
CardHybridCircuitSession.cs 파일의 36 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : Dispose(), PersistCurrent().
|
private |
state 값을 보관합니다.
CardHybridCircuitSession.cs 파일의 82 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : CaptureCurrentSnapshot(), CardHybridCircuitSession(), ClearHistory(), LoadSnapshot(), NotifyStateChanged(), PersistCurrent(), RemoveHistory(), SaveCurrent(), UpdateHistory(), UpdateProfile().
|
private |
store 값을 보관합니다.
CardHybridCircuitSession.cs 파일의 63 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : ApplyUserAsync(), CardHybridCircuitSession(), PersistCurrent(), ReplaceUserSnapshotAsync().
|
get |
Current User 값을 가져옵니다.
CardHybridCircuitSession.cs 파일의 179 번째 라인에서 정의되었습니다.
|
get |
Guest 상태에서 이번 서킷 안에 편집이 있었는지 여부입니다.
CardHybridCircuitSession.cs 파일의 189 번째 라인에서 정의되었습니다.
|
get |
State 값을 가져옵니다.
CardHybridCircuitSession.cs 파일의 170 번째 라인에서 정의되었습니다.
| EventHandler<CardHybridState>? Codemaru.Services.CardHybridCircuitSession.StateChanged |
State Changed 상황이 발생할 때 알립니다.
CardHybridCircuitSession.cs 파일의 199 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : NotifyStateChanged().