コード例 #1
0
        // 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;
        }
コード例 #2
0
        // 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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        // 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);
        }
コード例 #5
0
        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();
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        // 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
コード例 #8
0
        // 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);
            }
        }
コード例 #9
0
        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
コード例 #10
0
        // 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;
        }