private async Task ExportDataSet(string directoryPath, SsrsDataSet dataSet)
        {
            var filePath = Path.Combine(directoryPath, $"{dataSet.Name}.rsd");

            using (var stream = File.OpenWrite(filePath))
            {
                var bytes = await dataSet.Definition.GetBytes();

                await stream.WriteAsync(bytes, 0, bytes.Length);
            }
        }
예제 #2
0
        private async Task ImportDataSet(SsrsDataSet item)
        {
            var parentPath = await service.GetOrCreateContainer(item.Path, log);

            log.DebugFormat("Importing dataset: '{0}'", item.Path);
            try
            {
                var response = await service.Proxy.CreateCatalogItemAsync(new CreateCatalogItemRequest {
                    TrustedUserHeader = trustedUserHeader,
                    ItemType          = CatalogItemType.DataSet.ToString(),
                    Name       = item.Name,
                    Parent     = parentPath,
                    Overwrite  = Overwrite,
                    Definition = await item.Definition.GetBytes()
                });

                log.LogServiceWarnings(response.Warnings);
            }
            catch (FaultException)
            {
                if (Overwrite)
                {
                    throw;              // Failure wasn't caused by existence of item.
                }
                if (!await service.ItemExists(item.Path))
                {
                    throw;
                }
            }
            // The Overwrite option doesn't replace the definition for some reason.
            await service.Proxy.SetItemDataSourcesAsync(new SetItemDataSourcesRequest {
                TrustedUserHeader = trustedUserHeader,
                ItemPath          = item.Path,
                DataSources       = new[] {
                    new DataSource {
                        Name = "DataSetDataSource",
                        Item = new DataSourceReference {
                            Reference = item.DataSourceReference
                        }
                    }
                }
            });
        }
예제 #3
0
 private void DescribeDataSet(TextWriter output, SsrsDataSet dataSet)
 {
     output.WriteLine($"Data Source:     {dataSet.DataSourceReference}");
 }