示例#1
0
        //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);
            }
        }
示例#2
0
        //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();
                }
            }
        }
示例#3
0
        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);
                }
            }
        }
示例#4
0
        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 : ""));
                    }
                }
            }
        }
示例#5
0
        /// <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);
                }
            }
        }