Beispiel #1
0
        private void ProviderManager_Load(object sender, EventArgs e)
        {
            // khởi tạo controller
            ContentProviderController controller = new ContentProviderController();
            // load provider từ file xml
            controller.LoadProviders();
            List<ContentProvider> providers = controller.Providers;

            for (int i = 0; i < providers.Count; i++)
            {
                string[] row = new string[] { providers[i].Name, 
                    providers[i].Uri.ToString() , 
                    providers[i].CatagorySelector,
                    providers[i].UrlSelector,
                    providers[i].TitleSelector,
                    providers[i].SummanySelector,
                    providers[i].ContentSelector,
                    providers[i].TimeSelector,
                    providers[i].AuthorSelector
                };
                // thêm một row vào grid view
                providerGridView.Rows.Add(row);
            }
            // khởi tạo cờ thay đổi = false
            _isGridViewChanged = false;
        }
        private List<ContentProvider> _providers; // danh sách các provider

        public ContentTreeController()
        {
            ContentProviderController providerController = new ContentProviderController();
            // lấy danh sách các provider từ xml
            providerController.LoadProviders();
            _providers = providerController.Providers;
        }
        public Catagory GetCatagory(string providerName, string catagoryName)
        {
            // load xml từ StreamReader
            XmlDocument xml = new XmlDocument();
            StreamReader sr = new StreamReader(ContentTreeController.TREE_DATA_PATH, Encoding.Unicode);
            xml.Load(sr);

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

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

                if (providers[i].Attributes["name"].Value.Trim().ToLower() == providerName.Trim().ToLower()) {

                    // duyệt lấy thông tin từ node con
                    for (int j = 0; j < children.Count; j++)
                    {
                        if (children[j].Attributes["name"].Value.Trim().ToLower() == catagoryName.Trim().ToLower())
                        {
                            _catagory = new Catagory();
                            _catagory.Name = catagoryName;
                            _catagory.Uri = new Uri(children[j].InnerText);
                            ContentProviderController cpc = new ContentProviderController();
                            cpc.LoadProviders();
                            _catagory.Provider = cpc.GetProviderByName(providerName); 
                        }
                    } // end for loop
                }

            }

            sr.Close(); // đóng luồng 

            return _catagory;
        }