public int Dispatch(DropShipRequest request)
        {
            //MDC: LogContext.PushProperties(null);
            var response = 0;

            if (Reboot(request))
            {
                response = ConsoleCommandDispatcher.DispatchCommand(GetCommands(), request.Args, Console.Out);
                return response;
            }

            var timer = new Timer();

            timer.Time(
                () => { response = ConsoleCommandDispatcher.DispatchCommand(GetCommands(), request.Args, Console.Out); });

                        _logger.Information("{@Meta}", new CommandLineMeta
                        {
                            FileName = Assembly.GetEntryAssembly().GetName().Name,
                            CommandName = request.Args.DefaultIfEmpty("help").First(),
                            DurationInSeconds = (int) Math.Round(timer.Elapsed.TotalSeconds, 0, MidpointRounding.AwayFromZero),
                            RequestId = Guid.NewGuid(),
                            RunAt = DateTime.Now,
                            User = "******"
                        });

            return response;
        }
        bool Reboot(DropShipRequest request)
        {
            if (!request.Args.Any()) return false;

            return request.Args[0] == "reboot";
        }