private void birthdeathCatsToolStripMenuItem_Click(object sender, EventArgs e)
{
if (TheArticle == null)
return;
try
{
string articleTextLocal = txtEdit.Text;
// ignore dates in file captions etc.
articleTextLocal = Tools.ReplaceWithSpaces(articleTextLocal, WikiRegexes.FileNamespaceLink.Matches(articleTextLocal));
// ignore dates from dated maintenance tags etc.
foreach (Match m2 in WikiRegexes.NestedTemplates.Matches(articleTextLocal))
{
if (Tools.GetTemplateParameterValue(m2.Value, "date").Length > 0)
articleTextLocal = articleTextLocal.Replace(m2.Value, "");
}
foreach (Match m2 in WikiRegexes.TemplateMultiline.Matches(articleTextLocal))
{
if (Tools.GetTemplateParameterValue(m2.Value, "date").Length > 0)
articleTextLocal = articleTextLocal.Replace(m2.Value, "");
}
MatchCollection m = RegexDates.Matches(articleTextLocal);
//find first dates
string births = "", deaths = "";
if (m.Count >= 1)
births = m[0].Value;
if (m.Count >= 2)
deaths = m[1].Value;
//make name, surname, firstname
string name = Tools.MakeHumanCatKey(TheArticle.Name, TheArticle.ArticleText);
string categories;
if (string.IsNullOrEmpty(deaths) || int.Parse(deaths) < int.Parse(births) + 20)
categories = "[[Category:" + births + " births|" + name + "]]";
else
categories = "[[Category:" + births + " births|" + name + "]]\r\n[[Category:" + deaths + " deaths|" + name + "]]";
txtEdit.SelectedText = categories;
bool noChange;
txtEdit.Text = Parsers.ChangeToDefaultSort(txtEdit.Text, TheArticle.Name, out noChange, restrictDefaultsortChangesToolStripMenuItem.Checked);
// sort if DEFAULTSORT added to ensure correct placement
if (!noChange)
{
txtEdit.Text = Parser.SortMetaData(txtEdit.Text, TheArticle.Name);
}
}
catch (Exception ex)
{
ErrorHandler.HandleException(ex);
}
}