/// <summary> /// Returns true if the specified object is rejected by path or by type. /// </summary> public static bool Excludes(this SsrsObjectFilter filter, SsrsObject obj) { if (obj == null) { return(true); } if (!filter.Path.Matches(obj.Path)) { return(true); } if (filter.ObjectTypes != SsrsFilterObjectTypes.All) { switch (obj.Type) { case SsrsObjectType.DataSource: return((filter.ObjectTypes & SsrsFilterObjectTypes.DataSource) == 0); case SsrsObjectType.Report: return((filter.ObjectTypes & SsrsFilterObjectTypes.Report) == 0); case SsrsObjectType.DataSet: return((filter.ObjectTypes & SsrsFilterObjectTypes.DataSet) == 0); } return(true); } return(false); }
public async Task WriteObject(SsrsObject item) { var directoryPath = GetOrCreateContainer(item.Path); if (item is SsrsDataSource dataSource) { await ExportDataSource(directoryPath, dataSource); } if (item is SsrsDataSet dataSet) { await ExportDataSet(directoryPath, dataSet); } if (item is SsrsReport report) { await ExportReport(directoryPath, report); } }
public async Task Rewrite(SsrsObject ssrsObject) { if (ssrsObject is SsrsDataSet dataSet) { if (!ExistingReferenceFilter.Matches(dataSet.DataSourceReference)) { return; } log.DebugFormat("Applying '{0}' to '{1}'", this, dataSet.Path); var reference = ResolveReference(dataSet.Path, ReplacementReference); var bytes = await dataSet.Definition.GetBytes(); var xml = XDocument.Load(new MemoryStream(bytes)); new DataSetXmlSchema().SetDataSourceReference(xml, reference); log.InfoFormat("Dataset '{0}': Data source '{1}' => '{2}'", dataSet.Path, dataSet.DataSourceReference, reference); dataSet.DataSourceReference = reference; dataSet.Definition = new XmlObjectDefinition(xml); } }