public static bool MoveTo(this PrivateMessageMetadata metadata, PrivateMessageFolderMetadata folder) { return(AwfulContentRequest.Messaging.MoveMessage( metadata.FolderId, folder.FolderId, metadata.PrivateMessageId)); }
/// <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", "").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", ""); folder.FolderId = value; folder.Name = name; folders.Add(folder); } catch (Exception) { } } } return(folders); }
/// <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", "").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); }
/// <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; }
/// <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; }
/// <summary> /// TODO: Add summary here. /// </summary> /// <param name="folderID"></param> /// <param name="result"></param> public PrivateMessageFolderMetadata FetchFolder(int folderID) { string url = string.Format("{0}/{1}?folderid={2}", CoreConstants.BASE_URL, CoreConstants.PRIVATE_MESSAGE_URI, folderID); var web = new AwfulWebClient(); var doc = web.FetchHtml(url).ToHtmlDocument(); PrivateMessageFolderMetadata folder = null; if (doc != null) { folder = PrivateMessageParser.ParsePrivateMessageFolder(doc); } return(folder); }
public static bool DeleteAllMessages(this PrivateMessageFolderMetadata metadata) { return(AwfulContentRequest.Messaging.DeleteAllMessages(metadata.FolderId, metadata.Messages.Select(messsage => messsage.PrivateMessageId))); }
public static bool Delete(this PrivateMessageFolderMetadata metadata) { return(AwfulContentRequest.Messaging.DeleteFolder(metadata.FolderId)); }
public static bool RenameTo(this PrivateMessageFolderMetadata metadata, string name) { bool success = AwfulContentRequest.Messaging.RenameFolder(metadata.FolderId, name); return(success); }
public static PrivateMessageFolderMetadata Refresh(this PrivateMessageFolderMetadata metadata) { return(AwfulContentRequest.Messaging.LoadFolder(metadata.FolderId)); }
public static bool MoveTo(this IEnumerable <PrivateMessageMetadata> messages, PrivateMessageFolderMetadata folder) { var idList = new List <string>(messages.Count()); string folderId = messages.First().FolderId; foreach (var message in messages) { if (folderId.Equals(message.FolderId)) { throw new Exception("All messages must belong to the same folder."); } idList.Add(message.PrivateMessageId); } return(AwfulContentRequest.Messaging.MoveMessages(folderId, folder.FolderId, idList)); }