@@ -83,9 +83,9 @@ private static void Generate(this OpenXmlElement xmlElement, WordprocessingDocum
8383 var dicKey = $ "{ listKey } .{ e . Key } ";
8484 dic . Add ( dicKey , e . Value ) ;
8585 }
86-
87- ReplaceStatements ( xmlElement , tags ) ;
88-
86+
87+ ReplaceStatements ( newTr , tags : dic ) ;
88+
8989 ReplaceText ( newTr , docx , tags : dic ) ;
9090 table . Append ( newTr ) ;
9191 }
@@ -95,7 +95,7 @@ private static void Generate(this OpenXmlElement xmlElement, WordprocessingDocum
9595 }
9696 }
9797 }
98-
98+
9999 ReplaceStatements ( xmlElement , tags ) ;
100100
101101 ReplaceText ( xmlElement , docx , tags ) ;
@@ -124,10 +124,10 @@ private static void AvoidSplitTagText(OpenXmlElement xmlElement)
124124 // TODO: check tag exist
125125 // TODO: record tag text if without tag then system need to clear them
126126 // TODO: every {{tag}} one <t>for them</t> and add text before first text and copy first one and remove {{, tagname, }}
127-
128- if ( s . StartsWith ( "{{foreach" ) )
127+
128+ if ( s . StartsWith ( "{{foreach" ) )
129129 foreachIncluded = true ;
130-
130+
131131 if ( ! s . StartsWith ( "{{" ) )
132132 clear = true ;
133133 else if ( s . Contains ( "{{" ) && s . Contains ( "}}" ) && ! foreachIncluded )
@@ -161,7 +161,7 @@ private static void AvoidSplitTagText(OpenXmlElement xmlElement)
161161 clear = true ;
162162 foreachIncluded = false ;
163163 }
164-
164+
165165 }
166166
167167 if ( clear )
@@ -218,24 +218,24 @@ private static void ReplaceStatements(OpenXmlElement xmlElement, Dictionary<stri
218218 {
219219 var paragraphs = xmlElement . Descendants < Paragraph > ( ) . ToList ( ) ;
220220
221- while ( paragraphs . Any ( s => s . InnerText . Contains ( "@if" ) ) )
221+ while ( paragraphs . Any ( s => s . InnerText . Contains ( "@if" ) ) )
222222 {
223223 var ifIndex = paragraphs . FindIndex ( 0 , s => s . InnerText . Contains ( "@if" ) ) ;
224224 var endIfFinalIndex = paragraphs . FindIndex ( ifIndex , s => s . InnerText . Contains ( "@endif" ) ) ;
225-
225+
226226 var statement = paragraphs [ ifIndex ] . InnerText . Split ( ' ' ) ;
227227
228228 var tagValue = tags [ statement [ 1 ] ] ;
229229 var checkStatement = statement . Length == 4 ? EvaluateStatement ( tagValue , statement [ 2 ] , statement [ 3 ] ) : ! bool . Parse ( tagValue . ToString ( ) ) ;
230230
231231 if ( checkStatement )
232232 {
233- for ( int i = ifIndex + 1 ; i <= endIfFinalIndex - 1 ; i ++ )
233+ for ( int i = ifIndex + 1 ; i <= endIfFinalIndex - 1 ; i ++ )
234234 {
235235 paragraphs [ i ] . Remove ( ) ;
236236 }
237237 }
238-
238+
239239 paragraphs [ ifIndex ] . Remove ( ) ;
240240 paragraphs [ endIfFinalIndex ] . Remove ( ) ;
241241
@@ -246,105 +246,105 @@ private static void ReplaceStatements(OpenXmlElement xmlElement, Dictionary<stri
246246 private static bool EvaluateStatement ( object tagValue , string comparisonOperator , string value )
247247 {
248248 var checkStatement = false ;
249-
249+
250250 switch ( tagValue )
251- {
252- case double dtg when double . TryParse ( value , out var doubleNumber ) :
253- switch ( comparisonOperator )
254- {
255- case "==" :
256- checkStatement = ! dtg . Equals ( doubleNumber ) ;
257- break ;
258- case "!=" :
259- checkStatement = dtg . Equals ( doubleNumber ) ;
260- break ;
261- case ">" :
262- checkStatement = dtg <= doubleNumber ;
263- break ;
264- case "<" :
265- checkStatement = dtg >= doubleNumber ;
266- break ;
267- case ">=" :
268- checkStatement = dtg < doubleNumber ;
269- break ;
270- case "<=" :
271- checkStatement = dtg > doubleNumber ;
272- break ;
273- }
251+ {
252+ case double dtg when double . TryParse ( value , out var doubleNumber ) :
253+ switch ( comparisonOperator )
254+ {
255+ case "==" :
256+ checkStatement = ! dtg . Equals ( doubleNumber ) ;
257+ break ;
258+ case "!=" :
259+ checkStatement = dtg . Equals ( doubleNumber ) ;
260+ break ;
261+ case ">" :
262+ checkStatement = dtg <= doubleNumber ;
263+ break ;
264+ case "<" :
265+ checkStatement = dtg >= doubleNumber ;
266+ break ;
267+ case ">=" :
268+ checkStatement = dtg < doubleNumber ;
269+ break ;
270+ case "<=" :
271+ checkStatement = dtg > doubleNumber ;
272+ break ;
273+ }
274274
275- break ;
276- case int itg when int . TryParse ( value , out var intNumber ) :
277- switch ( comparisonOperator )
278- {
279- case "==" :
280- checkStatement = ! itg . Equals ( intNumber ) ;
281- break ;
282- case "!=" :
283- checkStatement = itg . Equals ( intNumber ) ;
284- break ;
285- case ">" :
286- checkStatement = itg <= intNumber ;
287- break ;
288- case "<" :
289- checkStatement = itg >= intNumber ;
290- break ;
291- case ">=" :
292- checkStatement = itg < intNumber ;
293- break ;
294- case "<=" :
295- checkStatement = itg > intNumber ;
296- break ;
297- }
275+ break ;
276+ case int itg when int . TryParse ( value , out var intNumber ) :
277+ switch ( comparisonOperator )
278+ {
279+ case "==" :
280+ checkStatement = ! itg . Equals ( intNumber ) ;
281+ break ;
282+ case "!=" :
283+ checkStatement = itg . Equals ( intNumber ) ;
284+ break ;
285+ case ">" :
286+ checkStatement = itg <= intNumber ;
287+ break ;
288+ case "<" :
289+ checkStatement = itg >= intNumber ;
290+ break ;
291+ case ">=" :
292+ checkStatement = itg < intNumber ;
293+ break ;
294+ case "<=" :
295+ checkStatement = itg > intNumber ;
296+ break ;
297+ }
298298
299- break ;
300- case DateTime dttg when DateTime . TryParse ( value , out var date ) :
301- switch ( comparisonOperator )
302- {
303- case "==" :
304- checkStatement = ! dttg . Equals ( date ) ;
305- break ;
306- case "!=" :
307- checkStatement = dttg . Equals ( date ) ;
308- break ;
309- case ">" :
310- checkStatement = dttg <= date ;
311- break ;
312- case "<" :
313- checkStatement = dttg >= date ;
314- break ;
315- case ">=" :
316- checkStatement = dttg < date ;
317- break ;
318- case "<=" :
319- checkStatement = dttg > date ;
320- break ;
321- }
299+ break ;
300+ case DateTime dttg when DateTime . TryParse ( value , out var date ) :
301+ switch ( comparisonOperator )
302+ {
303+ case "==" :
304+ checkStatement = ! dttg . Equals ( date ) ;
305+ break ;
306+ case "!=" :
307+ checkStatement = dttg . Equals ( date ) ;
308+ break ;
309+ case ">" :
310+ checkStatement = dttg <= date ;
311+ break ;
312+ case "<" :
313+ checkStatement = dttg >= date ;
314+ break ;
315+ case ">=" :
316+ checkStatement = dttg < date ;
317+ break ;
318+ case "<=" :
319+ checkStatement = dttg > date ;
320+ break ;
321+ }
322322
323- break ;
324- case bool btg when bool . TryParse ( value , out var boolean ) :
325- switch ( comparisonOperator )
326- {
327- case "==" :
328- checkStatement = btg != boolean ;
329- break ;
330- case "!=" :
331- checkStatement = btg == boolean ;
332- break ;
333- }
334- break ;
335- case string stg :
336- switch ( comparisonOperator )
337- {
338- case "==" :
339- checkStatement = stg != value ;
340- break ;
341- case "!=" :
342- checkStatement = stg == value ;
343- break ;
344- }
323+ break ;
324+ case bool btg when bool . TryParse ( value , out var boolean ) :
325+ switch ( comparisonOperator )
326+ {
327+ case "==" :
328+ checkStatement = btg != boolean ;
329+ break ;
330+ case "!=" :
331+ checkStatement = btg == boolean ;
332+ break ;
333+ }
334+ break ;
335+ case string stg :
336+ switch ( comparisonOperator )
337+ {
338+ case "==" :
339+ checkStatement = stg != value ;
340+ break ;
341+ case "!=" :
342+ checkStatement = stg == value ;
343+ break ;
344+ }
345345
346- break ;
347- }
346+ break ;
347+ }
348348
349349 return checkStatement ;
350350 }
@@ -378,7 +378,7 @@ private static void ReplaceText(OpenXmlElement xmlElement, WordprocessingDocumen
378378 isMatch = true ;
379379 }
380380 }
381-
381+
382382 if ( isMatch )
383383 {
384384 if ( tag . Value is string [ ] || tag . Value is IList < string > || tag . Value is List < string > )
@@ -618,7 +618,7 @@ private static void AddPicture(OpenXmlElement appendElement, string relationship
618618 new A . BlipExtension ( )
619619 {
620620 Uri =
621- $ "{{{ Guid.NewGuid().ToString(" n")}}}"
621+ $ "{{{Guid.NewGuid().ToString(" n")}}}"
622622 } )
623623 )
624624 {
0 commit comments