diff --git a/Rnwood.Smtp4dev/ApiModel/Message.cs b/Rnwood.Smtp4dev/ApiModel/Message.cs index 5ade7ef29..9c6edf5c1 100644 --- a/Rnwood.Smtp4dev/ApiModel/Message.cs +++ b/Rnwood.Smtp4dev/ApiModel/Message.cs @@ -183,7 +183,7 @@ internal static string GetPartSource(Message message, string id) private static MimeEntity GetPart(Message message, string id) { - MessageEntitySummary part = message.Parts.Flatten(p => p.ChildParts).FirstOrDefault(p => p.Id == id); + MessageEntitySummary part = message.Parts.Flatten(p => p.ChildParts).SingleOrDefault(p => p.Id == id); if (part == null) { diff --git a/Rnwood.Smtp4dev/Controllers/MessagesController.cs b/Rnwood.Smtp4dev/Controllers/MessagesController.cs index 0cd94d8b1..d7ca4a02e 100644 --- a/Rnwood.Smtp4dev/Controllers/MessagesController.cs +++ b/Rnwood.Smtp4dev/Controllers/MessagesController.cs @@ -45,7 +45,7 @@ public IEnumerable GetSummaries(string sortColumn = "re private DbModel.Message GetDbMessage(Guid id) { - return messagesRepository.GetMessages().FirstOrDefault(m => m.Id == id) ?? + return messagesRepository.GetMessages().SingleOrDefault(m => m.Id == id) ?? throw new FileNotFoundException($"Message with id {id} was not found."); } @@ -151,7 +151,7 @@ public string GetMessageHtml(Guid id) { string cid = imageElement.Attributes["src"].Value.Replace("cid:", "", StringComparison.OrdinalIgnoreCase); - var part = message.Parts.Flatten(p => p.ChildParts).FirstOrDefault(p => p.ContentId == cid); + var part = message.Parts.Flatten(p => p.ChildParts).SingleOrDefault(p => p.ContentId == cid); imageElement.Attributes["src"].Value = $"api/Messages/{id.ToString()}/part/{part?.Id ?? "notfound"}/content"; } diff --git a/Rnwood.Smtp4dev/Controllers/SessionsController.cs b/Rnwood.Smtp4dev/Controllers/SessionsController.cs index 056fe7f6d..d7edd8776 100644 --- a/Rnwood.Smtp4dev/Controllers/SessionsController.cs +++ b/Rnwood.Smtp4dev/Controllers/SessionsController.cs @@ -39,14 +39,14 @@ public IEnumerable GetSummaries() [HttpGet("{id}")] public ApiModel.Session GetSession(Guid id) { - Session result = dbContext.Sessions.FirstOrDefault(m => m.Id == id); + Session result = dbContext.Sessions.SingleOrDefault(m => m.Id == id); return new ApiModel.Session(result); } [HttpGet("{id}/log")] public string GetSessionLog(Guid id) { - Session result = dbContext.Sessions.FirstOrDefault(m => m.Id == id); + Session result = dbContext.Sessions.SingleOrDefault(m => m.Id == id); return result.Log; } diff --git a/Rnwood.Smtp4dev/Rnwood.Smtp4dev.csproj b/Rnwood.Smtp4dev/Rnwood.Smtp4dev.csproj index 0fb857fd7..75220bc54 100644 --- a/Rnwood.Smtp4dev/Rnwood.Smtp4dev.csproj +++ b/Rnwood.Smtp4dev/Rnwood.Smtp4dev.csproj @@ -27,6 +27,7 @@ + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/Rnwood.Smtp4dev/Server/ImapServer.cs b/Rnwood.Smtp4dev/Server/ImapServer.cs index 003036b71..58e6f3ebf 100644 --- a/Rnwood.Smtp4dev/Server/ImapServer.cs +++ b/Rnwood.Smtp4dev/Server/ImapServer.cs @@ -30,7 +30,7 @@ public ImapServer(IMessagesRepository messagesRepository, IOptionsMonitor(); - if (dbContext.ImapState.FirstOrDefault() == null) + if (!dbContext.ImapState.Any()) { dbContext.Add(new ImapState { @@ -162,7 +162,7 @@ private void Session_Fetch(object sender, IMAP_e_Fetch e) { foreach (var msgInfo in e.MessagesInfo) { - var dbMessage = this.messagesRepository.GetMessages().FirstOrDefault(m => m.Id == new Guid(msgInfo.ID)); + var dbMessage = this.messagesRepository.GetMessages().SingleOrDefault(m => m.Id == new Guid(msgInfo.ID)); if (dbMessage != null) { diff --git a/Rnwood.Smtp4dev/Server/Smtp4devServer.cs b/Rnwood.Smtp4dev/Server/Smtp4devServer.cs index 8d81f862a..dbdd36780 100644 --- a/Rnwood.Smtp4dev/Server/Smtp4devServer.cs +++ b/Rnwood.Smtp4dev/Server/Smtp4devServer.cs @@ -260,8 +260,7 @@ internal Task DeleteSession(Guid id) { using var scope = serviceScopeFactory.CreateScope(); Smtp4devDbContext dbContext = scope.ServiceProvider.GetService(); - - Session session = dbContext.Sessions.FirstOrDefault(s => s.Id == id); + Session session = dbContext.Sessions.SingleOrDefault(s => s.Id == id); if (session != null) { dbContext.Sessions.Remove(session);