in CosmosClone/CosmosCloneCommon/Migrator/DocumentMigrator.cs [83:118]
public async Task<bool> StartCopy(List<ScrubRule> scrubRules = null)
{
IsCodeMigrationComplete = false;
DocumentMigrator.scrubRules = scrubRules;
await InitializeMigration();
if (CloneSettings.CopyDocuments)
{
await ReadUploadInBatches((IDocumentQuery<dynamic>)SourceCommonDataFetchQuery);
}
else
{
//scrub documents for rules without filters(no where condition)
//This is also part of copy documents code hence this is included here when copydocuments is turned off
if (CloneSettings.ScrubbingRequired && noFilterScrubRules != null && noFilterScrubRules.Count > 0)
{
var dcs = new DataScrubMigrator();
var result = await dcs.StartScrub(noFilterScrubRules);
}
}
if (CloneSettings.ScrubbingRequired && filteredScrubRules != null && filteredScrubRules.Count > 0)
{
var dcs = new DataScrubMigrator();
var result = await dcs.StartScrub(filteredScrubRules);
}
logger.LogScrubRulesInformation(DocumentMigrator.scrubRules);
if (CloneSettings.CopyStoredProcedures) { await CopyStoredProcedures(); }
if (CloneSettings.CopyUDFs) { await CopyUDFs(); }
if (CloneSettings.CopyTriggers) { await CopyTriggers(); }
IsCodeMigrationComplete = true;
return true;
}