Binboo.Jira.Commands.SearchCommand.ProcessCommand C# (CSharp) Method

ProcessCommand() protected method

protected ProcessCommand ( IContext context ) : ICommandResult
context IContext
return ICommandResult
        protected override ICommandResult ProcessCommand(IContext context)
        {
            IDictionary<string, Argument> arguments = CollectAndValidateArguments(context.Arguments, lookFor => ParamValidator.Anything, status => JiraParamValidator.IssueStatus.AsOptional());

            var result = Run(() =>
                       	{
                       		string status = arguments["status"].ValueOrDefault(IssueStatus.Open.Description);

                            var sb = new StringBuilder();
                            int max = 0;
                       		foreach (RemoteIssue issue in _jira.SearchIssues(arguments["lookFor"]).Where(candidate => status == "all" || candidate.status == IssueStatus.Parse(status).Id))
                       		{
                       			string issueMessage = issue.Format();
                       			max = Math.Max(max, issueMessage.Length);

                       			sb.AppendFormat("{0}{1}", issueMessage, Environment.NewLine);
                       		}

                            sb.Insert(0, String.Format("Issue      Status      Created             Sumary{0}{1}{0}", Environment.NewLine, new String('-', max)));
                       		return sb.ToString();
                       	});

            return CommandResult.Success(result);
        }