private bool GetFavoriteContainer(out ChannelFolder parentChannelFolder, out TreeNodeCollection parentTreeNodeCollection) { if (this.treeViewChannel.SelectedNode == null || (this.treeViewChannel.SelectedNode.Parent == null && !(this.treeViewChannel.SelectedNode.Tag is ChannelFolder))) { parentChannelFolder = (ChannelFolder)this.treeViewChannel.Tag; parentTreeNodeCollection = this.treeViewChannel.Nodes; return(true); } else if (this.treeViewChannel.SelectedNode.Tag is ChannelTV) { TreeNode parentTreeNode = this.treeViewChannel.SelectedNode.Parent; parentChannelFolder = (ChannelFolder)parentTreeNode.Tag; parentTreeNodeCollection = parentTreeNode.Nodes; return(true); } else if (this.treeViewChannel.SelectedNode.Tag is ChannelFolder) { parentChannelFolder = (ChannelFolder)this.treeViewChannel.SelectedNode.Tag; parentTreeNodeCollection = treeViewChannel.SelectedNode.Nodes; return(true); } parentChannelFolder = null; parentTreeNodeCollection = null; return(false); }
public void RemoveFromFolder(ChannelMessageHeader message, ChannelFolder folder) { var client = new ExchangeClient(Hostname, CredentialsProvider); var messageId = client.GetMessageId(message.MessageNumber).ItemId; client.DeleteMessage(messageId); }
public void CopyToFolder(ChannelMessageHeader message, ChannelFolder folder) { var client = new ExchangeClient(Hostname, CredentialsProvider); var messageId = client.GetMessageId(message.MessageNumber).ItemId; client.CopyMessageToFolder(messageId, folder.FolderId); }
void channelFolderToolStripMenuItem_DropDownOpening(object sender, EventArgs e) { ToolStripDropDownItem toolStripMenuItem = sender as ToolStripDropDownItem; ChannelFolder channelFolder = toolStripMenuItem.Tag as ChannelFolder; PopulateChannelsFolderInDropDownMenu(toolStripMenuItem.DropDownItems, channelFolder); }
public ReceiveMessageDetailsTask(ChannelConfiguration config, IClientInputChannel channel, ChannelMessageHeader header, ChannelFolder folder) { this.config = config; this.channel = channel; this.header = header; this.folder = folder; }
// wizardPageChannelNumber private void InitChannelNumberingRecursedTree(ChannelFolder channelFolder) { foreach (Channel channel in channelFolder.ChannelList) { ListViewItem lvi = new ListViewItem(channel.Name); lvi.IndentCount = currentChannelIndentation; lvi.Tag = channel; mapChannelsIndentation[lvi] = currentChannelIndentation; if (channel is ChannelTV) { ChannelTV channelTV = channel as ChannelTV; lvi.SubItems.Add(channelTV.ChannelNumber.ToString()); maxChannelNumber = Math.Max(maxChannelNumber, channelTV.ChannelNumber); lvi.ImageKey = (MainForm.imageListLogoTV.Images.ContainsKey(channelTV.Logo) ? channelTV.Logo : "LogoTVDefault"); this.listViewChannelNumbering.Items.Add(lvi); } else if (channel is ChannelFolder) { this.listViewChannelNumbering.Items.Add(lvi); lvi.ImageKey = "FolderClosed"; currentChannelIndentation++; InitChannelNumberingRecursedTree(channel as ChannelFolder); currentChannelIndentation--; } } }
internal void InsertChannels(Stream fileStream, ChannelFolder parentChannel, TreeNodeCollection parentTreeNodeCollection) { ChannelFolder channels = (ChannelFolder)Channel.Deserialize(fileStream); if (parentChannel == null) { parentChannel = MainForm.rootChannelFolder; } if (parentTreeNodeCollection == null) { parentTreeNodeCollection = this.treeViewChannel.Nodes; } // First level: we add to the existing folder // Second level: we adjust the parent foreach (Channel channel in channels.ChannelList) { parentChannel.Add(channel); TreeNode treeNode = MakeTreeNodeFromChannel(channel); if (channel is ChannelFolder) { RecursedFillTree(channel as ChannelFolder, treeNode.Nodes); } parentTreeNodeCollection.Add(treeNode); } MainForm.UpdateChannelNumber(); }
private void addFolderToolStripMenuItem_Click(object sender, EventArgs e) { ChannelFolder channelFolder = new ChannelFolder(Properties.Resources.NewChannelFolder); TreeNode treeNode = MakeTreeNodeFromChannel(channelFolder); treeNode.Expand(); if (this.treeViewChannel.SelectedNode == null || this.treeViewChannel.SelectedNode.Parent == null) { ChannelFolder parentChannelFolder = (ChannelFolder)this.treeViewChannel.Tag; parentChannelFolder.Add(channelFolder); this.treeViewChannel.Nodes.Add(treeNode); } else if (this.treeViewChannel.SelectedNode.Tag is ChannelFolder) { ChannelFolder parentChannelFolder = (ChannelFolder)this.treeViewChannel.SelectedNode.Tag; parentChannelFolder.Add(channelFolder); this.treeViewChannel.SelectedNode.Nodes.Add(treeNode); this.treeViewChannel.SelectedNode.Expand(); } else { ChannelFolder parentChannelFolder = (ChannelFolder)this.treeViewChannel.SelectedNode.Parent.Tag; TreeNode parentTreeNode = this.treeViewChannel.SelectedNode.Parent; int indexChannel = parentChannelFolder.ChannelList.IndexOf(this.treeViewChannel.SelectedNode.Tag as Channel); int indexTreeNode = parentTreeNode.Nodes.IndexOf(this.treeViewChannel.SelectedNode); channelFolder.Parent = parentChannelFolder; parentChannelFolder.ChannelList.Insert(indexChannel, channelFolder); this.treeViewChannel.SelectedNode.Parent.Nodes.Insert(indexTreeNode, treeNode); } }
public ReceiveMessagesTask(ChannelConfiguration config, IClientInputChannel channel, ChannelFolder folder, ReceiveRange range) : base(config, channel) { this.config = config; this.channel = channel; this.folder = folder; this.range = range; this.dataService = ClientState.Current.DataService; }
public void RemoveFromFolder(ChannelMessageHeader message, ChannelFolder folder) { if (String.IsNullOrEmpty(message.SourceFolder)) { return; } connection.Client.SelectFolder(folder.FolderId); connection.Client.DeleteMessages(new IMAP_SequenceSet(message.MessageNumber), true); }
public void CopyToFolder(ChannelMessageHeader message, ChannelFolder folder) { if (String.IsNullOrEmpty(message.SourceFolder)) { return; } connection.Client.SelectFolder(message.SourceFolder); connection.Client.CopyMessages(new IMAP_SequenceSet(message.MessageNumber), folder.FolderId, true); }
public ReceiveMessagesTask(ChannelConfiguration config, IClientInputChannel channel, ChannelFolder folder, ReceiveRange range) : base(config, channel) { this.config = config; this.channel = channel; this.folder = folder; this.range = range; mailbox = VirtualMailBox.Current; }
public ChannelFolder CreateFolder(string folderName) { var client = new ExchangeClient(Hostname, CredentialsProvider); var folderId = client.CreateFolder(folderName, folders.First(f => f.FolderType == ChannelFolderType.Inbox).FolderId); var newFolder = new ChannelFolder(folderId, folderName, ChannelFolderType.Label); folders.Add(newFolder); return(newFolder); }
internal void AddChannelToFavorite(ChannelFolder channelFolder, Channel[] channels) { TreeNode parentTreeNode = channelFolder.Tag as TreeNode; TreeNodeCollection parentTreeNodeCollection = (parentTreeNode == null ? this.treeViewChannel.Nodes : parentTreeNode.Nodes); foreach (Channel channel in channels) { channelFolder.Add(channel); parentTreeNodeCollection.Add(MakeTreeNodeFromChannel(channel)); } }
void channelFolderToolStripMenuItem_Click(object sender, EventArgs e) { ToolStripMenuItem toolStripMenuItem = sender as ToolStripMenuItem; if (toolStripMenuItem.Tag is ChannelFolder) { ChannelFolder channel = toolStripMenuItem.Tag as ChannelFolder; textBoxFolderDestinationName.Tag = channel; // Must be call before changing the "Text" property!! textBoxFolderDestinationName.Text = channel.Name; } }
private void CopyChannelToDestinationFolder() { if (radioButtonAddThisChannel.Checked) { ChannelFolder channelFolder = textBoxFolderDestinationName.Tag as ChannelFolder; if (channelFolder != null) { ChannelTV channelTV = this.propertyGridChannel.SelectedObject as ChannelTV; if (channelTV != null) { MainForm.panelChannel.AddChannelToFavorite(channelFolder, new Channel[] { channelTV }); } } } else if (radioButtonScanFrequency.Checked) { ChannelFolder channelFolder = textBoxFolderDestinationName.Tag as ChannelFolder; if (channelFolder != null) { List <Channel> al = new List <Channel>(); foreach (ListViewItem lvi in this.listViewScanResult.SelectedItems) { al.Add((lvi.Tag as Channel).MakeCopy()); } if (al.Count > 0) { al.Sort(delegate(Channel x, Channel y) { short xOrder = short.MaxValue, yOrder = short.MaxValue; if (x is ChannelTV) { xOrder = (x as ChannelTV).ChannelNumber; if (xOrder <= 0) { xOrder = short.MaxValue - 1; } } if (y is ChannelTV) { yOrder = (y as ChannelTV).ChannelNumber; if (yOrder <= 0) { yOrder = short.MaxValue - 1; } } return(xOrder.CompareTo(yOrder)); }); MainForm.panelChannel.AddChannelToFavorite(channelFolder, (Channel[])al.ToArray()); } } } MainForm.UpdateChannelNumber(); }
private void insertChannelsToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.InitialDirectory = this.GetType().Module.FullyQualifiedName; openFileDialog.Filter = Properties.Resources.ChannelXMLFilter; openFileDialog.FilterIndex = 2; openFileDialog.RestoreDirectory = true; openFileDialog.FileName = MainForm.AssemblyName + ".Channels.xml"; if (openFileDialog.ShowDialog() == DialogResult.OK) { Stream fileStream = null; try { if ((fileStream = openFileDialog.OpenFile()) != null) { ChannelFolder parentChannel = MainForm.rootChannelFolder; TreeNodeCollection parentTreeNodeCollection = this.treeViewChannel.Nodes; if (this.treeViewChannel.SelectedNode != null) { if (this.treeViewChannel.SelectedNode.Tag is ChannelFolder) { parentChannel = this.treeViewChannel.SelectedNode.Tag as ChannelFolder; parentTreeNodeCollection = this.treeViewChannel.SelectedNode.Nodes; } else { if (this.treeViewChannel.SelectedNode.Parent != null) { parentChannel = this.treeViewChannel.SelectedNode.Parent.Tag as ChannelFolder; parentTreeNodeCollection = this.treeViewChannel.SelectedNode.Parent.Nodes; } } } InsertChannels(fileStream, parentChannel, parentTreeNodeCollection); } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } finally { if (fileStream != null) { fileStream.Close(); } } } }
internal void RecursedFillTree(ChannelFolder parentChannel, TreeNodeCollection parentTreeNodeCollection) { foreach (Channel channel in parentChannel.ChannelList) { channel.Parent = parentChannel; TreeNode treeNode = MakeTreeNodeFromChannel(channel); if (channel is ChannelFolder) { RecursedFillTree(channel as ChannelFolder, treeNode.Nodes); } parentTreeNodeCollection.Add(treeNode); } }
/// <summary> /// Gets the nr of items in a given folder /// </summary> /// <returns></returns> public long GetNrItemsInFolder(ChannelFolder folder) { var binding = ChannelHelper.BuildChannel(hostname, username, password); var findItemRequest = new FindItemType { Traversal = ItemQueryTraversalType.Shallow }; var itemProperties = new ItemResponseShapeType { BaseShape = DefaultShapeNamesType.AllProperties }; findItemRequest.ItemShape = itemProperties; var folderIdArray = new DistinguishedFolderIdType[2]; folderIdArray[0] = new DistinguishedFolderIdType { Id = DistinguishedFolderIdNameType.inbox }; findItemRequest.ParentFolderIds = folderIdArray; FindItemResponseType findItemResponse = binding.FindItem(findItemRequest); // Determine whether the request was a success. if (findItemResponse.ResponseMessages.Items[0].ResponseClass == ResponseClassType.Error) { throw new Exception(findItemResponse.ResponseMessages.Items[0].MessageText); } var responseMessage = (FindItemResponseMessageType)findItemResponse.ResponseMessages.Items[0]; var mailboxItems = (ArrayOfRealItemsType)responseMessage.RootFolder.Item; if (mailboxItems.Items == null) { return(0); } return(mailboxItems.Items.Length); }
public async Task <ChannelItemResult> GetChannelItems(InternalChannelItemQuery query, CancellationToken cancellationToken) { var folder = ChannelFolder.Parse(query.FolderId); _logger.Debug("Render channel folder id: {0}", query.FolderId); switch (folder.Type) { case ChannelFolderType.Playlist: { var playlist = _libraryManager.GetUserRootFolder().RecursiveChildren.OfType <VodPlaylist>().FirstOrDefault(p => p.IdentifierId.ToString() == folder.Id); if (playlist != null) { return(GetPlaylistItems(playlist, cancellationToken)); } break; } } return(GetChannelPlaylists(query)); }
internal TreeNode MakeTreeNodeFromChannel(Channel channel) { TreeNode treeNode = new TreeNode(channel.Name); treeNode.Tag = channel; channel.Tag = treeNode; if (channel is ChannelFolder) { ChannelFolder channelFolder = channel as ChannelFolder; if (channelFolder.Expanded) { treeNode.Expand(); } else { treeNode.Collapse(); } } AdjustTVLogo(channel); return(treeNode); }
public ChannelItemResult GetChannelPlaylists(InternalChannelItemQuery query) { var playlists = Plugin.Instance.Configuration.Playlists; var channelItems = new List <ChannelItemInfo>(); foreach (var playlist in playlists) { var item = new ChannelItemInfo() { Id = ChannelFolder.GetUrl(ChannelFolderType.Playlist, playlist.IdentifierId.ToString()), Type = ChannelItemType.Folder, Name = playlist.Name, }; channelItems.Add(item); } return(new ChannelItemResult() { Items = channelItems.OrderBy(i => i.Name).ToList(), TotalRecordCount = channelItems.Count }); }
/// <summary> /// Gets a list of all the items in the mailbox with all their properties. /// </summary> /// <returns></returns> public IEnumerable <MessageType> GetHeaders(ChannelFolder folder) { var binding = ChannelHelper.BuildChannel(hostname, username, password); var findItemRequest = new FindItemType { Traversal = ItemQueryTraversalType.Shallow }; var itemProperties = new ItemResponseShapeType { BaseShape = DefaultShapeNamesType.AllProperties }; findItemRequest.ItemShape = itemProperties; findItemRequest.ParentFolderIds = new BaseFolderIdType[] { new FolderIdType { Id = folder.FolderId } }; FindItemResponseType findItemResponse = binding.FindItem(findItemRequest); foreach (FindItemResponseMessageType responseMessage in findItemResponse.ResponseMessages.Items) { if (responseMessage.ResponseClass == ResponseClassType.Success) { ArrayOfRealItemsType mailboxItems = (ArrayOfRealItemsType)responseMessage.RootFolder.Item; if (mailboxItems.Items == null) { yield break; } foreach (MessageType inboxItem in mailboxItems.Items) { yield return(inboxItem); } } } }
public EnumerateMessagesFolderTask(ChannelConfiguration config, IClientInputChannel channel, ChannelFolder folder, ReceiveRange range) : base(config, channel, folder, range) { }
public void SelectFolder(ChannelFolder folder) { connection.Client.SelectFolder(folder.FolderId); }
private void treeViewChannel_DragDrop(object sender, DragEventArgs e) { // Ensure that the list item index is contained in the data. if ( //this.treeNodeUnderMouseToDrop != null && //!this.treeViewChannel.IsSelected(this.treeNodeUnderMouseToDrop) && e.Data.GetDataPresent(typeof(ArrayList))) { // Perform drag-and-drop, depending upon the effect. if (e.Effect == DragDropEffects.Copy || e.Effect == DragDropEffects.Move) { ArrayList alDraggedChannels = (ArrayList)e.Data.GetData(typeof(ArrayList)); ArrayList draggedChannelsList = new ArrayList(); Hashtable draggedChannelsMap = new Hashtable(); if (e.Effect == DragDropEffects.Copy) { foreach (TreeNode tn in alDraggedChannels) { Channel channel = (tn.Tag as Channel).MakeCopy(); draggedChannelsMap[channel] = tn; draggedChannelsList.Add(channel); } } else { foreach (TreeNode tn in alDraggedChannels) { Channel channel = tn.Tag as Channel; draggedChannelsMap[channel] = tn; draggedChannelsList.Add(channel); } } // Compute the drop container and the drop index ChannelFolder parentChannel; TreeNodeCollection parentTreeNodeCollection; int afterChannelListIndex = -1; int afterTreeNodeIndex = -1; if (this.treeNodeUnderMouseToDrop == null) { parentChannel = this.MainForm.rootChannelFolder; parentTreeNodeCollection = this.treeViewChannel.Nodes; afterChannelListIndex = parentChannel.ChannelList.Count; afterTreeNodeIndex = parentTreeNodeCollection.Count; //afterChannelListIndex = 0; //afterTreeNodeIndex = 0; } else if (this.treeNodeUnderMouseToDrop.Tag is ChannelFolder) { parentChannel = this.treeNodeUnderMouseToDrop.Tag as ChannelFolder; parentTreeNodeCollection = this.treeNodeUnderMouseToDrop.Nodes; afterChannelListIndex = 0; afterTreeNodeIndex = 0; } else { if (this.treeNodeUnderMouseToDrop.Parent != null) { parentChannel = this.treeNodeUnderMouseToDrop.Parent.Tag as ChannelFolder; parentTreeNodeCollection = this.treeNodeUnderMouseToDrop.Parent.Nodes; } else { parentChannel = this.MainForm.rootChannelFolder; parentTreeNodeCollection = this.treeViewChannel.Nodes; } afterChannelListIndex = parentChannel.ChannelList.IndexOf(this.treeNodeUnderMouseToDrop.Tag as Channel); afterTreeNodeIndex = this.treeNodeUnderMouseToDrop.Index; } // Remove the old TreeNode if (e.Effect == DragDropEffects.Move) { foreach (TreeNode tn in draggedChannelsMap.Values) { // Modify the drop index if some moved elements are before // the drop target in the same level if (this.treeNodeUnderMouseToDrop == null || (tn.Parent == this.treeNodeUnderMouseToDrop.Parent && tn.Index < this.treeNodeUnderMouseToDrop.Index)) { afterChannelListIndex--; afterTreeNodeIndex--; } // Remove the elements if (tn.Parent != null) { (tn.Parent.Tag as ChannelFolder).ChannelList.Remove(tn.Tag as Channel); tn.Parent.Nodes.Remove(tn); } else { (this.treeViewChannel.Tag as ChannelFolder).ChannelList.Remove(tn.Tag as Channel); this.treeViewChannel.Nodes.Remove(tn); } } } if (afterChannelListIndex < 0) { afterChannelListIndex = 0; } if (afterTreeNodeIndex < 0) { afterTreeNodeIndex = 0; } int indexOffset = 0; foreach (Channel channel in draggedChannelsList) { // First level: we add to the existing folder if (afterChannelListIndex == -1) { parentChannel.Add(channel); } else { channel.Parent = parentChannel; parentChannel.ChannelList.Insert(afterChannelListIndex + indexOffset, channel); } TreeNode treeNode = MakeTreeNodeFromChannel(channel); if (afterTreeNodeIndex == -1) { parentTreeNodeCollection.Add(treeNode); } else { parentTreeNodeCollection.Insert(afterTreeNodeIndex + indexOffset, treeNode); } // Second level: we adjust the parent if (channel is ChannelFolder) { ChannelFolder channelFolder = channel as ChannelFolder; RecursedFillTree(channelFolder, treeNode.Nodes); if (channelFolder.Expanded) { treeNode.Expand(); } else { treeNode.Collapse(); } } indexOffset++; } (alDraggedChannels[0] as TreeNode).EnsureVisible(); } } }
public void SelectFolder(ChannelFolder folder) { }
private void PopulateChannelsFolderInDropDownMenu(ToolStripItemCollection toolStripItemCollection, ChannelFolder channelFolder) { toolStripItemCollection.Clear(); ToolStripMenuItem channelToolStripMenuItem0 = new ToolStripMenuItem(Properties.Resources.ChooseFolder); channelToolStripMenuItem0.Tag = channelFolder; channelToolStripMenuItem0.Click += new EventHandler(channelFolderToolStripMenuItem_Click); toolStripItemCollection.Add(channelToolStripMenuItem0); foreach (Channel channel in channelFolder.ChannelList) { if (channel is ChannelFolder) { ToolStripMenuItem channelToolStripMenuItem = new ToolStripMenuItem(channel.Name); channelToolStripMenuItem.Tag = channel; channelToolStripMenuItem.DropDownItems.Clear(); channelToolStripMenuItem.DropDownOpening += new EventHandler(channelFolderToolStripMenuItem_DropDownOpening); ToolStripMenuItem channelToolStripMenuItem1 = new ToolStripMenuItem("Dummy"); channelToolStripMenuItem.DropDownItems.Add(channelToolStripMenuItem1); toolStripItemCollection.Add(channelToolStripMenuItem); } } }
private void PopulateChannelsInDropDownMenu(ToolStripItemCollection toolStripItemCollection, ChannelFolder channelFolder) { toolStripItemCollection.Clear(); foreach (Channel channel in channelFolder.ChannelList) { ToolStripMenuItem channelToolStripMenuItem = new ToolStripMenuItem(channel.Name); channelToolStripMenuItem.Tag = channel; if (channel is ChannelFolder) { channelToolStripMenuItem.DropDownItems.Add("dummy"); channelToolStripMenuItem.DropDownOpening += new EventHandler(channelToolStripMenuItem_DropDownOpening); } else { if (channel is ChannelTV) { channelToolStripMenuItem.Image = MainForm.imageListLogoTV.Images[(channel as ChannelTV).Logo]; if (channelToolStripMenuItem.Image == null) { channelToolStripMenuItem.Image = MainForm.imageListLogoTV.Images["LogoTVDefault"]; } } channelToolStripMenuItem.Click += new EventHandler(channelToolStripMenuItem_Click); } toolStripItemCollection.Add(channelToolStripMenuItem); } }
public void SelectFolder(ChannelFolder folder) { this.folder = folder; }