public async Task StartCopy()

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;
        }