Dreamine.Web
1.0.0.0
WPF와 Blazor를 한 코드 흐름으로 연결하고 반복적인 MVVM 코드를 줄이는 오픈소스 FullKit 공식 웹 애플리케이션입니다.
Toggle main menu visibility
로딩중...
검색중...
일치하는것 없음
SiteSettingsService.cs
이 파일의 문서화 페이지로 가기
1
using
System.IO;
2
using
System.Text.Json;
3
using
DreamineWeb.Models
;
4
5
namespace
DreamineWeb.Services
;
6
15
public
class
SiteSettingsService
16
{
25
private
SiteSettings
_settings
;
34
private
readonly
string
_filePath
;
35
44
private
static
readonly JsonSerializerOptions
_json
=
new
() { WriteIndented =
true
};
45
54
public
SiteSettings
Current
=>
_settings
;
55
72
public
SiteSettingsService
(
DreamineOptions
opts)
73
{
74
_filePath
= Path.Combine(opts.
ResolvedDataPath
,
"site_settings.json"
);
75
76
var defaults =
DefaultFrom
(opts);
77
if
(File.Exists(
_filePath
))
78
{
79
try
80
{
81
var loaded = JsonSerializer.Deserialize<
SiteSettings
>(File.ReadAllText(
_filePath
));
82
if
(loaded is
null
)
83
{
84
_settings
= defaults;
85
}
86
else
87
{
88
// 저장된 파일에 없는 필드는 기본값으로 채움
89
loaded.OgImageUrl =
string
.IsNullOrEmpty(loaded.OgImageUrl) ? defaults.OgImageUrl : loaded.OgImageUrl;
90
loaded.OgSiteName =
string
.IsNullOrEmpty(loaded.OgSiteName) ? defaults.OgSiteName : loaded.OgSiteName;
91
loaded.OgUrl =
string
.IsNullOrEmpty(loaded.OgUrl) ? defaults.OgUrl : loaded.OgUrl;
92
loaded.TwitterCard =
string
.IsNullOrEmpty(loaded.TwitterCard) ? defaults.TwitterCard : loaded.TwitterCard;
93
_settings
= loaded;
94
}
95
}
96
catch
{
_settings
= defaults; }
97
}
98
else
99
{
100
_settings
= defaults;
101
}
102
}
103
128
public
async Task
SaveAsync
(
SiteSettings
settings)
129
{
130
_settings
= settings;
131
Directory.CreateDirectory(Path.GetDirectoryName(
_filePath
)!);
132
await File.WriteAllTextAsync(
_filePath
, JsonSerializer.Serialize(settings,
_json
));
133
}
134
159
private
static
SiteSettings
DefaultFrom
(
DreamineOptions
opts) =>
new
()
160
{
161
Title = opts.
SiteTitle
,
162
Description = opts.
SiteDescription
,
163
IconUrl =
string
.Empty,
164
GitHubUrl = opts.GitHubOrgUrl
165
};
166
}
DreamineWeb.Models
Definition
DocMember.cs:1
DreamineWeb.Services
Definition
AdminAuthService.cs:6
DreamineWeb.Models.DreamineOptions
Definition
DreamineOptions.cs:14
DreamineWeb.Models.DreamineOptions.SiteDescription
string SiteDescription
Definition
DreamineOptions.cs:50
DreamineWeb.Models.DreamineOptions.ResolvedDataPath
string ResolvedDataPath
Definition
DreamineOptions.cs:79
DreamineWeb.Models.DreamineOptions.SiteTitle
string SiteTitle
Definition
DreamineOptions.cs:41
DreamineWeb.Models.SiteSettings
Definition
SiteSettings.cs:12
DreamineWeb.Services.SiteSettingsService._json
static readonly JsonSerializerOptions _json
Definition
SiteSettingsService.cs:44
DreamineWeb.Services.SiteSettingsService.DefaultFrom
static SiteSettings DefaultFrom(DreamineOptions opts)
Definition
SiteSettingsService.cs:159
DreamineWeb.Services.SiteSettingsService.SiteSettingsService
SiteSettingsService(DreamineOptions opts)
Definition
SiteSettingsService.cs:72
DreamineWeb.Services.SiteSettingsService._filePath
readonly string _filePath
Definition
SiteSettingsService.cs:34
DreamineWeb.Services.SiteSettingsService.Current
SiteSettings Current
Definition
SiteSettingsService.cs:54
DreamineWeb.Services.SiteSettingsService._settings
SiteSettings _settings
Definition
SiteSettingsService.cs:25
DreamineWeb.Services.SiteSettingsService.SaveAsync
async Task SaveAsync(SiteSettings settings)
Definition
SiteSettingsService.cs:128
Services
SiteSettingsService.cs
다음에 의해 생성됨 :
1.17.0