private SsrsDataSetDataSourceReferenceRewriter ParseRule(string ruleString) { var sut = new RewriteRuleParser(); var rule = sut.Parse(ruleString); Assert.That(rule, Is.InstanceOf <SsrsDataSetDataSourceReferenceRewriter>()); return((SsrsDataSetDataSourceReferenceRewriter)rule); }
public IJob CreateJob() { if (String.IsNullOrWhiteSpace(SsrsUriString)) { throw new InvalidArgumentsException("No SSRS URI specified."); } if (!Uri.TryCreate(SsrsUriString, UriKind.Absolute, out _)) { throw new InvalidArgumentsException($"Not a valid absolute URI: {SsrsUriString}"); } var source = GetObjectSource(); if (!source.HasManifest && Site != null) { throw new InvalidArgumentsException("--site was specified but no manifest was found."); } if (!new SsrsObjectTypesParser().ValidateTypes(ObjectFilter.TypeFilter, out var invalidTypes)) { throw new InvalidArgumentsException($"Invalid object types: {invalidTypes}"); } var filter = new SsrsObjectFilter { ObjectTypes = new SsrsObjectTypesParser().GetTypeFilter(ObjectFilter.TypeFilter), Path = new PathFilterExpression( PathFilter.ParseGlob(ObjectFilter.IncludePaths) ?? PathFilter.MatchAll, PathFilter.ParseGlob(ObjectFilter.ExcludePaths) ), Site = Site }; var ssrsUri = new Uri(SsrsUriString, UriKind.Absolute); var service = ReportingServiceClientFactory.CreateFromShorthandUri(ssrsUri); var job = new ImportJob(service, source, filter) { Overwrite = Overwrite, BackupTarget = GetBackupTarget() }; foreach (var rule in RewriteRules) { var rewriter = new RewriteRuleParser().Parse(rule); job.Rewriters.Add(rewriter); } return(job); }