From e16c958e5ba47834dc1624e09ed8e5074a60d1c6 Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 28 Apr 2021 19:20:40 +0800 Subject: refator: ... --- .../Timeline/Services/Mapper/MapperExtensions.cs | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 BackEnd/Timeline/Services/Mapper/MapperExtensions.cs (limited to 'BackEnd/Timeline/Services/Mapper/MapperExtensions.cs') diff --git a/BackEnd/Timeline/Services/Mapper/MapperExtensions.cs b/BackEnd/Timeline/Services/Mapper/MapperExtensions.cs new file mode 100644 index 00000000..03dd1189 --- /dev/null +++ b/BackEnd/Timeline/Services/Mapper/MapperExtensions.cs @@ -0,0 +1,47 @@ +using Microsoft.AspNetCore.Mvc; +using System.Collections.Generic; +using System.Security.Claims; +using System.Threading.Tasks; + +namespace Timeline.Services.Mapper +{ + public static class MapperExtensions + { + public static async Task> MapListAsync(this IMapper mapper, IEnumerable source, IUrlHelper urlHelper, ClaimsPrincipal? user) + { + var result = new List(); + foreach (var s in source) + { + result.Add(await mapper.MapAsync(s, urlHelper, user)); + } + return result; + } + + public static Task MapAsync(this IGenericMapper mapper, object source, IUrlHelper urlHelper, ClaimsPrincipal? user) + { + var method = typeof(IGenericMapper).GetMethod(nameof(IGenericMapper.MapAsync)); + var m = method!.MakeGenericMethod(source.GetType(), typeof(TDestination))!; + return (Task)m.Invoke(mapper, new object?[] { source, urlHelper, user })!; + } + + public static async Task> MapListAsync(this IGenericMapper mapper, IEnumerable source, IUrlHelper urlHelper, ClaimsPrincipal? user) + { + var result = new List(); + foreach (var s in source) + { + result.Add(await mapper.MapAsync(s, urlHelper, user)); + } + return result; + } + + public static async Task> MapListAsync(this IGenericMapper mapper, IEnumerable source, IUrlHelper urlHelper, ClaimsPrincipal? user) + { + var result = new List(); + foreach (var s in source) + { + result.Add(await mapper.MapAsync(s, urlHelper, user)); + } + return result; + } + } +} -- cgit v1.2.3