@@ -125,44 +125,50 @@ public static bool TryParse(
125
125
126
126
if ( ! string . IsNullOrEmpty ( dmarcDataFragment . AggregateReportUri ) )
127
127
{
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 ) )
132
129
{
133
- if ( ! DmarcEmailDetail . TryParse ( part , out var dmarcEmailDetail ) )
134
- {
135
- return false ;
136
- }
137
-
138
- emailDetails . Add ( dmarcEmailDetail ) ;
130
+ return false ;
139
131
}
140
132
141
- tempDmarcRecord . AggregateReportUri = [ .. emailDetails ] ;
133
+ tempDmarcRecord . AggregateReportUri = dmarcEmailDetails ;
142
134
}
143
135
144
136
if ( ! string . IsNullOrEmpty ( dmarcDataFragment . ForensicReportUri ) )
145
137
{
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 ) )
150
139
{
151
- if ( ! DmarcEmailDetail . TryParse ( part , out var dmarcEmailDetail ) )
152
- {
153
- return false ;
154
- }
155
-
156
- emailDetails . Add ( dmarcEmailDetail ) ;
140
+ return false ;
157
141
}
158
142
159
- tempDmarcRecord . ForensicReportUri = [ .. emailDetails ] ;
143
+ tempDmarcRecord . ForensicReportUri = dmarcEmailDetails ;
160
144
}
161
145
162
146
dmarcRecord = tempDmarcRecord ;
163
147
return true ;
164
148
}
165
149
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
+
166
172
private static bool TryGetAlignmentMode (
167
173
string ? input ,
168
174
[ NotNullWhen ( true ) ] out AlignmentMode ? alignmentMode )
0 commit comments