/// <summary> /// Runs the migrate tool /// </summary> /// <param name = "args" > program arguements</param> public void Run(Queue <string> args) { var executingLocation = Directory.GetCurrentDirectory(); var projectFile = Directory.GetFiles(executingLocation, "*.csproj"); if (projectFile.Length == 0) { throw new FileNotFoundException("Project file not found in current directory."); } var parser = ArgumentParserFactory.GetInstance <MigrationOptions>(); // pull out arg as we pass the remaining arguments down the list var options = parser.Parse(args); var isValid = options.Validate(); if (!isValid) { Console.WriteLine("Run dotnet mongo --help for usage information."); } options.ProjectFile = projectFile[0]; var migrationResult = MigrationRunner.Run(options); if (migrationResult.Operation == MigrationOperation.Status && migrationResult.IsSuccessful) { var table = migrationResult.Result.BuildConsoleTable(); table.Write(Format.Alternative); } else { Console.WriteLine(migrationResult.Result); } }