예제 #1
0
        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;
        }
예제 #2
0
 void ApplyPolicy(RouterPolicy policy)
 {
     try
     {
         RouterClient client = RouterManagementClient.GetRouter(Credential, RealAddress);
         client.DeleteRouter();
         RouterManagementClient.CreateRouter(Credential, RealAddress, policy);
         RestoreSubscribedTo();
         Explore();
     }
     catch (Exception exception)
     {
         MessageBox.Show("Error applying change: " + exception.Message, "Service Bus Explorer", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
예제 #3
0
        void RestoreSubscribedTo()
        {
            if (Node.SubscribedTo == null)
            {
                return;
            }

            RouterPolicy policy = Node.Policy as RouterPolicy;
            RouterClient client = RouterManagementClient.GetRouter(Credential, RealAddress);

            foreach (ServiceBusNode router in Node.SubscribedTo)
            {
                Uri          address      = GetRealAddress(router.Address);
                RouterClient parentRouter = RouterManagementClient.GetRouter(Credential, address);
                TimeSpan     TimeSpan     = DateTime.UtcNow - policy.ExpirationInstant;
                client.SubscribeToRouter(parentRouter, TimeSpan);
            }
        }
예제 #4
0
        void OnDelete(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("Are you sure you want to delete the router?", "Service Bus Explorer", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation);

            if (result == DialogResult.No)
            {
                return;
            }

            try
            {
                RouterClient client = RouterManagementClient.GetRouter(Credential, RealAddress);
                client.DeleteRouter();
                Explore();
            }
            catch (Exception exception)
            {
                MessageBox.Show("Error deleting router: " + exception.Message, "Service Bus Explorer", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #5
0
파일: Routers.cs 프로젝트: JMnITup/SMEX
 public RouterSubscriptionClient SubscribeToRouter(RouterClient routerClient,TimeSpan requestedTimeout)
 {
     throw new InvalidOperationException("Router emulation");
 }
예제 #6
0
 public RouterSubscriptionClient SubscribeToRouter(RouterClient routerClient, TimeSpan requestedTimeout)
 {
     throw new InvalidOperationException("Router emulation");
 }