WeddingPlatform.Web
1.0.0.0
지도, 갤러리, 방명록, 계좌 안내와 배경음악을 링크 하나에 담는 무료 모바일 청첩장 서비스입니다.
Toggle main menu visibility
로딩중...
검색중...
일치하는것 없음
WeddingGuestbookViewModel.cs
이 파일의 문서화 페이지로 가기
1
using
WeddingPlatform.Models
;
2
using
WeddingPlatform.Services
;
3
4
namespace
WeddingPlatform.ViewModels
;
5
14
public
sealed
class
WeddingGuestbookViewModel
15
{
24
private
readonly
IGuestbookStorage
_storage
;
33
private
List<GuestbookEntry>
_entries
=
new
();
34
51
public
WeddingGuestbookViewModel
(
IGuestbookStorage
storage) =>
_storage
= storage;
52
61
public
string
Name
{
get
;
set
; } =
""
;
70
public
string
Contact
{
get
;
set
; } =
""
;
79
public
string
Message
{
get
;
set
; } =
""
;
80
89
private
static
readonly
string
[]
DefaultMessages
=
90
[
91
"💖 두 분의 앞날에 사랑과 행복이 가득하시길 바랍니다 ✨"
,
92
"🎉 결혼을 진심으로 축하드립니다! 영원히 함께하세요 💍"
,
93
"🌸 오늘의 약속이 평생의 기쁨으로 이어지길 바랍니다 💕"
,
94
"🕊️ 늘 서로를 아끼고 존중하며 행복한 가정을 꾸리시길 🙏"
,
95
"🌈 두 분의 미래가 언제나 밝고 빛나길 바랍니다 ✨"
96
];
97
106
public
void
ApplyDefaultMessage
()
107
{
108
if
(
string
.IsNullOrEmpty(
Message
))
109
Message
=
DefaultMessages
[Random.Shared.Next(
DefaultMessages
.Length)];
110
}
111
119
public
string
LastStatus
{
get
;
private
set
; } =
""
;
128
public
bool
IsSaving
{
get
;
private
set
; }
129
138
public
IReadOnlyList<GuestbookEntryView>
EntriesView
=>
139
_entries
.OrderByDescending(e => e.CreatedLocal)
140
.Select(e =>
new
GuestbookEntryView
{
Name
= e.Name,
Message
= e.Message, CreatedLocal = e.CreatedLocal })
141
.ToList();
142
175
public
async Task
InitializeAsync
(
string
slug, CancellationToken ct =
default
)
176
{
177
try
178
{
179
var list = await
_storage
.LoadAsync(slug, ct).ConfigureAwait(
false
);
180
_entries
= list.ToList();
181
LastStatus
=
""
;
182
}
183
catch
{
LastStatus
=
"방명록 데이터를 불러오는 중 오류가 발생했어요."
; }
184
}
185
218
public
async Task
AddEntryAsync
(
string
slug, CancellationToken ct =
default
)
219
{
220
if
(
IsSaving
)
return
;
221
if
(
string
.IsNullOrWhiteSpace(
Name
)) {
LastStatus
=
"이름을 입력해주세요."
;
return
; }
222
if
(
string
.IsNullOrWhiteSpace(
Message
)) {
LastStatus
=
"메시지를 입력해주세요."
;
return
; }
223
224
var entry =
new
GuestbookEntry
225
{
226
Name
=
Name
.Trim(),
227
Contact
=
Contact
.Trim(),
228
Message
=
Message
.Trim(),
229
CreatedLocal = DateTime.Now
230
};
231
232
IsSaving
=
true
;
233
try
234
{
235
var updated =
new
List<GuestbookEntry> { entry };
236
updated.AddRange(
_entries
);
237
await
_storage
.SaveAsync(slug, updated, ct).ConfigureAwait(
false
);
238
_entries
= updated;
239
Name
=
""
;
Contact
=
""
;
Message
=
""
;
240
LastStatus
=
"저장되었습니다. 감사합니다 🙏"
;
241
}
242
catch
{
LastStatus
=
"저장 중 오류가 발생했어요."
; }
243
finally
{
IsSaving
=
false
; }
244
}
245
278
public
async Task
ReloadAsync
(
string
slug, CancellationToken ct =
default
)
279
{
280
try
281
{
282
var list = await
_storage
.LoadAsync(slug, ct).ConfigureAwait(
false
);
283
_entries
= list.ToList();
284
LastStatus
=
"새로고침 완료"
;
285
}
286
catch
{
LastStatus
=
"새로고침 중 오류가 발생했어요."
; }
287
}
288
}
WeddingPlatform.Models
Definition
AccountInfo.cs:1
WeddingPlatform.Services
Definition
CsvGuestbookStorage.cs:6
WeddingPlatform.ViewModels
Definition
WeddingAdminViewModel.cs:10
WeddingPlatform.Models.GuestbookEntry
Definition
GuestbookEntry.cs:12
WeddingPlatform.Models.GuestbookEntryView
Definition
GuestbookEntry.cs:60
WeddingPlatform.Services.IGuestbookStorage
Definition
IGuestbookStorage.cs:14
WeddingPlatform.ViewModels.WeddingGuestbookViewModel.DefaultMessages
static readonly string[] DefaultMessages
Definition
WeddingGuestbookViewModel.cs:89
WeddingPlatform.ViewModels.WeddingGuestbookViewModel.IsSaving
bool IsSaving
Definition
WeddingGuestbookViewModel.cs:128
WeddingPlatform.ViewModels.WeddingGuestbookViewModel.AddEntryAsync
async Task AddEntryAsync(string slug, CancellationToken ct=default)
Definition
WeddingGuestbookViewModel.cs:218
WeddingPlatform.ViewModels.WeddingGuestbookViewModel._entries
List< GuestbookEntry > _entries
Definition
WeddingGuestbookViewModel.cs:33
WeddingPlatform.ViewModels.WeddingGuestbookViewModel.ApplyDefaultMessage
void ApplyDefaultMessage()
Definition
WeddingGuestbookViewModel.cs:106
WeddingPlatform.ViewModels.WeddingGuestbookViewModel.WeddingGuestbookViewModel
WeddingGuestbookViewModel(IGuestbookStorage storage)
Definition
WeddingGuestbookViewModel.cs:51
WeddingPlatform.ViewModels.WeddingGuestbookViewModel.Contact
string Contact
Definition
WeddingGuestbookViewModel.cs:70
WeddingPlatform.ViewModels.WeddingGuestbookViewModel.Message
string Message
Definition
WeddingGuestbookViewModel.cs:79
WeddingPlatform.ViewModels.WeddingGuestbookViewModel._storage
readonly IGuestbookStorage _storage
Definition
WeddingGuestbookViewModel.cs:24
WeddingPlatform.ViewModels.WeddingGuestbookViewModel.Name
string Name
Definition
WeddingGuestbookViewModel.cs:61
WeddingPlatform.ViewModels.WeddingGuestbookViewModel.LastStatus
string LastStatus
Definition
WeddingGuestbookViewModel.cs:119
WeddingPlatform.ViewModels.WeddingGuestbookViewModel.ReloadAsync
async Task ReloadAsync(string slug, CancellationToken ct=default)
Definition
WeddingGuestbookViewModel.cs:278
WeddingPlatform.ViewModels.WeddingGuestbookViewModel.EntriesView
IReadOnlyList< GuestbookEntryView > EntriesView
Definition
WeddingGuestbookViewModel.cs:138
WeddingPlatform.ViewModels.WeddingGuestbookViewModel.InitializeAsync
async Task InitializeAsync(string slug, CancellationToken ct=default)
Definition
WeddingGuestbookViewModel.cs:175
ViewModels
WeddingGuestbookViewModel.cs
다음에 의해 생성됨 :
1.17.0