@@ -238,27 +238,34 @@ private static List<IMessagePart> ParseRunsOrSimpleText(dynamic ren)
238
238
var messageItems = new List < IMessagePart > ( ) ;
239
239
if ( ren . ContainsKey ( "runs" ) )
240
240
{
241
- foreach ( var r in ren . runs )
241
+ try
242
242
{
243
- if ( r . ContainsKey ( "text" ) )
243
+ foreach ( var r in ren . runs )
244
244
{
245
- var text = ( string ) r . text ;
246
- messageItems . Add ( MessagePartFactory . CreateMessageText ( text ) ) ;
247
- }
248
- else if ( r . ContainsKey ( "emoji" ) )
249
- {
250
- var emoji = r . emoji ;
251
- var thumbnail = emoji . image . thumbnails [ 0 ] ;
252
- var emojiUrl = thumbnail . url ;
253
- var emojiWidth = ( int ) ( ( int ? ) thumbnail . width ?? 24 ) ;
254
- var emojiHeight = ( int ) ( ( int ? ) thumbnail . height ?? 24 ) ;
255
- var emojiAlt = emoji . image . accessibility . accessibilityData . label ;
256
- messageItems . Add ( new MessageImage { Url = emojiUrl , Alt = emojiAlt , Height = emojiHeight , Width = emojiWidth } ) ;
257
- }
258
- else
259
- {
260
- throw new ParseException ( ) ;
245
+ if ( r . ContainsKey ( "text" ) )
246
+ {
247
+ var text = ( string ) r . text ;
248
+ messageItems . Add ( MessagePartFactory . CreateMessageText ( text ) ) ;
249
+ }
250
+ else if ( r . ContainsKey ( "emoji" ) )
251
+ {
252
+ var emoji = r . emoji ;
253
+ var thumbnail = emoji . image . thumbnails [ 0 ] ;
254
+ var emojiUrl = thumbnail . url ;
255
+ var emojiWidth = ( int ) ( ( ( int ? ) thumbnail . width ) ?? 24 ) ;
256
+ var emojiHeight = ( int ) ( ( ( int ? ) thumbnail . height ) ?? 24 ) ;
257
+ var emojiAlt = emoji . image . accessibility . accessibilityData . label ;
258
+ messageItems . Add ( new MessageImage { Url = emojiUrl , Alt = emojiAlt , Height = emojiHeight , Width = emojiWidth } ) ;
259
+ }
260
+ else
261
+ {
262
+ throw new ParseException ( ) ;
263
+ }
261
264
}
265
+ } catch ( Exception ex )
266
+ {
267
+ var raw = ( string ) ren . runs . ToString ( ) . replace ( Environment . NewLine , "" ) ;
268
+ throw new ParseException ( raw , ex ) ;
262
269
}
263
270
}
264
271
else if ( ren . ContainsKey ( "simpleText" ) )
@@ -281,28 +288,36 @@ private static List<IMessagePart> GetMessageParts(dynamic ren)
281
288
}
282
289
if ( ren . message . ContainsKey ( "runs" ) )
283
290
{
284
- foreach ( var r in ren . message . runs )
291
+ try
285
292
{
286
- if ( r . ContainsKey ( "text" ) )
293
+ foreach ( var r in ren . message . runs )
287
294
{
288
- var text = ( string ) r . text ;
289
- messageItems . Add ( MessagePartFactory . CreateMessageText ( text ) ) ;
290
- }
291
- else if ( r . ContainsKey ( "emoji" ) )
292
- {
293
- var emoji = r . emoji ;
294
- var thumbnail = emoji . image . thumbnails [ 0 ] ;
295
- var emojiUrl = thumbnail . url ;
296
- var emojiWidth = ( int ) ( ( int ? ) thumbnail . width ?? 24 ) ;
297
- var emojiHeight = ( int ) ( ( int ? ) thumbnail . height ?? 24 ) ;
298
- var emojiAlt = emoji . image . accessibility . accessibilityData . label ;
299
- messageItems . Add ( new MessageImage { Url = emojiUrl , Alt = emojiAlt , Height = emojiHeight , Width = emojiWidth } ) ;
300
- }
301
- else
302
- {
303
- throw new ParseException ( ) ;
295
+ if ( r . ContainsKey ( "text" ) )
296
+ {
297
+ var text = ( string ) r . text ;
298
+ messageItems . Add ( MessagePartFactory . CreateMessageText ( text ) ) ;
299
+ }
300
+ else if ( r . ContainsKey ( "emoji" ) )
301
+ {
302
+ var emoji = r . emoji ;
303
+ var thumbnail = emoji . image . thumbnails [ 0 ] ;
304
+ var emojiUrl = thumbnail . url ;
305
+ var emojiWidth = ( int ) ( ( ( int ? ) thumbnail . width ) ?? 24 ) ;
306
+ var emojiHeight = ( int ) ( ( ( int ? ) thumbnail . height ) ?? 24 ) ;
307
+ var emojiAlt = emoji . image . accessibility . accessibilityData . label ;
308
+ messageItems . Add ( new MessageImage { Url = emojiUrl , Alt = emojiAlt , Height = emojiHeight , Width = emojiWidth } ) ;
309
+ }
310
+ else
311
+ {
312
+ throw new ParseException ( ) ;
313
+ }
304
314
}
305
315
}
316
+ catch ( Exception ex )
317
+ {
318
+ var raw = ( string ) ren . message . runs . ToString ( ) . replace ( Environment . NewLine , "" ) ;
319
+ throw new ParseException ( raw , ex ) ;
320
+ }
306
321
}
307
322
else if ( ren . message . ContainsKey ( "simpleText" ) )
308
323
{
0 commit comments