public ParsedInput Parse(string input, DateTime currentDate) { var parsedInput = new ParsedInput { CurrentDate = currentDate }; string commandInput = input.Trim(); var seperatedInput = commandInput.Split(' '); parsedInput.Username = seperatedInput[0]; if (seperatedInput.Count() == 1) { parsedInput.CommandType = CommandType.Read; return parsedInput; } parsedInput.Username = seperatedInput.First().Trim(); var command = seperatedInput.Skip(1).First().Trim(); parsedInput.CommandType = ParseCommandType(command); parsedInput.RequiredAction = string.Join(" ", seperatedInput.Skip(2)); ; return parsedInput; }
public virtual void Execute(ParsedInput parsedInput) { var command = _commandFactory.Create(_usersRepository.GetUser(parsedInput.Username), parsedInput, _tweetsRepository, _textWriter); command.Execute(); }