Skip to content

Commit c4b74b4

Browse files
committed
Cleanup code
1 parent a931868 commit c4b74b4

File tree

1 file changed

+28
-22
lines changed

1 file changed

+28
-22
lines changed

src/Nager.EmailAuthentication/DmarcRecordParser.cs

+28-22
Original file line numberDiff line numberDiff line change
@@ -125,44 +125,50 @@ public static bool TryParse(
125125

126126
if (!string.IsNullOrEmpty(dmarcDataFragment.AggregateReportUri))
127127
{
128-
var parts = dmarcDataFragment.AggregateReportUri.Split(',', StringSplitOptions.TrimEntries);
129-
130-
var emailDetails = new List<DmarcEmailDetail>();
131-
foreach (var part in parts)
128+
if (!TryParseEmailDetails(dmarcDataFragment.AggregateReportUri, out var dmarcEmailDetails))
132129
{
133-
if (!DmarcEmailDetail.TryParse(part, out var dmarcEmailDetail))
134-
{
135-
return false;
136-
}
137-
138-
emailDetails.Add(dmarcEmailDetail);
130+
return false;
139131
}
140132

141-
tempDmarcRecord.AggregateReportUri = [.. emailDetails];
133+
tempDmarcRecord.AggregateReportUri = dmarcEmailDetails;
142134
}
143135

144136
if (!string.IsNullOrEmpty(dmarcDataFragment.ForensicReportUri))
145137
{
146-
var parts = dmarcDataFragment.ForensicReportUri.Split(',', StringSplitOptions.TrimEntries);
147-
148-
var emailDetails = new List<DmarcEmailDetail>();
149-
foreach (var part in parts)
138+
if (!TryParseEmailDetails(dmarcDataFragment.ForensicReportUri, out var dmarcEmailDetails))
150139
{
151-
if (!DmarcEmailDetail.TryParse(part, out var dmarcEmailDetail))
152-
{
153-
return false;
154-
}
155-
156-
emailDetails.Add(dmarcEmailDetail);
140+
return false;
157141
}
158142

159-
tempDmarcRecord.ForensicReportUri = [.. emailDetails];
143+
tempDmarcRecord.ForensicReportUri = dmarcEmailDetails;
160144
}
161145

162146
dmarcRecord = tempDmarcRecord;
163147
return true;
164148
}
165149

150+
private static bool TryParseEmailDetails(
151+
string input,
152+
[NotNullWhen(true)] out DmarcEmailDetail[]? dmarcEmailDetails)
153+
{
154+
var parts = input.Split(',', StringSplitOptions.TrimEntries);
155+
var details = new List<DmarcEmailDetail>();
156+
157+
foreach (var part in parts)
158+
{
159+
if (!DmarcEmailDetail.TryParse(part, out var emailDetail))
160+
{
161+
dmarcEmailDetails = null;
162+
return false;
163+
}
164+
165+
details.Add(emailDetail);
166+
}
167+
168+
dmarcEmailDetails = [.. details];
169+
return true;
170+
}
171+
166172
private static bool TryGetAlignmentMode(
167173
string? input,
168174
[NotNullWhen(true)] out AlignmentMode? alignmentMode)

0 commit comments

Comments
 (0)