You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.5 KiB
38 lines
1.5 KiB
using Sanhe.Abp.RealTime.Localization; |
|
using Newtonsoft.Json; |
|
|
|
namespace Sanhe.Abp.Notifications; |
|
|
|
public class NotificationDataConverter |
|
{ |
|
public static NotificationData Convert(NotificationData notificationData) |
|
{ |
|
if (notificationData != null) |
|
{ |
|
if (notificationData.NeedLocalizer()) |
|
{ |
|
// 潜在的空对象引用修复 |
|
if (notificationData.ExtraProperties.TryGetValue("title", out var title) && title != null) |
|
{ |
|
var titleObj = JsonConvert.DeserializeObject<LocalizableStringInfo>(title.ToString()); |
|
notificationData.TrySetData("title", titleObj); |
|
} |
|
if (notificationData.ExtraProperties.TryGetValue("message", out var message) && message != null) |
|
{ |
|
var messageObj = JsonConvert.DeserializeObject<LocalizableStringInfo>(message.ToString()); |
|
notificationData.TrySetData("message", messageObj); |
|
} |
|
|
|
if (notificationData.ExtraProperties.TryGetValue("description", out var description) && description != null) |
|
{ |
|
notificationData.TrySetData("description", JsonConvert.DeserializeObject<LocalizableStringInfo>(description.ToString())); |
|
} |
|
} |
|
} |
|
else |
|
{ |
|
notificationData = new NotificationData(); |
|
} |
|
return notificationData; |
|
} |
|
}
|
|
|