public UploadReport ( string reportName, string rdlFilePath, string serverFolder, bool overwrite ) : IEnumerable |
||
reportName | string | |
rdlFilePath | string | |
serverFolder | string | |
overwrite | bool | |
return | IEnumerable |
public IEnumerable<string> UploadReport(string reportName, string rdlFilePath, string serverFolder, bool overwrite)
{
Byte[] definition = Initialize(rdlFilePath);
ReportingServicesBatchUpload.ReportingServices2005WebService.Warning[] warnings = null;
try {
warnings = _WebService.CreateReport(reportName, serverFolder, overwrite, definition, null);
}
catch (System.Web.Services.Protocols.SoapException e) {
if (e.Message.CompareTo(string.Format("The item '{0}' cannot be found. ---> The item '{0}' cannot be found.", serverFolder)) == 0) {
CreateFolder(serverFolder);
return UploadReport(reportName, rdlFilePath, serverFolder, overwrite);
}
if (overwrite ||
e.Message.CompareTo(string.Format("The item '{0}/{1}' already exists. ---> The item '{0}/{1}' already exists.",serverFolder, reportName)) != 0)
return new string[] { e.Detail.InnerXml.ToString() };
}
IList<string> rc = ProcessWarnings(warnings);
return rc.Count != 0 ? rc : null;
}
private static void ProcessDirectory(string directory, string serverFolder, string url, bool overwrite) { var uploader = new ReportingServicesUploader(); uploader.ReportingServicesWebServiceUrl = string.Format("{0}", url); IList <System.IO.FileInfo> files = new List <System.IO.FileInfo>(); System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(directory); foreach (var file in dir.GetFiles("*.rds")) { files.Add(file); } foreach (var file in dir.GetFiles()) { if (file.Extension.ToLowerInvariant() != ".rds") { files.Add(file); } } foreach (var file in files) { Console.WriteLine("Processing file {0}", file.Name); string reportName = file.Name.Remove(file.Name.Length - 4); IEnumerable <string> warnings = null; switch (file.Extension.ToLowerInvariant()) { case ".bmp": case ".jpg": case ".png": warnings = uploader.UploadResource(file.Name, file.FullName, serverFolder, overwrite); break; case ".rds": warnings = uploader.UploadDataSource(file.FullName, serverFolder, overwrite); break; case ".rdl": warnings = uploader.UploadReport(file.Name.Remove(file.Name.Length - 4), file.FullName, serverFolder, overwrite); break; default: Console.WriteLine("\tFile type unknown. Skipping"); break; } if (warnings != null) { foreach (var warning in warnings) { Console.Error.WriteLine("\tWarning: {0}", warning); } } } }