private void btnSelectPath_Click(object sender, EventArgs e)
 {
     try
     {
         CommonOpenFileDialog cofd = new CommonOpenFileDialog();
         cofd.Title            = "Chọn nơi lưu truyện";
         cofd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
         cofd.IsFolderPicker   = true;
         if (cofd.ShowDialog() == CommonFileDialogResult.Ok)
         {
             txtSaveFilePath.Text = cofd.FileName;
             Config.EditKey("SavePath", cofd.FileName);
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Warning);
     }
 }
        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (lvRuleWebList.SelectedItems.Count > 0)
            {
                DialogResult dr = MessageBox.Show("Bạn có chắc chắn muốn xóa rules này không?",
                                                  "Cảnh báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                if (dr == DialogResult.Yes)
                {
                    string web       = lvRuleWebList.SelectedItems[0].SubItems[1].Text;
                    string webString = Config.KeyValue("Website");

                    //Xóa key web khỏi app.config
                    Config.RemoveKey(web);

                    //Xóa chuỗi web khỏi key Website trong app.config
                    if (webString.Contains("|" + web))
                    {
                        webString = webString.Replace("|" + web, "");
                    }
                    else if (webString.Contains(web + "|"))
                    {
                        webString = webString.Replace(web + "|", "");
                    }
                    else
                    {
                        webString = webString.Replace(web, "");
                    }
                    Config.EditKey("Website", webString);
                    lvRuleWebList.Items.Clear();
                    ClearControl();
                    EnableControl(false);
                    ShowRuleList();
                }
            }
            else
            {
                MessageBox.Show("Bạn phải chọn một rule trong danh sách để xóa", "Thông báo",
                                MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
 private void btnSave_Click(object sender, EventArgs e)
 {
     if (tabSetting.SelectedTab == tabSetting.TabPages["tpDeletePhrase"])
     {
         try
         {
             List <string> lines = File.ReadLines(deletePhraseFile).ToList();
             lines.RemoveAll(item => item.StartsWith(selectedItem));
             if (txtDeletePhrasePattern.Lines.Length != 0)
             {
                 for (int i = 0; i < txtDeletePhrasePattern.Lines.Length; i++)
                 {
                     string deletePhrasePattern = txtDeletePhrasePattern.Lines[i];
                     if (Regex.IsMatch(deletePhrasePattern, @"^(.+)==(.*)$"))
                     {
                         lines.Add(selectedItem + "==" + deletePhrasePattern);
                         lines.Sort();
                         Config.WriteFile(deletePhraseFile, lines);
                         Invoke(new MethodInvoker(delegate { lblInfo.Text = "Đã lưu"; }));
                     }
                 }
             }
             else
             {
                 Config.WriteFile(deletePhraseFile, lines);
                 Invoke(new MethodInvoker(delegate { lblInfo.Text = "Đã lưu"; }));
             }
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message, "Lỗi", MessageBoxButtons.OK,
                             MessageBoxIcon.Error);
         }
     }
     else if (tabSetting.SelectedTab == tabSetting.TabPages["tpRuleWeb"])
     {
         try
         {
             if (string.IsNullOrEmpty(txtRuleName.Text.Trim()) ||
                 string.IsNullOrEmpty(txtChapList.Text.Trim()) ||
                 string.IsNullOrEmpty(txtTitle.Text.Trim()) ||
                 string.IsNullOrEmpty(txtContent.Text.Trim()) ||
                 string.IsNullOrEmpty(txtStart.Text.Trim()) ||
                 string.IsNullOrEmpty(txtEnd.Text.Trim()))
             {
                 MessageBox.Show("Các ô không được để trống", "Thông báo",
                                 MessageBoxButtons.OK, MessageBoxIcon.Warning);
                 LoadDataFromListviewToTextbox();
             }
             else
             {
                 string value = txtChapList.Text.Trim() + "|" + txtChapAddress.Text.Trim() + "|"
                                + txtStart.Text.Trim() + "|" + txtEnd.Text.Trim() + "|"
                                + txtTitle.Text.Trim() + "|" + txtContent.Text.Trim() + "|"
                                + ((chkIsEncodeGB2312.Checked) ? "true" : "false") + "|"
                                + ((chkIsReverse.Checked) ? "true" : "false") + "|"
                                + ((chkIsRightToLeft.Checked) ? "true" : "false");
                 if (lvRuleWebList.SelectedItems.Count > 0)
                 {
                     Config.EditKey(lvRuleWebList.SelectedItems[0].SubItems[1].Text, value);
                 }
                 else
                 {
                     string webString = Config.KeyValue("Website");
                     //Kiểm tra rule mới có trùng hay không
                     if (!Regex.IsMatch(txtRuleName.Text.Trim(), @"^(www\.).+(\.\w{2,3})"))
                     {
                         MessageBox.Show("Rule " + "\"" + txtRuleName.Text.Trim() + "\"" + " của bạn không đúng định dạng",
                                         "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                     }
                     else if (webString.Contains(txtRuleName.Text.Trim()))
                     {
                         MessageBox.Show("Rule " + "\"" + txtRuleName.Text.Trim() + "\"" + " của bạn đã có trong dữ liệu",
                                         "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                     }
                     else
                     {
                         Config.AddKey(txtRuleName.Text.Trim(), value);
                         Config.EditKey("Website", webString + "|" + txtRuleName.Text.Trim());
                         lvRuleWebList.Items.Clear();
                         ClearControl();
                         ShowRuleList();
                         ActiveControl = txtRuleName;
                     }
                 }
             }
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message, "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     }
 }