示例#1
0
        private void saveButton_Click(object sender, EventArgs e)
        {

            ContentProviderController controller = new ContentProviderController();
            List<ContentProvider> providers = controller.Providers;
            var rows = providerGridView.Rows; // lấy tất cả các row của grid view
            for (int i = 0; i < rows.Count; i++)
            {
                // kiểm tra uri không được rỗng
                if (rows[i].Cells[1].Value != null)
                {
                    ContentProvider provider = new ContentProvider();
                    provider.Name = rows[i].Cells[0].Value.ToString();
                    provider.Uri = new Uri(rows[i].Cells[1].Value.ToString());
                    provider.CatagorySelector = rows[i].Cells[2].Value.ToString();
                    provider.UrlSelector = rows[i].Cells[3].Value.ToString();
                    provider.TitleSelector = rows[i].Cells[4].Value.ToString();
                    provider.SummanySelector = rows[i].Cells[5].Value.ToString();
                    provider.ContentSelector = rows[i].Cells[6].Value.ToString();
                    provider.TimeSelector = rows[i].Cells[7].Value.ToString();
                    provider.AuthorSelector = rows[i].Cells[8].Value.ToString();
                    
                    // thêm provider vào list providers
                    providers.Add(provider);
                }               
            }
            // truyền providers cho controller
            controller.Providers = providers;
            // lưu provider xuống file xml
            controller.SaveProviders();
            // hiện thông báo thành công
            MessageBox.Show(this, "Đã lưu dữ liệu thành công", "Lưu dữ liệu thành công", MessageBoxButtons.OK, MessageBoxIcon.Information);
            _isGridViewChanged = false; // gán lại cờ grid view thay đổi = false
        }
        public void LoadProviders()
        {
            // load xml từ StreamReader
            StreamReader sr = new StreamReader(PROVIDER_FILE_PATH, Encoding.Unicode);
            Xml.Load(sr);

            // lấy toàn bộ node của file xml
            XmlNodeList nodes = Xml.GetElementsByTagName("provider");

            // duyệt các node để lấy dữ liệu
            for (int i = 0; i < nodes.Count; i++)
            {
                XmlNodeList children = nodes[i].ChildNodes;
                ContentProvider provider = new ContentProvider();

                // duyệt lấy thông tin từ node con
                for (int j = 0; j < children.Count; j++)
                {
                    switch (children[j].Name)
                    {
                        case "name":
                            provider.Name = children[j].InnerText;
                            break;
                        case "uri":
                            provider.Uri = new Uri(children[j].InnerText);
                            break;
                        case "catagory":
                            provider.CatagorySelector = children[j].InnerText;
                            break;
                        case "title":
                            provider.TitleSelector = children[j].InnerText;
                            break;
                        case "summany":
                            provider.SummanySelector = children[j].InnerText;
                            break;
                        case "content":
                            provider.ContentSelector = children[j].InnerText;
                            break;
                        case "time":
                            provider.TimeSelector = children[j].InnerText;
                            break;
                        case "url":
                            provider.UrlSelector = children[j].InnerText;
                            break;
                        case "author":
                            provider.AuthorSelector = children[j].InnerText;
                            break;
                    } // end switch case statement
                } // end for loop

                // thêm provider vào list
                Providers.Add(provider);       
            }
            sr.Close(); // đóng luồng 
        }