public bool RunDump(string profileName) { bool retval = false; DumpArgs args = GetDumpArgsFromProfileName(profileName); string configPath = Utilities.GetConfigFilePath(); if (File.Exists(configPath)) { _serverConfiguration = new SVNServerConfig(configPath); _controller = new SVNController(_serverConfiguration); SVNRepository repo = _controller.RepositoryCollection[args.RepositoryName]; retval = repo.DumpRepository(args); } return(retval); }
private static DumpArgs GetDumpArgsFromProfileName(string profileName) { var args = new DumpArgs(); var dal = new DAL(); int profileID = dal.GetProfileId(profileName); if (profileID > 0) { ProfileDetails det = dal.LoadProfileDetails(profileID); string filePattern = Utilities.ParseFilePattern(det.FilePattern, det.Repository); args.DumpFileName = Path.Combine(det.DumpDirectory, filePattern); args.RevisionArg = det.Revisions; args.UseIncremental = det.Incremental; args.UseQuiet = true; args.RepositoryName = det.Repository; } return(args); }
public void Execute(DumpArgs args) { var providerFactory = DbProviderFactories.GetFactory(args.Provider); using (this.connection = providerFactory.CreateConnection()) { this.connection.ConnectionString = args.ConnectionString; this.connection.Open(); Log.Info("Dumping table {0}", args.TableName); this.sql = new SqlHelper(this.connection); this.tableOps = this.sql.GetTableOperations(args.TableName); var records = this.tableOps.GetRecords(args.Condition, args.Columns ?? new string[0]).ToList(); JObject outputFile; JArray result; if (args.Append && File.Exists(args.OutputFile)) { outputFile = JObject.Parse(File.ReadAllText(args.OutputFile)); var temp = outputFile.Property(args.TableName); if (temp == null) { result = new JArray(); outputFile.Add(new JProperty(args.TableName, result)); } else { result = (JArray) temp.Value; } } else { outputFile = new JObject(); result = new JArray(); outputFile.Add(args.TableName, result); } foreach (var record in records) { JObject outputEntry; outputEntry = new JObject(); foreach (var property in record) { outputEntry.Add(property.Key, new JValue(property.Value)); } Merge(result, outputEntry); } File.WriteAllText(args.OutputFile, outputFile.ToString()); } }