Skip to content

Instantly share code, notes, and snippets.

@DinisCruz
Created January 28, 2014 10:38
Show Gist options
  • Select an option

  • Save DinisCruz/8665419 to your computer and use it in GitHub Desktop.

Select an option

Save DinisCruz/8665419 to your computer and use it in GitHub Desktop.
Script to email TM metadata based on titles list
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