// Load vsPages private void LoadPages(XmlTextReader reader) { try { // load all vsPages while (reader.Name == "Page") { int depth = reader.Depth; // create new camera VsPage page = new VsPage(reader.GetAttribute("name"), SyncTimer); page.PageID = int.Parse(reader.GetAttribute("id")); page.Description = reader.GetAttribute("desc"); // read vsCameras string[] strIDs = reader.GetAttribute("channels").Split(','); for (int i = 0; i < VsPage.MaxChannel; i++) { int id = int.Parse(strIDs[i]); page.SetChannel(id, GetChannelByID(id)); } // add page vsPages.Add(page); if (page.PageID >= vsNextPageID) vsNextPageID = page.PageID + 1; // move to next node reader.Read(); // move to next element node while (reader.NodeType == XmlNodeType.EndElement) reader.Read(); if (reader.Depth < depth) return; } } catch (Exception err) { logger.Log(LogLevel.Error, err.Message + " " + err.Source + " " + err.StackTrace);; } }
// Add channel public bool AddPage(String pageName, String[] channelList) { try { // if this name is already exist if (GetPageByName(pageName) != null) return false; VsPage vsPage = new VsPage(pageName, SyncTimer); foreach (String channelName in channelList) { VsChannel vsChannel = GetChannelByName(channelName); if (vsChannel != null) vsPage.SetChannel(vsChannel.ChannelID, vsChannel); } // add to page collection AddPage(vsPage); return true; } catch (Exception ex) { Console.WriteLine(ex.Message); } return false; }