コード例 #1
0
        public async Task Delete(Guid id)
        {
            _dbContext.Messages.RemoveRange(_dbContext.Messages.Where(m => m.Id == id));
            _dbContext.SaveChanges();

            await _messagesHub.OnMessagesChanged();
        }
コード例 #2
0
        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.");
        }
コード例 #3
0
        public async Task DeleteAll()
        {
            _dbContext.Messages.RemoveRange(_dbContext.Messages);
            _dbContext.SaveChanges();

            await _messagesHub.OnMessagesChanged();
        }
コード例 #4
0
ファイル: Smtp4devServer.cs プロジェクト: DarekDan/smtp4dev
        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();
        }
コード例 #5
0
        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.");
        }