// Load all message templates. private void LoadAllMessageTemplates() { DataTable dtTemplates = MessageTemplateDAL.GetAllMessageTemplates(); foreach (DataRow dr in dtTemplates.Rows) { int templateId = StringUtil.GetSafeInt(dr["TemplateId"]); int templateCategoryId = StringUtil.GetSafeInt(dr["TemplateCategoryId"]); String templateName = StringUtil.GetSafeString(dr["TemplateName"]); String templateContent = StringUtil.GetSafeString(dr["TemplateContent"]); MessageTemplateType templateType = new MessageTemplateType(); templateType.TemplateId = templateId; templateType.TemplateName = templateName; templateType.TemplateCategoryId = templateCategoryId; templateType.TemplateContent = templateContent; TreeNode newNode = new TreeNode(); newNode.Tag = templateType; newNode.Text = templateName; newNode.Name = templateId.ToString(); // Find the category node. TreeNode[] categoryNodes = treeViewMessageTemplate.Nodes.Find(templateCategoryId.ToString(), false); if (categoryNodes.Length == 1) { categoryNodes[0].Nodes.Add(newNode); categoryNodes[0].ExpandAll(); } } }
// Invoked when user right click one message template and chose to delete that message template. private void ToolStripMenuItemDelMessageTemplate_Click(object sender, EventArgs e) { TreeNode node = treeViewMessageTemplate.SelectedNode; if (node == null) { return; } if (node.Tag == null) { return; } if (node.Tag.GetType() != typeof(MessageTemplateType)) { return; } MessageTemplateType messageTemplate = (MessageTemplateType)node.Tag; if (messageTemplate == null) { return; } MessageTemplateDAL.DeleteOneMessageTemplate(messageTemplate.TemplateId); // Find the category node. TreeNode[] categoryNodes = treeViewMessageTemplate.Nodes.Find(messageTemplate.TemplateCategoryId.ToString(), false); if (categoryNodes.Length > 0) { categoryNodes[0].Nodes.Remove(node); } }
// Delete a message template category, if there are any message templates under // this category, prompt user. private void ToolStripMenuItemDelCategory_Click(object sender, EventArgs e) { TreeNode node = treeViewMessageTemplate.SelectedNode; if (node == null) { return; } if (node.Tag == null) { return; } if (node.Tag.GetType() != typeof(MessageTemplateCategoryType)) { return; } MessageTemplateCategoryType categoryType = (MessageTemplateCategoryType)node.Tag; int categoryId = categoryType.CategoryId; DataTable dtMessageTemplates = MessageTemplateDAL.GetAllMessageTemplatesWithCategoryId(categoryId); if (dtMessageTemplates.Rows.Count > 0) { if (MessageBox.Show(string.Format("确认删除主题 {0}? 我们将删除所有隶属该主题的消息模板", categoryType.CategoryName), "请确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.No) { return; } } // Either cases: // 1) The category has message templates and user confirmed to delete the category. // 2) The category has no message templates. // Delete all the relevant message templates first. foreach (DataRow dr in dtMessageTemplates.Rows) { int messageTemplateId = StringUtil.GetSafeInt(dr["TemplateId"]); MessageTemplateDAL.DeleteOneMessageTemplate(messageTemplateId); } MessageTemplateCategoryDAL.DeleteOneMessageTemplateCategory(categoryType.CategoryId); treeViewMessageTemplate.Nodes.Remove(node); }
private void LoadAllMessageTemplates() { this.tvMessageTemplates.Nodes.Clear(); DataTable dtMessageCategories = MessageTemplateCategoryDAL.GetAllMessageTemplateCategories(); DataTable dtMessageTemplates = MessageTemplateDAL.GetAllMessageTemplates(); foreach (DataRow drCategory in dtMessageCategories.Rows) { int categoryId = StringUtil.GetSafeInt(drCategory["CategoryId"]); String categoryName = StringUtil.GetSafeString(drCategory["CategoryName"]); MessageTemplateCategoryType catType = new MessageTemplateCategoryType(); TreeNode catNode = new TreeNode(); catNode.Tag = catType; catNode.Text = categoryName; catNode.Name = categoryId.ToString(); this.tvMessageTemplates.Nodes.Add(catNode); } foreach (DataRow drMessageTemplate in dtMessageTemplates.Rows) { int templateId = StringUtil.GetSafeInt(drMessageTemplate["TemplateId"]); int categoryId = StringUtil.GetSafeInt(drMessageTemplate["TemplateCategoryId"]); String templateName = StringUtil.GetSafeString(drMessageTemplate["TemplateName"]); String templateContent = StringUtil.GetSafeString(drMessageTemplate["TemplateContent"]); MessageTemplateType templateType = new MessageTemplateType(); templateType.TemplateId = templateId; templateType.TemplateCategoryId = categoryId; templateType.TemplateName = templateName; templateType.TemplateContent = templateContent; TreeNode msgNode = new TreeNode(); msgNode.Tag = templateType; msgNode.Text = templateName; TreeNode[] catNodes = this.tvMessageTemplates.Nodes.Find(categoryId.ToString(), false); if (catNodes.Length > 0) { catNodes[0].Nodes.Add(msgNode); } } this.tvMessageTemplates.ExpandAll(); }
} // treeViewMessageTemplate_AfterSelect private void buttonModifyMessageTemplate_Click(object sender, EventArgs e) { TreeNode node = treeViewMessageTemplate.SelectedNode; if (node == null) { return; } if (node.Tag == null) { return; } if (node.Tag.GetType() != typeof(MessageTemplateType)) { return; } MessageTemplateType messageTemplate = (MessageTemplateType)node.Tag; if (messageTemplate == null) { return; } this.buttonModifyMessageTemplate.Enabled = false; int templateId = messageTemplate.TemplateId; int templateCategoryId = messageTemplate.TemplateCategoryId; String templateName = StringUtil.GetSafeString(this.textBoxMessageTemplateName.Text); String templateContent = StringUtil.GetSafeString(this.richTextBoxMessageTemplateContent.Text); messageTemplate.TemplateName = templateName; messageTemplate.TemplateContent = templateContent; MessageTemplateDAL.ModifyOneMessageTemplate(messageTemplate); MessageBox.Show("成功修改消息模板!", "成功", MessageBoxButtons.OK, MessageBoxIcon.Information); this.buttonModifyMessageTemplate.Enabled = true; }
// Add message template button handler. private void buttonAddMessageTemplate_Click(object sender, EventArgs e) { int categoryId = -1; { if (treeViewMessageTemplate.SelectedNode == null) { return; } MessageTemplateCategoryType categoryType = (MessageTemplateCategoryType)treeViewMessageTemplate.SelectedNode.Tag; if (categoryType == null) { return; } categoryId = categoryType.CategoryId; } if (categoryId < 0) { return; } String templateName = this.textBoxMessageTemplateName.Text.Trim(); if (templateName == null || templateName == "") { MessageBox.Show("消息模板名称不能为空", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } this.buttonAddMessageTemplate.Enabled = false; // Whether we have already added one message template with the same name. MessageTemplateType existedMessagetTemplateType = MessageTemplateDAL.GetMessageTemplate(categoryId, templateName); if (existedMessagetTemplateType != null) { MessageBox.Show("已存在此消息模板名,请输入不同消息模板名称!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); this.buttonAddMessageTemplate.Enabled = true; return; } String templateContent = this.richTextBoxMessageTemplateContent.Text.Trim(); if (templateContent == null || templateContent.Trim() == "") { MessageBox.Show("消息模板正文不能为空", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); this.buttonAddMessageTemplate.Enabled = true; return; } MessageTemplateType templateType = new MessageTemplateType(); templateType.TemplateName = templateName; templateType.TemplateContent = templateContent; templateType.TemplateCategoryId = categoryId; int newTemplateId = 0; MessageTemplateDAL.InsertOneMessageTemplate(templateType, out newTemplateId); TreeNode newNode = new TreeNode(); newNode.Text = templateName; newNode.Tag = templateType; treeViewMessageTemplate.SelectedNode.Nodes.Add(newNode); treeViewMessageTemplate.SelectedNode.ExpandAll(); MessageBox.Show("成功添加消息模板!", "成功", MessageBoxButtons.OK, MessageBoxIcon.Information); this.buttonAddMessageTemplate.Enabled = true; }