protected override ICommandResult ProcessCommand(IContext context)
{
var arguments = CollectAndValidateArguments(context.Arguments,
project => JiraParamValidator.Project,
summary => ParamValidator.QuotedString,
description => ParamValidator.QuotedString.AsOptional(),
order => JiraParamValidator.Order.AsOptional(),
type => JiraParamValidator.Type);
Func<RemoteIssue, ICommandResult> mapping = issue => CommandResult.Success(string.Format("Jira tiket created successfuly ({2}).{0}{0}{1}", Environment.NewLine, issue.Format(), UrlFor(issue)), issue.key);
return Run(
() => _jira.FileIssue(
JiraConfig.Instance.IMUserToIssueTrackerUser(context.User.Name),
arguments["project"].Value,
arguments["summary"].Value,
arguments["description"].ValueOrDefault(String.Empty),
IssueType.Parse(arguments["type"].ValueOrDefault("bug")).Id,
arguments["order"].ValueOrDefault(DefaultIssueOrder)),
mapping);
}