ReportingServicesBatchUpload.ReportingServicesUploader.UploadReport C# (CSharp) Method

UploadReport() public method

Uploads new .rdl file to SSRS
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;
        }

Usage Example

Example #1
0
        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);
                    }
                }
            }
        }
All Usage Examples Of ReportingServicesBatchUpload.ReportingServicesUploader::UploadReport