public override void DoExecute(CommandArgs args)
 {
     var databaseName = args.Arguments[0];
     var connectionData = Settings.GetConnection(databaseName);
     var viewVersionTask = TaskFactory.CreateViewDbVersionTask(connectionData);
     viewVersionTask.ViewVersion();
 }
예제 #2
0
 public override void DoExecute(CommandArgs args)
 {
     if (!args.HasArguments)
     {
         ViewSettings();
         return;
     }
     TrySet(args);
 }
예제 #3
0
 public void Execute(IList<string> args)
 {
     var commandArgs = new CommandArgs(args);
     if (!AreValid(commandArgs) || commandArgs.Help)
     {
         Logger.WriteLine(GenerateUsageText());
         return;
     }
     DoExecute(commandArgs);
 }
예제 #4
0
        public override void DoExecute(CommandArgs args)
        {
            var populateContextTask = TaskFactory.CreatePopulateContextTask(Settings.DefaultConnection);
            var overwriteExisting = args.Flags.Contains(Overwrite);

            var databases = args.Arguments;
            if (databases.Any())
            {
                populateContextTask.Populate(databases, overwriteExisting);
            }
            else
            {
                populateContextTask.PopulateAll(overwriteExisting);
            }
        }
예제 #5
0
        public override void DoExecute(CommandArgs args)
        {
            var connectionData = Settings.GetConnection(args.Arguments[0]);
            var parameters = new BackupParameters
                {
                    DatabaseName = connectionData.Name,
                    FilePath = args.Arguments[1],
                    Server = connectionData.Host
                };

            var restoreTask = TaskFactory.CreateRestoreTask(connectionData);
            restoreTask.PercentComplete += PrintPercentage;
            restoreTask.Complete += TaskComplete;
            restoreTask.Restore(parameters);
        }
예제 #6
0
        public override void DoExecute(CommandArgs args)
        {
            if (!args.HasArguments)
            {
                PrintContexts();
                return;
            }

            if (!args.HasFlags)
            {
                SwitchContextTo(args.Arguments[0]);
            }
            else
            {
                HandleContext(args);
            }
        }
예제 #7
0
        private void TrySet(CommandArgs args)
        {
            var split = args.Arguments[0].Split(':');
            if (split.Length < 2)
            {
                throw new DbToolException(string.Format("Invalid parameter {0}", args.Arguments[0]));
            }
            var key = split[0];
            var value = split[1];

            try
            {
                Settings.Set(key, value);
            }
            catch (Exception ex)
            {
                Logger.WriteLine("Could not set {0}: {1}", key, ex.Message);
                Logger.WriteLine("Try {0} {1} to view settings", Process.GetCurrentProcess().ProcessName, Name);
            }
        }
예제 #8
0
        public void Ctor_ShouldSetFlags()
        {
            var args = new CommandArgs(ArgumentList(Some.Flag, Some.DoubleFlag));

            MakeSure.ThatCollection(args.Flags).ContainsOnly(Some.Flag);
        }
예제 #9
0
        public void Ctor_ShouldSetHelp_WhenThereIsHelpFlag()
        {
            var args = new CommandArgs(ArgumentList(CommandArgs.HelpFlag));

            Assert.That(args.Help);
        }
예제 #10
0
 public override bool AreValid(CommandArgs args)
 {
     return(args.HasArguments);
 }
예제 #11
0
        public void Ctor_ShouldSetCommand()
        {
            var args = new CommandArgs(ArgumentList());

            Assert.That(args.Command, Is.EqualTo(Some.Command));
        }
예제 #12
0
 public override void DoExecute(CommandArgs args)
 {
     var listDbTask = TaskFactory.CreateListDbTask(Settings.DefaultConnection);
     var showAll = args.Flags.Contains("-a");
     listDbTask.ListDatabases(showAll);
 }
예제 #13
0
 public override bool AreValid(CommandArgs args)
 {
     return true;
 }
예제 #14
0
 public override bool AreValid(CommandArgs args)
 {
     return(true);
 }
