31 lines
1.4 KiB
C#
31 lines
1.4 KiB
C#
using AutoMapper;
|
|
using DigitalData.Core.Contracts.Application;
|
|
|
|
namespace DigitalData.Core.Application
|
|
{
|
|
/// <summary>
|
|
/// Provides a base implementation of <see cref="IServiceBase"/>, offering basic service messaging and result creation functionalities.
|
|
/// </summary>
|
|
public class ServiceBase : ResponseService, IServiceBase, IResponseService
|
|
{
|
|
|
|
}
|
|
|
|
public static class AutoMapperExtension
|
|
{
|
|
/// <summary>
|
|
/// Maps a source object to a destination object, or throws an exception if the mapping result is null.
|
|
/// </summary>
|
|
/// <typeparam name="TSource">The source object type.</typeparam>
|
|
/// <typeparam name="TDestination">The destination object type.</typeparam>
|
|
/// <param name="source">The source object to map from.</param>
|
|
/// <returns>The mapped destination object.</returns>
|
|
/// <exception cref="MappingResultNullException">Thrown when the mapping result is null.</exception>
|
|
public static TDestination MapOrThrow<TDestination>(this IMapper mapper, object source)
|
|
{
|
|
return mapper.Map<TDestination>(source) ?? throw new AutoMapperMappingException(
|
|
$"Mapping to {typeof(TDestination).FullName} resulted in a null object. " +
|
|
"Hint: Ensure that the AutoMapper profile configuration for this mapping is correct.");
|
|
}
|
|
}
|
|
} |