private async Task SendCommandResult(Pop3CommandReply commandResult) { if (commandResult == null) { throw new ArgumentException("commandResult"); } string result = commandResult.Success ? "+OK" : "+ERR"; var message = $"{result} {commandResult.Message}"; await SendLine(message); }
public async Task <Pop3CommandReply> HandleQuit() { if (_account != null && _messages != null) { var messagesToDelete = _messages.Where(message => message.Deleted); var messageRepository = _container.GetInstance <IMessageRepository>(); foreach (var message in messagesToDelete) { await messageRepository.DeleteAsync(_account, message); } } return(Pop3CommandReply.CreateDefaultSuccess()); }
public Task <Pop3CommandReply> HandleDele(int messageNumber) { if (messageNumber > _messages.Count) { return(Task.Run(() => new Pop3CommandReply(false, "No such message"))); } var message = _messages[messageNumber - 1]; if (message.Deleted) { return(Task.Run(() => new Pop3CommandReply(false, "Message already deleted."))); } message.Deleted = true; return(Pop3CommandReply.CreateDefaultSuccessTask()); }
public async Task <Pop3CommandReply> HandlePass(string username, string password) { var accountRepository = _container.GetInstance <IAccountRepository>(); _account = await accountRepository.ValidatePasswordAsync(username, password); if (_account == null) { return(new Pop3CommandReply(false, "Invalid username or password")); } var folderRepository = _container.GetInstance <IFolderRepository>(); var inbox = await folderRepository.GetInbox(_account.Id); var messageRepository = _container.GetInstance <IMessageRepository>(); _messages = await messageRepository.GetMessages(_account.Id, inbox.Id); return(Pop3CommandReply.CreateDefaultSuccess()); }
private async Task SendCommandResult(Pop3CommandReply commandResult) { if (commandResult == null) throw new ArgumentException("commandResult"); string result = commandResult.Success ? "+OK" : "+ERR"; var message = $"{result} {commandResult.Message}"; await SendLine(message); }
public Task <Pop3CommandReply> HandleStls() { return(Pop3CommandReply.CreateDefaultSuccessTask()); }
public Task <Pop3CommandReply> HandleUser(string username) { return(Pop3CommandReply.CreateDefaultSuccessTask()); }