/// <summary> /// TODO: ADD SUMMARY. /// </summary> /// <param name="doc"></param> /// <returns></returns> public static ICollection<PrivateMessageFolderMetadata> ParseFolderList(HtmlDocument doc) { List<PrivateMessageFolderMetadata> folders = new List<PrivateMessageFolderMetadata>(); // get select option nodes var top = doc.DocumentNode; var selectNode = top.Descendants("select") .Where(node => node.GetAttributeValue("name", string.Empty).Equals("folderid")) .FirstOrDefault(); if (selectNode != null) { var optionNodes = selectNode.Descendants("option"); foreach (var option in optionNodes) { try { PrivateMessageFolderMetadata folder = new PrivateMessageFolderMetadata(); folder.Messages = new List<PrivateMessageMetadata>(); string name = option.NextSibling.InnerText.Trim(); string value = option.GetAttributeValue("value", string.Empty); folder.FolderId = value; folder.Name = name; folders.Add(folder); } catch (Exception) { } } } return folders; }
public void Refresh() { if (this._metadata == null) throw new Exception("Cannot refresh with null metadata."); var refreshed = this._metadata.Refresh(); Metadata = refreshed; }
/// <summary> /// /// </summary> /// <param name="folder"></param> public void DeleteFolder(PrivateMessageFolderMetadata folder) { // folder index = folder id + 1 int index = -1; int.TryParse(folder.FolderId, out index); index = index + 1; // set folder field to empty this.FolderTable[index] = string.Empty; }
private void SetProperties(PrivateMessageFolderMetadata value) { if (!string.IsNullOrEmpty(value.Name)) Title = value.Name; if (!value.Messages.IsNullOrEmpty()) this._messages = value.Messages .Select(message => new PrivateMessageDataSource() { Metadata = message }) .ToList(); }
/// <summary> /// /// </summary> /// <param name="folder"></param> /// <param name="newFolderName"></param> public void RenameFolder(PrivateMessageFolderMetadata folder, string newFolderName) { // folder index = folder id + 1 int index = -1; int.TryParse(folder.FolderId, out index); index = index + 1; // rename field this.FolderTable[index] = newFolderName; }
public void Refresh() { if (this._metadata == null) { throw new Exception("Cannot refresh with null metadata."); } var refreshed = this._metadata.Refresh(); Metadata = refreshed; }
public override PrivateMessageFolderMetadata LoadFolder(string folderId) { int id = -1; PrivateMessageFolderMetadata folder = null; if (int.TryParse(folderId, out id)) { folder = PrivateMessageService.Service.FetchFolder(id); } return(folder); }
private void SetProperties(PrivateMessageFolderMetadata value) { if (!string.IsNullOrEmpty(value.Name)) { Title = value.Name; } if (!value.Messages.IsNullOrEmpty()) { this._messages = value.Messages .Select(message => new PrivateMessageDataSource() { Metadata = message }) .ToList(); } }
/// <summary> /// /// </summary> /// <param name="htmlDocument"></param> /// <returns></returns> public static PrivateMessageFolderMetadata ParsePrivateMessageFolder(HtmlDocument htmlDocument) { PrivateMessageFolderMetadata folder = null; var top = htmlDocument.DocumentNode; var currentFolderNode = top.Descendants("div") .Where(node => node.GetAttributeValue("class", string.Empty).Equals("breadcrumbs")) .FirstOrDefault(); if (currentFolderNode != null) { // ************************************************************* // THIS IS CURRENTLY BROKEN ON SA -- THE TITLE OF THE FOLDER IS *NOT* WHAT'S DISPLAYED ON THE BREADCRUMBS // string name = currentFolderNode.ParseTitleFromBreadcrumbsNode(); // ************************************************************* var idString = GetInputValue(top.Descendants("input").ToArray(), "thisfolder"); folder = new PrivateMessageFolderMetadata() { FolderId = idString }; var messages = ParseMessageList(htmlDocument); folder.Messages = messages; foreach (var message in messages) { message.FolderId = folder.FolderId; } } return folder; }