Skip to content

Commit 9068d83

Browse files
committed
migrated to Mapperly
1 parent a50273d commit 9068d83

5 files changed

Lines changed: 33 additions & 53 deletions

File tree

Services/Lyralabs.TempMailServer.Services.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
</PropertyGroup>
77

88
<ItemGroup>
9-
<PackageReference Include="AutoMapper" Version="14.0.0" />
9+
<PackageReference Include="Riok.Mapperly" Version="4.3.0" />
1010
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.4.0" />
1111
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.1" />
1212
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="10.0.1" />

Services/MapperService.cs

Lines changed: 0 additions & 46 deletions
This file was deleted.

Services/MimeMessageMapper.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
using System;
2+
using System.Linq;
3+
using Lyralabs.TempMailServer.Data;
4+
using MimeKit;
5+
using Riok.Mapperly.Abstractions;
6+
7+
namespace Lyralabs.TempMailServer
8+
{
9+
[Mapper]
10+
public partial class MimeMessageMapper
11+
{
12+
public MailModel MapToMailModel(MimeMessage source)
13+
{
14+
var target = new MailModel
15+
{
16+
Secret = Guid.NewGuid(),
17+
Subject = source.Subject,
18+
FromAddress = source.From.OfType<MailboxAddress>().Single().Address,
19+
FromName = source.From.OfType<MailboxAddress>().Single().Name,
20+
ReceivedDate = source.Date.UtcDateTime,
21+
BodyHtml = source.HtmlBody,
22+
BodyText = source.TextBody
23+
};
24+
25+
return target;
26+
}
27+
}
28+
}

Services/TempMessageStore.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
using AutoMapper;
21
using Lyralabs.TempMailServer.Data;
32
using Microsoft.Extensions.Logging;
43
using MimeKit;
@@ -18,10 +17,10 @@ namespace Lyralabs.TempMailServer
1817
public sealed class TempMessageStore : MessageStore
1918
{
2019
private readonly MailboxService mailboxService;
21-
private readonly IMapper mapper;
20+
private readonly MimeMessageMapper mapper;
2221
private readonly ILogger<TempMessageStore> logger;
2322

24-
public TempMessageStore(MailboxService mailboxService, IMapper mapper, ILogger<TempMessageStore> logger)
23+
public TempMessageStore(MailboxService mailboxService, MimeMessageMapper mapper, ILogger<TempMessageStore> logger)
2524
{
2625
this.mailboxService = mailboxService;
2726
this.mapper = mapper;
@@ -56,7 +55,7 @@ public override async Task<SmtpResponse> SaveAsync(
5655
this.logger.LogDebug($"storing E-Mail...");
5756
#endif
5857

59-
var dto = this.mapper.Map<MailModel>(message);
58+
var dto = this.mapper.MapToMailModel(message);
6059

6160
await this.mailboxService.StoreMail(dto, message.To);
6261

Web/Program.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,7 @@ private static void Main(string[] args)
5454
builder.Services.AddSingleton<StatisticCacheService>();
5555
builder.Services.AddHostedService(x => x.GetRequiredService<StatisticCacheService>());
5656

57-
builder.Services.AddSingleton<MapperService>();
58-
builder.Services.AddSingleton(x => x.GetRequiredService<MapperService>().Mapper);
57+
builder.Services.AddSingleton<MimeMessageMapper>();
5958

6059
builder.Services.AddSingleton<MailboxService>();
6160

0 commit comments

Comments
 (0)