Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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());
        }
Esempio n. 3
0
        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());
        }
Esempio n. 4
0
        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);
        }
Esempio n. 6
0
 public Task <Pop3CommandReply> HandleStls()
 {
     return(Pop3CommandReply.CreateDefaultSuccessTask());
 }
Esempio n. 7
0
 public Task <Pop3CommandReply> HandleUser(string username)
 {
     return(Pop3CommandReply.CreateDefaultSuccessTask());
 }