예제 #15
0
 public override void DoExecute(CommandArgs args)
 {
     Logger.WriteLine(DbToolValues.Version);
 }
예제 #16
0
 public void HasArguments_ShouldBeFalse_WhenThereIsNoArgument()
 {
     var args = new CommandArgs(ArgumentList(Some.Flag, Some.DoubleFlag));
     Assert.That(args.HasArguments, Is.False);
 }
예제 #17
0
 public void HasFlags_ShouldBeFalse_WhenThereIsNoFlag()
 {
     var args = new CommandArgs(ArgumentList(Some.Argument));
     Assert.That(args.HasFlags, Is.False);
 }
예제 #18
0
 public override bool AreValid(CommandArgs args)
 {
     return !(args.HasFlags && !args.HasArguments);
 }
예제 #19
0
 public abstract void DoExecute(CommandArgs args);
예제 #20
0
 public abstract bool AreValid(CommandArgs args);
예제 #21
0
 private static string GetBackupPath(CommandArgs args)
 {
     return args.Arguments.Count > 1 ? args.Arguments[1] : string.Empty;
 }
예제 #22
0
 public override bool AreValid(CommandArgs args)
 {
     return args.Arguments.Count > 0 && !string.IsNullOrWhiteSpace(args.Arguments[0]);
 }
예제 #23
0
 public void HasArguments_ShouldBeTrue_WhenThereIsArgument()
 {
     var args = new CommandArgs(ArgumentList(Some.Argument));
     Assert.That(args.HasArguments);
 }
예제 #24
0
 private void HandleContext(CommandArgs args)
 {
     var flag = args.Flags.First();
     switch(flag)
     {
         case AddFlag:
             CreateContext(args.Arguments[0]);
             break;
         case DeleteFlag:
             DeleteContext(args.Arguments[0]);
             break;
         default:
             Logger.WriteLine("Unknown flag {0}", flag);
             break;
     }
 }
예제 #25
0
 public void HasFlags_ShouldBeTrue_WhenThereIsFlag()
 {
     var args = new CommandArgs(ArgumentList(Some.Flag));
     Assert.That(args.HasFlags);
 }
예제 #26
0
 public override bool AreValid(CommandArgs args)
 {
     return(args.Arguments.Count > 0 && !string.IsNullOrWhiteSpace(args.Arguments[0]));
 }
예제 #27
0
 public override bool AreValid(CommandArgs args)
 {
     return args.HasArguments && args.Arguments.Count > 1;
 }
예제 #28
0
 public abstract void DoExecute(CommandArgs args);
예제 #29
0
 private static string GetBackupPath(CommandArgs args)
 {
     return(args.Arguments.Count > 1 ? args.Arguments[1] : string.Empty);
 }
예제 #30
0
 public override bool AreValid(CommandArgs args)
 {
     return args.HasArguments;
 }
예제 #31
0
 public abstract bool AreValid(CommandArgs args);
예제 #32
0
 public override bool AreValid(CommandArgs args)
 {
     return(!(args.HasFlags && !args.HasArguments));
 }
예제 #33
0
 public void Ctor_ShouldNotSetHelp_WhenThereIsNoHelpFlag()
 {
     var args = new CommandArgs(ArgumentList(Some.Argument, Some.Flag, Some.DoubleFlag));
     Assert.That(args.Help, Is.False);
 }
예제 #34
0
        public void Ctor_ShouldSetArguments()
        {
            var args = new CommandArgs(ArgumentList(Some.Argument, Some.OtherArgument));

            MakeSure.ThatCollection(args.Arguments).ContainsOnly(Some.Argument, Some.OtherArgument);
        }
예제 #35
0
 public override void DoExecute(CommandArgs args)
 {
     Logger.WriteLine(DbToolValues.Version);
 }
예제 #36
0
 public override void DoExecute(CommandArgs args)
 {
     var databaseName = args.Arguments[0];
     var deleteDbTask = TaskFactory.CreateDeleteDbTask(Settings.DefaultConnection);
     deleteDbTask.Delete(databaseName);
 }