protected async override Task<DatabaseTaskOutcome> RunImplementation() { var statistics = await DatabaseCommands.GetStatisticsAsync(); if (statistics.CountOfDocuments > 0) { ReportError("Database already contains documents"); return DatabaseTaskOutcome.Error; } Report("Creating Sample Data, Please wait..."); // this code assumes a small enough dataset, and doesn't do any sort // of paging or batching whatsoever. using (var sampleData = typeof(CreateSampleDataTask).Assembly.GetManifestResourceStream("Raven.Studio.Assets.EmbeddedData.Northwind.dump")) { Report("Reading documents"); var smugglerOptions = new SmugglerOptions { OperateOnTypes = ItemType.Documents | ItemType.Indexes | ItemType.Transformers, ShouldExcludeExpired = false, }; var smuggler = new SmugglerApi(smugglerOptions, DatabaseCommands, s => Report(s)); await smuggler.ImportData(sampleData, smugglerOptions); } return DatabaseTaskOutcome.Succesful; }
private async Task<DatabaseTaskOutcome> ExecuteInternal() { if (includeDocuments == false && includeAttachements == false && includeIndexes == false && includeTransformers == false) return DatabaseTaskOutcome.Abandoned; var openFile = new OpenFileDialog { Filter = "Raven Dumps|*.ravendump;*.raven.dump", }; if (openFile.ShowDialog() != true) return DatabaseTaskOutcome.Abandoned; Report(String.Format("Importing from {0}", openFile.File.Name)); using (var stream = openFile.File.OpenRead()) { ItemType operateOnTypes = 0; if (includeDocuments) { operateOnTypes |= ItemType.Documents; } if (includeAttachements) { operateOnTypes |= ItemType.Attachments; } if (includeIndexes) { operateOnTypes |= ItemType.Indexes; } if (includeTransformers) { operateOnTypes |= ItemType.Transformers; } var smugglerOptions = new SmugglerOptions { BatchSize = batchSize, Filters = filterSettings, TransformScript = transformScript, ShouldExcludeExpired = shouldExcludeExpired, OperateOnTypes = operateOnTypes }; var smuggler = new SmugglerApi(smugglerOptions, DatabaseCommands, message => Report(message)); await smuggler.ImportData(stream, smugglerOptions); } return DatabaseTaskOutcome.Succesful; }