Codemaru
1.0.0.0
QR 코드, 모바일 랜딩 페이지, vCard 연락처 저장과 명함 디자인을 한 화면에서 제공하는 디지털 명함 서비스입니다.
Toggle main menu visibility
로딩중...
검색중...
일치하는것 없음
CertificateSettingsWriter.cs
이 파일의 문서화 페이지로 가기
1
using
Codemaru.Options
;
2
using
System.IO;
3
using
System.Text.Json;
4
using
System.Text.Json.Nodes;
5
6
namespace
Codemaru.Services.Certificates
;
7
16
public
sealed
class
CertificateSettingsWriter
:
ICertificateSettingsWriter
17
{
26
private
readonly
string
_settingsPath
;
27
36
public
CertificateSettingsWriter
()
37
{
38
_settingsPath
= Path.Combine(AppContext.BaseDirectory,
"appsettings.local.json"
);
39
}
40
73
public
async Task
SaveAsync
(
CertificateMonitorOptions
options, CancellationToken cancellationToken)
74
{
75
ArgumentNullException.ThrowIfNull(options);
76
77
JsonObject root = await
LoadRootAsync
(cancellationToken).ConfigureAwait(
false
);
78
JsonArray patterns = [];
79
foreach
(
string
pattern
in
options.CertificateFilePatterns)
80
{
81
patterns.Add(pattern);
82
}
83
84
root[
"CertificateMonitor"
] =
new
JsonObject
85
{
86
[
"CertificateDirectory"
] = options.CertificateDirectory,
87
[
"CertificateFilePatterns"
] = patterns,
88
[
"PfxPassword"
] = options.PfxPassword,
89
[
"WacsPath"
] = options.WacsPath,
90
[
"NginxPath"
] = options.NginxPath,
91
[
"NginxWorkingDirectory"
] = options.NginxWorkingDirectory,
92
[
"NginxReloadArguments"
] = options.NginxReloadArguments,
93
[
"WarningDays"
] = options.WarningDays,
94
[
"CriticalDays"
] = options.CriticalDays,
95
[
"MaxCommandOutputChars"
] = options.MaxCommandOutputChars
96
};
97
98
JsonSerializerOptions serializerOptions =
new
() { WriteIndented =
true
};
99
string
json = root.ToJsonString(serializerOptions);
100
await File.WriteAllTextAsync(
_settingsPath
, json, cancellationToken).ConfigureAwait(
false
);
101
}
102
127
private
async Task<JsonObject>
LoadRootAsync
(CancellationToken cancellationToken)
128
{
129
if
(!File.Exists(
_settingsPath
))
130
{
131
return
[];
132
}
133
134
string
json = await File.ReadAllTextAsync(
_settingsPath
, cancellationToken).ConfigureAwait(
false
);
135
if
(
string
.IsNullOrWhiteSpace(json))
136
{
137
return
[];
138
}
139
140
JsonNode? node = JsonNode.Parse(json);
141
return
node as JsonObject ?? [];
142
}
143
}
Codemaru.Options
Definition
CertificateMonitorOptions.cs:1
Codemaru.Services.Certificates
Definition
CertificateSettingsWriter.cs:6
Codemaru.Options.CertificateMonitorOptions
Definition
CertificateMonitorOptions.cs:12
Codemaru.Services.Certificates.CertificateSettingsWriter.SaveAsync
async Task SaveAsync(CertificateMonitorOptions options, CancellationToken cancellationToken)
Definition
CertificateSettingsWriter.cs:73
Codemaru.Services.Certificates.CertificateSettingsWriter.CertificateSettingsWriter
CertificateSettingsWriter()
Definition
CertificateSettingsWriter.cs:36
Codemaru.Services.Certificates.CertificateSettingsWriter._settingsPath
readonly string _settingsPath
Definition
CertificateSettingsWriter.cs:26
Codemaru.Services.Certificates.CertificateSettingsWriter.LoadRootAsync
async Task< JsonObject > LoadRootAsync(CancellationToken cancellationToken)
Definition
CertificateSettingsWriter.cs:127
Codemaru.Services.Certificates.ICertificateSettingsWriter
Definition
ICertificateSettingsWriter.cs:14
Services
Certificates
CertificateSettingsWriter.cs
다음에 의해 생성됨 :
1.17.0