41 lines
1.6 KiB
C#
41 lines
1.6 KiB
C#
using EnvelopeGenerator.Application.Dto.EnvelopeReceiver;
|
|
using MediatR;
|
|
using System.Dynamic;
|
|
|
|
namespace EnvelopeGenerator.Application.Common.Notifications;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="Original"></param>
|
|
public record DocSignedNotification(EnvelopeReceiverDto Original) : EnvelopeReceiverDto(Original), INotification
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public required ExpandoObject Annotations { get; init; }
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public static class DocSignedNotificationExtensions
|
|
{
|
|
/// <summary>
|
|
/// Converts an <see cref="EnvelopeReceiverDto"/> to a <see cref="DocSignedNotification"/>.
|
|
/// </summary>
|
|
/// <param name="dto">The DTO to convert.</param>
|
|
/// <param name="annotations"></param>
|
|
/// <returns>A new <see cref="DocSignedNotification"/> instance.</returns>
|
|
public static DocSignedNotification ToDocSignedNotification(this EnvelopeReceiverDto dto, ExpandoObject annotations)
|
|
=> new(dto) { Annotations = annotations };
|
|
|
|
/// <summary>
|
|
/// Asynchronously converts a <see cref="Task{EnvelopeReceiverDto}"/> to a <see cref="DocSignedNotification"/>.
|
|
/// </summary>
|
|
/// <param name="dtoTask">The task that returns the DTO to convert.</param>
|
|
/// <param name="annotations"></param>
|
|
/// <returns>A task that represents the asynchronous conversion operation.</returns>
|
|
public static async Task<DocSignedNotification?> ToDocSignedNotification(this Task<EnvelopeReceiverDto?> dtoTask, ExpandoObject annotations)
|
|
=> await dtoTask is EnvelopeReceiverDto dto ? new(dto) { Annotations = annotations } : null;
|
|
} |