Created
January 28, 2014 10:38
-
-
Save DinisCruz/8665419 to your computer and use it in GitHub Desktop.
Script to email TM metadata based on titles list
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| var titlesData = "https://gist.github.com/DinisCruz/8653339/raw/ce19914729bc232fdbfae2348803abeceb0b4ec8/gistfile1.txt"; | |
| var email_ToFrom = "dcruz@securityinnovation.com"; | |
| var email_Subject = "TM Articles analysis"; | |
| var email_Body = "Please see the attached zip for the current analysis based on of titles from {0}".format(titlesData); | |
| var tmDatabase = TM_Xml_Database.Current; | |
| var secretData = tmDatabase.UserData.SecretData; | |
| var articles = tmDatabase.Cached_GuidanceItems.Values; | |
| var articlePaths = tmDatabase.GuidanceItems_FileMappings; | |
| Action<string,string, string,string> sendEmail = | |
| (toFrom, subject, body, file)=> | |
| { | |
| var mailMsg = new MailMessage(); | |
| mailMsg.To.Add(new MailAddress(toFrom)); | |
| mailMsg.From = new MailAddress(toFrom); | |
| mailMsg.Subject = subject; | |
| mailMsg.Body = body; | |
| mailMsg.Attachments.Add(new Attachment(file)); | |
| var smtpClient = new SmtpClient(secretData.SMTP_Server, 587); | |
| var credentials = new NetworkCredential(secretData.SMTP_UserName, secretData.SMTP_Password); | |
| smtpClient.Credentials = credentials; | |
| smtpClient.Send(mailMsg); | |
| }; | |
| Action<string> performAnalysis = | |
| (targetFile)=> | |
| { | |
| var file = titlesData.GET(); | |
| var titles = file.split("\n"); | |
| var articlesMatches = new List<TeamMentor_Article>(); | |
| foreach(var article in articles) | |
| if(titles.contains(article.Metadata.Title)) | |
| articlesMatches.add(article); | |
| var csvMappings = "TITLE,GUID,CATEGORY,PHASE,TECHNOLOGY,TYPE".line(); | |
| foreach(var articlesMatch in articlesMatches) | |
| { | |
| var metadata = articlesMatch.Metadata; | |
| csvMappings += "\"{0}\",{1},{2},{3},{4},{5}".line().format(metadata.Title, metadata.Id.str(), | |
| metadata.Category, metadata.Phase, | |
| metadata.Technology, metadata.Type); | |
| } | |
| csvMappings.saveAs(targetFile); | |
| }; | |
| var titlesMetadata = "TitlesMetadata.txt".tempFile(); | |
| performAnalysis(titlesMetadata); | |
| sendEmail(email_ToFrom, email_Subject, email_Body,titlesMetadata); | |
| return "done"; | |
| //using TeamMentor.CoreLib; | |
| //O2Ref:TeamMentor.CoreLib.dll | |
| //using System.Net.Mail; | |
| //using System.Net; | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment