//SANDBOX ! //Just use this to code, compile and debug your Razor Script within Visual Studio... //When OK, just cut and paste it into the Script of your Task using the Report Designer public void DesignMyRazorScript() { DataTable table = new DataTable(); table.Columns.Add(new DataColumn("Id", typeof(string))); table.Columns.Add(new DataColumn("Date", typeof(DateTime))); table.Columns.Add(new DataColumn("Title", typeof(string))); table.Columns.Add(new DataColumn("Summary", typeof(string))); table.Columns.Add(new DataColumn("Link", typeof(string))); table.Columns.Add(new DataColumn("Categories", typeof(string))); var task = this._task; TaskHelper helper = this; ReportExecutionLog log = task.Report; //Just replace helper.DesignMyRazorScript(); with the code below var reader = System.Xml.XmlReader.Create("http://msdn.microsoft.com/en-us/subscriptions/subscription-downloads.rss"); var feed = System.ServiceModel.Syndication.SyndicationFeed.Load(reader); foreach (var item in feed.Items) { string link = item.Links.Count > 0 ? item.Links[0].Uri.AbsoluteUri : ""; string categories = ""; foreach (var category in item.Categories) { categories += category.Name + ";"; } table.Rows.Add(item.Id, item.LastUpdatedTime.DateTime, item.Title.Text, item.Summary.Text, link, categories); } }
//SANDBOX ! //Just use this to code, compile and debug your Razor Script within Visual Studio... //When OK, just cut and paste it into the Script of your Task using the Report Designer public void DesignMyRazorScript() { DataTable table = new DataTable(); table.Columns.Add(new DataColumn("Id", typeof(string))); table.Columns.Add(new DataColumn("Date", typeof(DateTime))); table.Columns.Add(new DataColumn("Title", typeof(string))); table.Columns.Add(new DataColumn("Summary", typeof(string))); table.Columns.Add(new DataColumn("Link", typeof(string))); table.Columns.Add(new DataColumn("Categories", typeof(string))); var task = this._task; TaskHelper helper = this; ReportExecutionLog log = task.Report; //Just replace helper.DesignMyRazorScript(); with the code below var reader = System.Xml.XmlReader.Create("http://msdn.microsoft.com/en-us/subscriptions/subscription-downloads.rss"); var feed = System.ServiceModel.Syndication.SyndicationFeed.Load(reader); foreach (var item in feed.Items) { string link = item.Links.Count > 0 ? item.Links[0].Uri.AbsoluteUri : ""; string categories = ""; foreach (var category in item.Categories) { categories += category.Name + ";"; } table.Rows.Add(item.Id, item.LastUpdatedTime.DateTime, item.Title.Text, item.Summary.Text, link, categories); } foreach (var path in File.ReadAllLines(@"c:\temp\test.sql")) { var newPath = path.Replace("@", "").Replace("\"", "").Replace(";", ""); var command = task.GetDbCommand(task.Connection); try { command.CommandText = File.ReadAllText(newPath); command.ExecuteScalar(); } finally { command.Connection.Close(); } } }
public static void CopyDirectory(string source, string destination, bool recursive, ReportExecutionLog log = null, string searchPattern = "*") { if (!Directory.Exists(destination)) Directory.CreateDirectory(destination); foreach (string file in Directory.GetFiles(source, searchPattern)) { try { var destinationFile = Path.Combine(destination, Path.GetFileName(file)); if (log != null) log.LogMessage("Copy '{0}' to '{1}'", file, destinationFile); File.Copy(file, destinationFile, true); } catch (Exception ex) { Debug.WriteLine(ex.Message); } } if (recursive) { foreach (string directory in Directory.GetDirectories(source)) { CopyDirectory(directory, Path.Combine(destination, Path.GetFileName(directory)), recursive, log, searchPattern); } } }
public static void FtpCopyDirectory(FtpClient client, string source, string destination, bool recursive, ReportExecutionLog log = null) { if (log != null) { log.LogMessage("Copying directory '{0}' to '{1}'", source, destination); } if (!destination.EndsWith("/")) { destination += "/"; } if (recursive) { foreach (var folder in Directory.GetDirectories(source)) { var dest = destination + Path.GetFileName(folder); if (log != null) { log.LogMessage("Copying directory '{0}' to '{1}'", folder, dest); } var results = client.UploadDirectory(folder, dest, FtpFolderSyncMode.Update, FtpRemoteExists.Overwrite); if (log != null) { foreach (var result in results.Where(i => i.IsSuccess)) { log.LogMessage("'{0}'", result.RemotePath); } foreach (var result in results.Where(i => i.Exception != null)) { log.LogMessage("'{0}' Error: {1}", result.RemotePath, result.Exception.Message + (result.Exception.InnerException != null ? " " + result.Exception.InnerException.Message : "")); } } } } foreach (var file in Directory.GetFiles(source)) { var dest = destination + Path.GetFileName(file); if (log != null) { log.LogMessage("Copying file '{0}' to '{1}'", file, dest); } try { client.UploadFile(file, dest); } catch (Exception ex) { if (log != null) { log.LogMessage("'{0}' Error: '{1}'", file, ex.Message + (ex.InnerException != null ? " " + ex.InnerException.Message : "")); } } } }
/// <summary> /// Put directories and file to an FTP Server /// </summary> public void FtpPutDirectory(string source, string destination, bool recursive, ReportExecutionLog log, CustomFtpGetRequest ftpGetRequest, string searchPattern = "*") { if (ftpGetRequest == null) { ftpGetRequest = FtpGetRequest; } if (!FtpDirectoryExists(destination, ftpGetRequest)) { if (log != null) { log.LogMessage("Creating remote directory: " + destination); } var request = ftpGetRequest(destination, WebRequestMethods.Ftp.MakeDirectory); var response = request.GetResponse(); response.Close(); } foreach (string file in Directory.GetFiles(source, searchPattern)) { try { var destinationFile = Path.Combine(destination, Path.GetFileName(file)).Replace("\\", "/"); if (log != null) { log.LogMessage("Copy '{0}' to '{1}'", file, destinationFile); } FtpPutFile(file, destinationFile, ftpGetRequest); } catch (Exception ex) { if (log != null) { log.LogMessage(ex.Message); } } } if (recursive) { foreach (string directory in Directory.GetDirectories(source)) { FtpPutDirectory(directory, Path.Combine(destination, Path.GetFileName(directory)).Replace("\\", "/"), recursive, log, ftpGetRequest, searchPattern); } } }