void OnDragEnterOver(object sender, DragEventArgs args) { Debug.Assert(m_DraggedNode != null); ServiceBusTreeNode targetNode = GetTargetNode(args); if (targetNode == m_DraggedNode) { return; } if (targetNode.ServiceBusNode != null) { if (targetNode.ServiceBusNode.Policy != null) { if (targetNode.ServiceBusNode.Policy is RouterPolicy) { foreach (ServiceBusNode node in targetNode.ServiceBusNode.Subscribers) { if (node.Address == m_DraggedNode.ServiceBusNode.Address) { Cursor.Current = Cursors.No; return; } } args.Effect = DragDropEffects.Link; m_ServiceBusTree.SelectedNode = targetNode; m_ServiceBusTree.Select(); } } } }
void DeleteBuffers(ServiceBusTreeNode treeNode) { if (treeNode.ServiceBusNode != null) { if (treeNode.ServiceBusNode.Policy != null) { if (treeNode.ServiceBusNode.Policy is MessageBufferPolicy) { string nodeAddress = treeNode.ServiceBusNode.Address; nodeAddress = nodeAddress.Replace(@"sb://", @"https://"); TransportClientEndpointBehavior credential = Graphs[ServiceNamespace.ToLower()].Credential; Uri address = new Uri(nodeAddress); try { MessageBufferClient.GetMessageBuffer(credential, address).DeleteMessageBuffer(); } catch {} } } } foreach (TreeNode node in treeNode.Nodes) { DeleteBuffers(node as ServiceBusTreeNode); } }
void OnDragDrop(object sender, DragEventArgs args) { Cursor.Current = Cursors.Default; Debug.Assert(m_DraggedNode != null); ServiceBusTreeNode targetNode = GetTargetNode(args); if (targetNode.ServiceBusNode == null) { return; } if (targetNode.ServiceBusNode.Policy != null)//A router or a buffer { if (targetNode.ServiceBusNode.Policy is RouterPolicy) { Trace.WriteLine("Droped at: " + targetNode.Text); string draggedAddress = m_DraggedNode.ServiceBusNode.Address; draggedAddress = draggedAddress.Replace(@"https://", @"sb://"); draggedAddress = draggedAddress.Replace(@"http://", @"sb://"); string targetAddress = targetNode.ServiceBusNode.Address; targetAddress = targetAddress.Replace(@"https://", @"sb://"); targetAddress = targetAddress.Replace(@"http://", @"sb://"); TransportClientEndpointBehavior credential = Graphs[ServiceNamespace.ToLower()].Credential; Uri draggedUri = new Uri(draggedAddress); Uri targetUri = new Uri(targetAddress); try { RouterClient targetClient = RouterManagementClient.GetRouter(credential, targetUri); if (m_DraggedNode.ServiceBusNode.Policy is RouterPolicy) { RouterClient draggedClient = RouterManagementClient.GetRouter(credential, draggedUri); draggedClient.SubscribeToRouter(targetClient, TimeSpan.MaxValue); } else { MessageBufferClient draggedClient = MessageBufferClient.GetMessageBuffer(credential, draggedUri); /* TODO Restore on next release * draggedClient.SubscribeToRouter(targetClient,TimeSpan.MaxValue); */ } OnExplore(this, EventArgs.Empty); m_ServiceBusTree.SelectedNode = targetNode; m_ServiceBusTree.Select(); } catch (Exception exception) { MessageBox.Show("Unable to subscribe: " + exception.Message, "Service Bus Explorer", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } m_DraggedNode = null; }
void OnItemDrag(object sender, ItemDragEventArgs args) { m_DraggedNode = args.Item as ServiceBusTreeNode; if (m_DraggedNode != null) { if (m_DraggedNode.ServiceBusNode == null) { return; } if (m_DraggedNode.ServiceBusNode.Policy != null)//A router or a buffer { Cursor.Current = Cursors.Hand; DoDragDrop(m_DraggedNode, DragDropEffects.Link); } } }
void OnItemSelected(object sender, TreeViewEventArgs treeEventArgs) { ServiceBusTreeNode node = treeEventArgs.Node as ServiceBusTreeNode; if (node != null) { TreeNode namespaceNode = node; if (namespaceNode.Parent != null) { while (namespaceNode.Parent is NamespaceTreeNode == false) { namespaceNode = namespaceNode.Parent; } m_NamespaceTextBox.Text = namespaceNode.Parent.Text; } } node.DisplayControl(); }
void OnDragDrop(object sender,DragEventArgs args) { Cursor.Current = Cursors.Default; Debug.Assert(m_DraggedNode != null); ServiceBusTreeNode targetNode = GetTargetNode(args); if(targetNode.ServiceBusNode == null) { return; } if(targetNode.ServiceBusNode.Policy != null)//A router or a buffer { if(targetNode.ServiceBusNode.Policy is RouterPolicy) { Trace.WriteLine("Droped at: " + targetNode.Text); string draggedAddress = m_DraggedNode.ServiceBusNode.Address; draggedAddress = draggedAddress.Replace(@"https://",@"sb://"); draggedAddress = draggedAddress.Replace(@"http://",@"sb://"); string targetAddress = targetNode.ServiceBusNode.Address; targetAddress = targetAddress.Replace(@"https://",@"sb://"); targetAddress = targetAddress.Replace(@"http://",@"sb://"); TransportClientEndpointBehavior credential = Graphs[ServiceNamespace.ToLower()].Credential; Uri draggedUri = new Uri(draggedAddress); Uri targetUri = new Uri(targetAddress); try { RouterClient targetClient = RouterManagementClient.GetRouter(credential,targetUri); if(m_DraggedNode.ServiceBusNode.Policy is RouterPolicy) { RouterClient draggedClient = RouterManagementClient.GetRouter(credential,draggedUri); draggedClient.SubscribeToRouter(targetClient,TimeSpan.MaxValue); } else { MessageBufferClient draggedClient = MessageBufferClient.GetMessageBuffer(credential,draggedUri); /* TODO Restore on next release draggedClient.SubscribeToRouter(targetClient,TimeSpan.MaxValue); */ } OnExplore(this,EventArgs.Empty); m_ServiceBusTree.SelectedNode = targetNode; m_ServiceBusTree.Select(); } catch(Exception exception) { MessageBox.Show("Unable to subscribe: " + exception.Message,"Service Bus Explorer",MessageBoxButtons.OK,MessageBoxIcon.Error); } } } m_DraggedNode = null; }
void OnItemDrag(object sender,ItemDragEventArgs args) { m_DraggedNode = args.Item as ServiceBusTreeNode; if(m_DraggedNode != null) { if(m_DraggedNode.ServiceBusNode == null) { return; } if(m_DraggedNode.ServiceBusNode.Policy != null)//A router or a buffer { Cursor.Current = Cursors.Hand; DoDragDrop(m_DraggedNode,DragDropEffects.Link); } } }
void DeleteBuffers(ServiceBusTreeNode treeNode) { if(treeNode.ServiceBusNode != null) { if(treeNode.ServiceBusNode.Policy != null) { if(treeNode.ServiceBusNode.Policy is MessageBufferPolicy) { string nodeAddress = treeNode.ServiceBusNode.Address; nodeAddress = nodeAddress.Replace(@"sb://",@"https://"); TransportClientEndpointBehavior credential = Graphs[ServiceNamespace.ToLower()].Credential; Uri address = new Uri(nodeAddress); try { MessageBufferClient.GetMessageBuffer(credential,address).DeleteMessageBuffer(); } catch {} } } } foreach(TreeNode node in treeNode.Nodes) { DeleteBuffers(node as ServiceBusTreeNode); } }