// When user done with editing the message template category. // Two possible cases: // 1) Add a new category, or // 2) Modify an existed category. private void treeViewMessageTemplate_AfterLabelEdit(object sender, NodeLabelEditEventArgs e) { if (e.Label == null || e.Label.Trim().Length == 0) { e.CancelEdit = true; e.Node.BeginEdit(); return; } String categoryName = e.Label; MessageTemplateCategoryType categoryType = (MessageTemplateCategoryType)e.Node.Tag; if (categoryType != null) { // Modify an existed category. if (categoryName == categoryType.CategoryName) { return; } categoryType.CategoryName = categoryName; MessageTemplateCategoryDAL.UpdateOneMessageTemplateCategory(categoryType); this.treeViewMessageTemplate.LabelEdit = false; this.treeViewMessageTemplate.SelectedNode = e.Node; return; } // Add a new category. categoryType = new MessageTemplateCategoryType(); categoryType.ParentCategoryId = -1; categoryType.CategoryName = categoryName; categoryType.CategoryDescription = ""; // Check if there is any category with the same category name. MessageTemplateCategoryType existedCategoryType = MessageTemplateCategoryDAL.GetMessageTemplateCategory(categoryName); if (existedCategoryType != null) { MessageBox.Show("已存在此消息模板主题,请输入不同模板主题!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); e.CancelEdit = true; e.Node.BeginEdit(); return; } // Insert the new category to database and return the new category id. int newCatId = 0; MessageTemplateCategoryDAL.InsertOneMessageTemplateCategory(categoryType, out newCatId); categoryType.CategoryId = newCatId; e.Node.EndEdit(false); e.Node.Tag = categoryType; this.treeViewMessageTemplate.SelectedNode = e.Node; this.treeViewMessageTemplate.LabelEdit = false; }
// 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); }
public static bool UpdateOneMessageTemplateCategory(MessageTemplateCategoryType cat) { IDbCommand cmd = DataFactory.CreateCommand(null); cmd.CommandText = @"Update [MessageTemplateCategory] set ParentCategoryId=@ParentCategoryId, CategoryName=@CategoryName, CategoryDescription=@CategoryDescription where CategoryId=@CategoryId"; DataFactory.AddCommandParam(cmd, "@ParentCategoryId", DbType.Int32, cat.ParentCategoryId); DataFactory.AddCommandParam(cmd, "@CategoryName", DbType.String, StringUtil.GetSafeString(cat.CategoryName)); DataFactory.AddCommandParam(cmd, "@CategoryDescription", DbType.String, StringUtil.GetSafeString(cat.CategoryDescription)); DataFactory.AddCommandParam(cmd, "@CategoryId", DbType.Int32, StringUtil.GetSafeInt(cat.CategoryId)); bool result = DataFactory.ExecuteCommandNonQuery(cmd); return(result); }
// Insert one message template category. public static bool InsertOneMessageTemplateCategory(MessageTemplateCategoryType cat, out int newCatId) { newCatId = 0; IDbCommand cmd = DataFactory.CreateCommand(null); cmd.CommandText = @"Insert into [MessageTemplateCategory] (ParentCategoryId, CategoryName, CategoryDescription) values (@ParentCategoryId, @CategoryName, @CategoryDescription)"; DataFactory.AddCommandParam(cmd, "@ParentCategoryId", DbType.Int32, cat.ParentCategoryId); DataFactory.AddCommandParam(cmd, "@CategoryName", DbType.String, StringUtil.GetSafeString(cat.CategoryName)); DataFactory.AddCommandParam(cmd, "@CategoryDescription", DbType.String, StringUtil.GetSafeString(cat.CategoryDescription)); bool result = DataFactory.ExecuteInsertCommand(cmd, out newCatId); return(result); }
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(); }
public static MessageTemplateCategoryType GetMessageTemplateCategory(String categoryName) { String sql_getCategory = String.Format("select * from [MessageTemplateCategory] where CategoryName='{0}'", categoryName); DataTable dt = DataFactory.ExecuteSqlReturnTable(sql_getCategory); if (dt.Rows.Count == 0) { return(null); } DataRow dr = dt.Rows[0]; MessageTemplateCategoryType categoryType = new MessageTemplateCategoryType(); categoryType.CategoryId = StringUtil.GetSafeInt(dr["CategoryId"]); categoryType.ParentCategoryId = StringUtil.GetSafeInt(dr["ParentCategoryId"]); categoryType.CategoryName = StringUtil.GetSafeString(dr["CategoryName"]); return(categoryType); }
// When user selects one of the node in the treeview. private void treeViewMessageTemplate_AfterSelect(object sender, TreeViewEventArgs e) { TreeNode node = treeViewMessageTemplate.SelectedNode; if (node == null) { return; } if (node.Tag == null) { return; } if (typeof(MessageTemplateType) == node.Tag.GetType()) { MessageTemplateType messageTemplate = (MessageTemplateType)node.Tag; if (messageTemplate == null) { return; } this.textBoxMessageTemplateName.Text = StringUtil.GetSafeString(messageTemplate.TemplateName); this.richTextBoxMessageTemplateContent.Text = StringUtil.GetSafeString(messageTemplate.TemplateContent); this.buttonAddMessageTemplate.Enabled = false; this.buttonModifyMessageTemplate.Enabled = true; } else if (typeof(MessageTemplateCategoryType) == node.Tag.GetType()) { MessageTemplateCategoryType messageCategoryType = (MessageTemplateCategoryType)node.Tag; if (messageCategoryType == null) { return; } this.textBoxMessageTemplateName.Text = ""; this.richTextBoxMessageTemplateContent.Text = ""; this.buttonAddMessageTemplate.Enabled = true; this.buttonModifyMessageTemplate.Enabled = false; } } // treeViewMessageTemplate_AfterSelect
// Load all message template categories. private void LoadAllMessageTemplateCategories() { DataTable dtCategories = MessageTemplateCategoryDAL.GetAllMessageTemplateCategories(); this.treeViewMessageTemplate.Nodes.Clear(); foreach (DataRow dr in dtCategories.Rows) { int categoryId = StringUtil.GetSafeInt(dr["CategoryId"]); String categoryName = StringUtil.GetSafeString(dr["CategoryName"]); MessageTemplateCategoryType categoryType = new MessageTemplateCategoryType(); categoryType.CategoryId = categoryId; categoryType.CategoryName = categoryName; TreeNode newNode = new TreeNode(); newNode.Tag = categoryType; newNode.Text = categoryName; newNode.Name = categoryId.ToString(); this.treeViewMessageTemplate.Nodes.Add(newNode); } }
private void ToolStripMenuItemModifyCategory_Click(object sender, EventArgs e) { TreeNode node = treeViewMessageTemplate.SelectedNode; if (node == null) { return; } if (node.Tag == null) { return; } MessageTemplateCategoryType categoryType = (MessageTemplateCategoryType)node.Tag; if (categoryType == null) { return; } this.treeViewMessageTemplate.LabelEdit = true; node.BeginEdit(); } // buttonModifyMessageTemplate_Click
// 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; }