public async Task Delete(Guid id) { _dbContext.Messages.RemoveRange(_dbContext.Messages.Where(m => m.Id == id)); _dbContext.SaveChanges(); await _messagesHub.OnMessagesChanged(); }
public void Start() { Smtp4devDbContext dbContent = dbContextFactory(); foreach (Session unfinishedSession in dbContent.Sessions.Where(s => !s.EndDate.HasValue).ToArray()) { unfinishedSession.EndDate = DateTime.Now; } dbContent.SaveChanges(); TrimMessages(dbContent, serverOptions.Value); dbContent.SaveChanges(); TrimSessions(dbContent, serverOptions.Value); dbContent.SaveChanges(); messagesHub.OnMessagesChanged().Wait(); sessionsHub.OnSessionsChanged().Wait(); processingQueue = new BlockingCollection <Action>(); priorityProcessingQueue = new BlockingCollection <Action>(); Task.Run(ProcessingTaskWork); smtpServer.Start(); Console.WriteLine($"SMTP Server is listening on port {smtpServer.PortNumber}.\nKeeping last {serverOptions.Value.NumberOfMessagesToKeep} messages and {serverOptions.Value.NumberOfSessionsToKeep} sessions."); }
public async Task DeleteAll() { _dbContext.Messages.RemoveRange(_dbContext.Messages); _dbContext.SaveChanges(); await _messagesHub.OnMessagesChanged(); }
private async void OnMessageReceived(object sender, MessageEventArgs e) { var dbContent = dbContextFactory(); using (var stream = e.Message.GetData()) { var message = await new MessageConverter().ConvertAsync(stream, e.Message.From, string.Join(", ", e.Message.To)); dbContent.Messages.Add(message); } dbContent.SaveChanges(); messagesHub.OnMessagesChanged().Wait(); }
public void Start() { Smtp4devDbContext dbContent = dbContextFactory(); foreach (Session unfinishedSession in dbContent.Sessions.Where(s => !s.EndDate.HasValue)) { unfinishedSession.EndDate = DateTime.Now; } dbContent.SaveChanges(); TrimMessages(dbContent); dbContent.SaveChanges(); TrimSessions(dbContent); dbContent.SaveChanges(); messagesHub.OnMessagesChanged().Wait(); sessionsHub.OnSessionsChanged().Wait(); smtpServer.Start(); Console.WriteLine($"SMTP Server is listening on port {smtpServer.PortNumber}. Keeping last {serverOptions.Value.NumberOfMessagesToKeep} messages and {serverOptions.Value.NumberOfSessionsToKeep} sessions."); }