protected override async Task <int> Handle(CArgument argument, IConsole console, InvocationContext context, PipelineContext pipeline, CancellationToken cancellationToken) { IWorkspace workspace = pipeline.Services.GetWorkspace(); ITerminal terminal = console.GetTerminal(); string template = argument.Template; Packagings.Package <BaseTemplate>?tplItem = await workspace.Templates.GetValue(template); if (tplItem == null) { terminal.OutputErrorLine($"No this template: {template}."); return(1); } BaseTemplate?tpl = tplItem.Data; if (tpl == null) { terminal.OutputErrorLine($"Can not load this template: {template}."); return(1); } IWorkItem?item = null; try { item = await workspace.Create(argument.Name, tpl, (vars, resolveContext) => Utils.ResolveCallback(vars, resolveContext, context, pipeline)); } catch (ArgumentException) { return(-1); } return(0); }
public override async Task <int> Handle(CArgument argument, ParserContext parser, PipelineContext pipeline, CancellationToken cancellationToken) { IWorkspace workspace = pipeline.Services.GetWorkspace(); ITerminal terminal = pipeline.Services.GetTerminal(); if (!argument.Clear) { IWorkItem?res = await workspace.Create("", null, (vars, resolveContext) => Utils.ResolveCallback(vars, resolveContext, parser, pipeline)); if (res != null) { pipeline.Services.Replace <IWorkItem>(res); } else { terminal.Output.WriteErrorLine("Create work-item failed."); return(-1); } } else { pipeline.Services.Remove <IWorkItem>(); } return(0); }