NotificationSubscriptionInfoExtensions.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334
  1. using System;
  2. using Abp.Domain.Entities;
  3. using Abp.Extensions;
  4. using Newtonsoft.Json;
  5. namespace Abp.Notifications
  6. {
  7. /// <summary>
  8. /// Extension methods for <see cref="NotificationSubscriptionInfo"/>.
  9. /// </summary>
  10. public static class NotificationSubscriptionInfoExtensions
  11. {
  12. /// <summary>
  13. /// Converts <see cref="UserNotificationInfo"/> to <see cref="UserNotification"/>.
  14. /// </summary>
  15. public static NotificationSubscription ToNotificationSubscription(this NotificationSubscriptionInfo subscriptionInfo)
  16. {
  17. var entityType = subscriptionInfo.EntityTypeAssemblyQualifiedName.IsNullOrEmpty()
  18. ? null
  19. : Type.GetType(subscriptionInfo.EntityTypeAssemblyQualifiedName);
  20. return new NotificationSubscription
  21. {
  22. TenantId = subscriptionInfo.TenantId,
  23. UserId = subscriptionInfo.UserId,
  24. NotificationName = subscriptionInfo.NotificationName,
  25. EntityType = entityType,
  26. EntityTypeName = subscriptionInfo.EntityTypeName,
  27. EntityId = subscriptionInfo.EntityId.IsNullOrEmpty() ? null : JsonConvert.DeserializeObject(subscriptionInfo.EntityId, EntityHelper.GetPrimaryKeyType(entityType)),
  28. CreationTime = subscriptionInfo.CreationTime
  29. };
  30. }
  31. }
  32. }