예제 #1
0
 /// <summary>
 /// Writes error messages.
 /// </summary>
 public static void WriteError(this CommandContext context, params string[] messages)
 {
     foreach (var message in messages)
     {
         context.Response.Messages.Add(ResponseMessage.Error(message));
     }
 }
예제 #2
0
        public CommandContext(HttpContext context, Request request, Response response, CommandInfo info, ICommand command)
        {
            HttpContext = context ?? throw new ArgumentNullException(nameof(context));
            Request     = request ?? throw new ArgumentNullException(nameof(request));
            Response    = response ?? throw new ArgumentNullException(nameof(response));
            Info        = info ?? throw new ArgumentNullException(nameof(info));
            Command     = command ?? throw new ArgumentNullException(nameof(command));

            // these TextWriters are for writing console out and error messages, just
            // like Console.Out and Console.Error
            OutWriter = new ResponseMessageTextWriter(text =>
            {
                Response.Messages.Add(ResponseMessage.Plain(text));
            });

            ErrorWriter = new ResponseMessageTextWriter(text =>
            {
                Response.Messages.Add(ResponseMessage.Error(text));
            });

            Processor = new CommandLineApplication
            {
                Name        = info.Name,
                FullName    = info.Description,
                Description = info.LongDescription,
                Out         = OutWriter,
                Error       = ErrorWriter
            };

            Processor.HelpOption("-?|-h|--help");

            HttpContext.Response.OnCompleted(OnResponseSent);
        }
예제 #3
0
 /// <summary>
 /// Writes an error message.
 /// </summary>
 public static void WriteError(this CommandContext context, Exception e, bool returnStackTrace = false)
 {
     context.Response.Messages.Add(ResponseMessage.Error(returnStackTrace ? e.ToString() : e.Message));
 }