Beispiel #1
0
 public SsbEventsArgs(string _server, string _dbName, SsbEnum _ssbType, SsbState _state, object _updated)
 {
     server = _server;
       dbName = _dbName;
       ssbType = _ssbType;
       state = _state;
       updated = _updated;
 }
Beispiel #2
0
 public SsbEventsArgs(string _server, string _dbName, SsbEnum _ssbType, SsbState _state, object _updated)
 {
     server  = _server;
     dbName  = _dbName;
     ssbType = _ssbType;
     state   = _state;
     updated = _updated;
 }
Beispiel #3
0
 public Form3(SsbEnum sType, object _ssbObj)
 {
     ssbTypeF3 = sType;
     InitializeComponent();
     SetupMenus();
     SetUpEventHooks();
     TVSetUp.SetUpTreeView(tv1);
     this.Text        = string.Format("Deploy {0}", ssbTypeF3.ToString());
     ssbObj           = _ssbObj;
     isDirty          = true;
     btnPaste.Enabled = false;
     browse           = false;
     btnPaste.Text    = "Paste/Deploy";
 }
Beispiel #4
0
 public Form3(SsbEnum sType, object _ssbObj)
 {
     ssbTypeF3 = sType;
       InitializeComponent();
       SetupMenus();
       SetUpEventHooks();
       TVSetUp.SetUpTreeView(tv1);
       this.Text = string.Format("Deploy {0}", ssbTypeF3.ToString());
       ssbObj = _ssbObj;
       isDirty = true;
       btnPaste.Enabled = false;
       browse = false;
       btnPaste.Text = "Paste/Deploy";
 }
Beispiel #5
0
        public static bool ExpandNodes1(TreeView tv1, TreeNode tn, bool refresh, bool filterSsb, SsbEnum sType)
        {
            SsbEnum ssbType = SsbEnum.None;
              ssbType = sType;
              SSBIServer serv = null;
              bool res = true;

              int lvl = tn.Level;
              try {
            if (lvl < 1)
              ssbType = SsbEnum.None;

            else if (lvl == 1) {
              ssbType = SsbEnum.Server;
              serv = (SSBIServer)tn.Tag;
              if (!serv.HasLoggedIn) {
            res = false;
            Connect(tv1, tn);
              }
              //SetUpSSBObject(tn.Tag);

            }
            else if (lvl == 2 && !filterSsb)
              ssbType = SsbEnum.Database;
            else if (lvl == 2 && filterSsb)
              ssbType = sType;

            else if (lvl > 2 && !filterSsb)
              ssbType = (SsbEnum)tn.Index;
            else if (lvl > 2 && filterSsb)
              ssbType = sType;

            if (lvl != 1)
              TVSetUp.ExpandNodes(tv1, tn, ref ssbType);
            else if (lvl == 1 && serv.HasLoggedIn) {
              TVSetUp.ExpandNodes(tv1, tn, ref ssbType);

            }

            //if (lvl == 3 && tabControl1.Visible)
            //  tabControl1.Visible = false;

            return res;
              }
              catch (Exception ex) {
            smo.ShowException(ex);
            return false;
              }
        }
Beispiel #6
0
 public Form3(SsbEnum sType, bool _browse, Control ctrlToUpdate)
 {
     objName   = "";
     ctrl      = ctrlToUpdate;
     ssbTypeF3 = sType;
     InitializeComponent();
     SetupMenus();
     SetUpEventHooks();
     TVSetUp.SetUpTreeView(tv1);
     this.Text        = string.Format("Find {0}", ssbTypeF3.ToString());
     ssbObj           = null;
     isDirty          = true;
     btnPaste.Enabled = false;
     browse           = _browse;
     btnPaste.Text    = "OK";
 }
Beispiel #7
0
 public Form3(SsbEnum sType, bool _browse, Control ctrlToUpdate)
 {
     objName = "";
       ctrl = ctrlToUpdate;
       ssbTypeF3 = sType;
       InitializeComponent();
       SetupMenus();
       SetUpEventHooks();
       TVSetUp.SetUpTreeView(tv1);
       this.Text = string.Format("Find {0}", ssbTypeF3.ToString());
       ssbObj = null;
       isDirty = true;
       btnPaste.Enabled = false;
       browse = _browse;
       btnPaste.Text = "OK";
 }
Beispiel #8
0
        public Form2(SsbEnum idx, SSBIServer srv, Database db, bool toEdit, object smob)
        {
            Cursor crs = Cursor.Current;
              Cursor.Current = Cursors.WaitCursor;
              InitializeComponent();
              isEdit = toEdit;
              if (isEdit)
            formText = "Edit";
              SetupMenus();
              SetUpEventHooks();
              ssbType = idx;
              SetUpTabs(idx);
              if (smob != null)
            objToUpdate = smob;

              _state = SsbState.Cancelled;

              if (srv != null) {
            dbServ = srv;
              }

              if (ssbType == SsbEnum.EndPoint) {
            db = ((SSBIDatabase)smo.GetObject2(dbServ, null, "master", SsbEnum.Database)).DataBase;
              }

              if (db!= null) {
            dBase = db;
              }

              SetUpTab();

              //we are editing
              if (isEdit && smob != null) {
            objToUpdate = smob;
            SetUpObject(smob);
              }
              if (ssbType == SsbEnum.CreateListing && smob != null)
            isDirty = true;
              else
            isDirty = false;
              this.DialogResult = DialogResult.Cancel;
              Cursor.Current = crs;
        }
Beispiel #9
0
 private DialogResult LoadForm2(SsbEnum _ssbEnum)
 {
     return LoadForm2(_ssbEnum, false, null);
 }
Beispiel #10
0
 private void LoadForm3(SsbEnum sType, Control ctrlToUpdate)
 {
     Cursor crs = Cursor.Current;
       Cursor.Current = Cursors.WaitCursor;
       Form3 f3 = new Form3(sType, true, ctrlToUpdate);
       f3.ShowDialog();
       Cursor.Current = crs;
 }
Beispiel #11
0
        void SetUpTabs(SsbEnum idx)
        {
            foreach(TabPage tp in tabControl1.TabPages)
            this.tabControl1.Controls.Remove(tp);

              switch (idx) {
            case SsbEnum.Login:
              this.tabControl1.Controls.Add(tabPage10);
              break;
            case SsbEnum.EndPoint:
              this.tabControl1.Controls.Add(tabPage11);
              break;
            case SsbEnum.Database:
              this.tabControl1.Controls.Add(tabPage9);
              break;
            case SsbEnum.MessageType:
              this.tabControl1.Controls.Add(tabPage1);
              break;
            case SsbEnum.Contract:
              this.tabControl1.Controls.Add(tabPage2);
              break;
            case SsbEnum.Queu:
              this.tabControl1.Controls.Add(tabPage3);
              break;
            case SsbEnum.Service:
              this.tabControl1.Controls.Add(tabPage4);
              break;
            case SsbEnum.Route:
              this.tabControl1.Controls.Add(tabPage5);
              break;
            case SsbEnum.RemoteBinding:
              this.tabControl1.Controls.Add(tabPage6);
              break;
            case SsbEnum.Conversation:
              this.tabControl1.Controls.Add(tabPage7);
              break;
            case SsbEnum.Message:
              this.tabControl1.Controls.Add(tabPage8);
              break;
            case SsbEnum.Certificate:
              this.tabControl1.Controls.Add(tabPage12);
              break;
            case SsbEnum.User:
              this.tabControl1.Controls.Add(tabPage13);
              break;
            case SsbEnum.CreateListing:
              this.tabControl1.Controls.Add(tabPage14);
              break;
            case SsbEnum.ImportListing:
              this.tabControl1.Controls.Add(tabPage15);
              break;
              }

              tabControl1.Visible = true;
        }
Beispiel #12
0
 private DialogResult LoadForm2(SsbEnum _ssbEnum, bool doEdit, object objToEdit)
 {
     Cursor crs = Cursor.Current;
       Cursor.Current = Cursors.WaitCursor;
       Form2 f2 = new Form2(_ssbEnum, dbServ, dBase, doEdit, objToEdit);
       f2.Processed += new SsbEventDel(f2_Processed);
       DialogResult res = f2.ShowDialog();
       Cursor.Current = crs;
       return res;
 }
Beispiel #13
0
        internal static void DeploySsbObj(object obj, string svrName, string dbName, SsbEnum ssbType, bool isEdit)
        {
            Server               svr  = CreateServer(svrName, null, null);
            Database             db   = svr.Databases[dbName];
            ServiceBroker        sb   = db.ServiceBroker;
            MessageType          mt   = null;
            ServiceContract      sc   = null;
            ServiceQueue         q    = null;
            BrokerService        serv = null;
            ServiceRoute         rt   = null;
            RemoteServiceBinding bind = null;

            try {
                switch (ssbType)
                {
                case SsbEnum.MessageType:
                    MessageType mtNew = new MessageType();
                    mtNew.Parent = sb;
                    mt           = (MessageType)obj;
                    mtNew.Name   = mt.Name;
                    mtNew.MessageTypeValidation = mt.MessageTypeValidation;
                    if (mt.MessageTypeValidation == MessageTypeValidation.XmlSchemaCollection)
                    {
                        mtNew.ValidationXmlSchemaCollection = mt.ValidationXmlSchemaCollection;
                    }

                    if (isEdit)
                    {
                        mtNew.Alter();
                    }
                    else
                    {
                        mtNew.Create();
                    }

                    break;

                case SsbEnum.Contract:
                    ServiceContract scNew = new ServiceContract();
                    sc           = (ServiceContract)obj;
                    scNew.Parent = sb;
                    scNew.Name   = sc.Name;
                    foreach (MessageTypeMapping mtm in sc.MessageTypeMappings)
                    {
                        if (!sb.MessageTypes.Contains(mtm.Name))
                        {
                            ServiceBroker sbParent = sc.Parent;
                            MessageType   mtp      = sbParent.MessageTypes[mtm.Name];
                            DeploySsbObj(mtp, svrName, dbName, SsbEnum.MessageType, false);
                        }

                        MessageTypeMapping mtmNew = new MessageTypeMapping();
                        mtmNew.Name          = mtm.Name;
                        mtmNew.Parent        = scNew;
                        mtmNew.MessageSource = mtm.MessageSource;
                        scNew.MessageTypeMappings.Add(mtmNew);
                    }

                    if (isEdit)
                    {
                        scNew.Alter();
                    }
                    else
                    {
                        scNew.Create();
                    }

                    break;

                case SsbEnum.Queu:
                    q        = (ServiceQueue)obj;
                    q.Parent = sb;

                    if (isEdit)
                    {
                        q.Alter();
                    }
                    else
                    {
                        q.Create();
                    }

                    break;

                case SsbEnum.Service:
                    serv        = (BrokerService)obj;
                    serv.Parent = sb;

                    if (isEdit)
                    {
                        serv.Alter();
                    }
                    else
                    {
                        serv.Create();
                    }

                    break;

                case SsbEnum.Route:
                    rt        = (ServiceRoute)obj;
                    rt.Parent = sb;

                    if (isEdit)
                    {
                        rt.Alter();
                    }
                    else
                    {
                        rt.Create();
                    }

                    break;

                case SsbEnum.RemoteBinding:
                    bind        = (RemoteServiceBinding)obj;
                    bind.Parent = sb;

                    if (isEdit)
                    {
                        bind.Alter();
                    }
                    else
                    {
                        bind.Create();
                    }

                    break;
                }
            }
            catch (FailedOperationException e) {
                string err = string.Format("{0}", e.InnerException);
                //throw;
            }
            catch (Exception ex) {
                string errx = string.Format("{0}", ex.InnerException);
            }

            finally {
                svr.ConnectionContext.Disconnect();
            }
        }
Beispiel #14
0
        internal static object GetObject2(SSBIServer s, Database db, string objName, SsbEnum index)
        {
            object smob = null;
              Server serv = null;
              Database db2 = null;
              ServiceBroker sb = null;
              try {

            serv = CreateServer2(s);
            s.SMOServer = serv;
            if (db != null) {
              db2 = serv.Databases[db.Name];
              sb = serv.Databases[db2.Name].ServiceBroker;
            }

            switch (index) {

              case SsbEnum.Server:
            smob = s;
            break;

              case SsbEnum.Database:
            db2 = serv.Databases[objName];
            smob = new SSBIDatabase(db2);
            //serv.ConnectionContext.Disconnect();
            break;

              case SsbEnum.MessageType:
            smob = sb.MessageTypes[objName];
            break;

              case SsbEnum.Contract:
            smob = sb.ServiceContracts[objName];
            break;

              case SsbEnum.Service:
            smob = sb.Services[objName];
            break;

              case SsbEnum.Queu:
            if(objName == "sys.transmission_queue") {
              ServiceQueue txQ = new ServiceQueue();
              txQ.Name = "sys.transmission_queue";
              txQ.Parent = sb;
              txQ.Schema = "sys";
              smob = txQ;
            }
            else
              smob = sb.Queues[objName];
            break;

              case SsbEnum.Route:
            smob = sb.Routes[objName];
            break;

              case SsbEnum.RemoteBinding:
            smob = sb.RemoteServiceBindings[objName];
            break;

              case SsbEnum.Conversation:
            smob = smo.GetConversationCollection(db, null, new Guid(objName)).Item(0);
            break;

            }

            if (smob == null) {
              string errMsg = string.Format("Can not retrieve {0}: {1}.\nIt may have been dropped/deleted.", index.ToString(), objName);
              throw new ApplicationException(errMsg);
            }

            return smob;
              }

              catch (NullReferenceException) {
            if (serv != null && db2 == null) {
              throw new ApplicationException(string.Format("Can not connect to database: {0}.\nIt may have been dropped/deleted.", db.Name));

            }

            return null;

              }

              catch (ConnectionFailureException e) {
            throw e;
            return null;
              }
              finally {
            serv.ConnectionContext.Disconnect();

              }
        }
Beispiel #15
0
        internal static object GetObject(Database db, string objName, SsbEnum index)
        {
            object smob = null;
              Server serv = null;
              Database db2 = null;
              try {
            serv = CreateServer(db.Parent.Name, null, null);
            //serv = CreateServer2(db.Parent.Name, null, null);
            db2 = serv.Databases[db.Name];
            ServiceBroker sb = serv.Databases[db2.Name].ServiceBroker;

            switch (index) {

              case SsbEnum.Database:

            smob = serv.Databases[objName];
            //serv.ConnectionContext.Disconnect();
            break;

              case SsbEnum.MessageType:
            smob = sb.MessageTypes[objName];
            break;

              case SsbEnum.Contract:
            smob = sb.ServiceContracts[objName];
            break;

              case SsbEnum.Service:
            smob = sb.Services[objName];
            break;

              case SsbEnum.Queu:
            smob = sb.Queues[objName];
            break;

              case SsbEnum.Route:
            smob = sb.Routes[objName];
            break;

              case SsbEnum.RemoteBinding:
            smob = sb.RemoteServiceBindings[objName];
            break;

              case SsbEnum.Conversation:
            smob = smo.GetConversationCollection(db, null, new Guid(objName)).Item(0);
            break;

            }

            if (smob == null) {
              string errMsg = string.Format("Can not retrieve {0}: {1}.\nIt may have been dropped/deleted.", index.ToString(), objName);
              throw new ApplicationException(errMsg);
            }

            return smob;
              }

              catch(NullReferenceException) {
            if (serv != null && db2 == null) {
              throw new ApplicationException(string.Format("Can not connect to database: {0}.\nIt may have been dropped/deleted.", db.Name));

            }

            return null;

              }
              finally {
            serv.ConnectionContext.Disconnect();

              }
        }
Beispiel #16
0
 public Form2(SsbEnum idx, SSBIServer srv, Database db)
     : this(idx, srv, db, false, null)
 {
 }
Beispiel #17
0
        static void RetrieveAndLoadObjects(SSBIServer s, Database db, TreeNode tnode, SsbEnum ssbType)
        {
            ICollection coll = smo.GetSSBObjects2(s, db, ssbType);
            IEnumerator en   = coll.GetEnumerator();

            while (en.MoveNext())
            {
                TreeNode tn = new TreeNode();
                tn.Text = en.Current.ToString();
                tn.Tag  = en.Current;
                tnode.Nodes.Add(tn);
            }
            if (ssbType == SsbEnum.Queu)
            {
                TreeNode     tn  = new TreeNode();
                ServiceQueue txQ = new ServiceQueue();
                //txQ.Parent.Parent = GetDatabaseFromTag(tn.Parent);
                txQ.Name = "sys.transmission_queue";
                tn.Text  = txQ.Name;
                tn.Tag   = txQ;
                tnode.Nodes.Add(tn);
            }
        }
Beispiel #18
0
        public static bool ExpandNodes1(TreeView tv1, TreeNode tn, bool refresh, bool filterSsb, SsbEnum sType)
        {
            SsbEnum ssbType = SsbEnum.None;

            ssbType = sType;
            SSBIServer serv = null;
            bool       res  = true;

            int lvl = tn.Level;

            try {
                if (lvl < 1)
                {
                    ssbType = SsbEnum.None;
                }

                else if (lvl == 1)
                {
                    ssbType = SsbEnum.Server;
                    serv    = (SSBIServer)tn.Tag;
                    if (!serv.HasLoggedIn)
                    {
                        res = false;
                        Connect(tv1, tn);
                    }
                    //SetUpSSBObject(tn.Tag);
                }
                else if (lvl == 2 && !filterSsb)
                {
                    ssbType = SsbEnum.Database;
                }
                else if (lvl == 2 && filterSsb)
                {
                    ssbType = sType;
                }

                else if (lvl > 2 && !filterSsb)
                {
                    ssbType = (SsbEnum)tn.Index;
                }
                else if (lvl > 2 && filterSsb)
                {
                    ssbType = sType;
                }

                if (lvl != 1)
                {
                    TVSetUp.ExpandNodes(tv1, tn, ref ssbType);
                }
                else if (lvl == 1 && serv.HasLoggedIn)
                {
                    TVSetUp.ExpandNodes(tv1, tn, ref ssbType);
                }

                //if (lvl == 3 && tabControl1.Visible)
                //  tabControl1.Visible = false;

                return(res);
            }
            catch (Exception ex) {
                smo.ShowException(ex);
                return(false);
            }
        }
Beispiel #19
0
        internal static object GetObject2(SSBIServer s, Database db, string objName, SsbEnum index)
        {
            object        smob = null;
            Server        serv = null;
            Database      db2  = null;
            ServiceBroker sb   = null;

            try {
                serv        = CreateServer2(s);
                s.SMOServer = serv;
                if (db != null)
                {
                    db2 = serv.Databases[db.Name];
                    sb  = serv.Databases[db2.Name].ServiceBroker;
                }

                switch (index)
                {
                case SsbEnum.Server:
                    smob = s;
                    break;

                case SsbEnum.Database:
                    db2  = serv.Databases[objName];
                    smob = new SSBIDatabase(db2);
                    //serv.ConnectionContext.Disconnect();
                    break;

                case SsbEnum.MessageType:
                    smob = sb.MessageTypes[objName];
                    break;

                case SsbEnum.Contract:
                    smob = sb.ServiceContracts[objName];
                    break;

                case SsbEnum.Service:
                    smob = sb.Services[objName];
                    break;

                case SsbEnum.Queu:
                    if (objName == "sys.transmission_queue")
                    {
                        ServiceQueue txQ = new ServiceQueue();
                        txQ.Name   = "sys.transmission_queue";
                        txQ.Parent = sb;
                        txQ.Schema = "sys";
                        smob       = txQ;
                    }
                    else
                    {
                        smob = sb.Queues[objName];
                    }
                    break;

                case SsbEnum.Route:
                    smob = sb.Routes[objName];
                    break;

                case SsbEnum.RemoteBinding:
                    smob = sb.RemoteServiceBindings[objName];
                    break;

                case SsbEnum.Conversation:
                    smob = smo.GetConversationCollection(db, null, new Guid(objName)).Item(0);
                    break;
                }

                if (smob == null)
                {
                    string errMsg = string.Format("Can not retrieve {0}: {1}.\nIt may have been dropped/deleted.", index.ToString(), objName);
                    throw new ApplicationException(errMsg);
                }

                return(smob);
            }

            catch (NullReferenceException) {
                if (serv != null && db2 == null)
                {
                    throw new ApplicationException(string.Format("Can not connect to database: {0}.\nIt may have been dropped/deleted.", db.Name));
                }

                return(null);
            }

            catch (ConnectionFailureException e) {
                throw e;
                return(null);
            }
            finally {
                serv.ConnectionContext.Disconnect();
            }
        }
Beispiel #20
0
        internal static object GetObject(Database db, string objName, SsbEnum index)
        {
            object   smob = null;
            Server   serv = null;
            Database db2  = null;

            try {
                serv = CreateServer(db.Parent.Name, null, null);
                //serv = CreateServer2(db.Parent.Name, null, null);
                db2 = serv.Databases[db.Name];
                ServiceBroker sb = serv.Databases[db2.Name].ServiceBroker;

                switch (index)
                {
                case SsbEnum.Database:

                    smob = serv.Databases[objName];
                    //serv.ConnectionContext.Disconnect();
                    break;

                case SsbEnum.MessageType:
                    smob = sb.MessageTypes[objName];
                    break;

                case SsbEnum.Contract:
                    smob = sb.ServiceContracts[objName];
                    break;

                case SsbEnum.Service:
                    smob = sb.Services[objName];
                    break;

                case SsbEnum.Queu:
                    smob = sb.Queues[objName];
                    break;

                case SsbEnum.Route:
                    smob = sb.Routes[objName];
                    break;

                case SsbEnum.RemoteBinding:
                    smob = sb.RemoteServiceBindings[objName];
                    break;

                case SsbEnum.Conversation:
                    smob = smo.GetConversationCollection(db, null, new Guid(objName)).Item(0);
                    break;
                }

                if (smob == null)
                {
                    string errMsg = string.Format("Can not retrieve {0}: {1}.\nIt may have been dropped/deleted.", index.ToString(), objName);
                    throw new ApplicationException(errMsg);
                }

                return(smob);
            }

            catch (NullReferenceException) {
                if (serv != null && db2 == null)
                {
                    throw new ApplicationException(string.Format("Can not connect to database: {0}.\nIt may have been dropped/deleted.", db.Name));
                }

                return(null);
            }
            finally {
                serv.ConnectionContext.Disconnect();
            }
        }
Beispiel #21
0
        internal static void DeleteObject(SsbEnum sType, object smoObj)
        {
            switch (sType)
            {
            case SsbEnum.Database:
                Database db = null;
                if (smoObj.GetType() == typeof(SSBIDatabase))
                {
                    db = ((SSBIDatabase)smoObj).DataBase;
                }
                else if (smoObj.GetType() == typeof(Database))
                {
                    db = (Database)smoObj;
                }

                db.Drop();
                break;

            case SsbEnum.MessageType:
                MessageType mt = (MessageType)smoObj;
                mt.Drop();
                break;

            case SsbEnum.Contract:
                ServiceContract sc = (ServiceContract)smoObj;
                sc.Drop();
                break;

            case SsbEnum.Queu:
                ServiceQueue sq = (ServiceQueue)smoObj;
                sq.Drop();
                break;

            case SsbEnum.Service:
                BrokerService bs = (BrokerService)smoObj;
                bs.Drop();
                break;

            case SsbEnum.Route:
                ServiceRoute sr = (ServiceRoute)smoObj;
                sr.Drop();
                break;

            case SsbEnum.RemoteBinding:
                RemoteServiceBinding rsb = (RemoteServiceBinding)smoObj;
                rsb.Drop();
                break;

            case SsbEnum.Conversation:
                SSBIConversation cnv = (SSBIConversation)smoObj;
                smo.EndConversation(cnv);
                break;

            case SsbEnum.EndPoint:
                Endpoint ep = (Endpoint)smoObj;
                ep.Drop();
                break;

            case SsbEnum.Certificate:
                Certificate cert = (Certificate)smoObj;
                cert.Drop();
                break;
            }
        }
Beispiel #22
0
 public Form2(SsbEnum idx)
     : this(idx, null)
 {
 }
Beispiel #23
0
        internal static void ExpandNodes(TreeView tv1, TreeNode tn, ref SsbEnum ssbType)
        {
            Cursor crs = Cursor.Current;
              Cursor.Current = Cursors.WaitCursor;
              SSBIServer serv = null;
              Database db = null;
              //dbName = null;
              //svrName = null;
              int lvl = tn.Level;
              try {
            if (lvl > 0)
              tn.Nodes.Clear();

            //get databases
            if (lvl == 1) {
              serv = (SSBIServer)tn.Tag;
              DatabaseCollection dbColl = (DatabaseCollection)smo.GetSSBObjects2(serv, null, SsbEnum.Server);
              foreach (Database db2 in dbColl) {
            TreeNode tndb = new TreeNode();
            tndb.Text = db2.Name;
            tndb.Tag = db2;
            tndb.Nodes.Add(new TreeNode(""));
            tn.Nodes.Add(tndb);
              }

            }
            //set up main broker objects
            else if (lvl == 2) {
              //statusStrip1.Text = "Loading SSB Objects...";
              if (ssbType == SsbEnum.Database) {
            tn.Nodes.Add(new TreeNode("Message Types"));
            tn.Nodes.Add(new TreeNode("Message Contracts"));
            tn.Nodes.Add(new TreeNode("Queues"));
            tn.Nodes.Add(new TreeNode("Services"));
            tn.Nodes.Add(new TreeNode("Routes"));
            tn.Nodes.Add(new TreeNode("Remote Service Bindings"));
            tn.Nodes.Add(new TreeNode("Conversations"));

              }
              else {
            if (ssbType == SsbEnum.MessageType)
              tn.Nodes.Add(new TreeNode("Message Types"));
            else if (ssbType == SsbEnum.Contract)
              tn.Nodes.Add(new TreeNode("Message Contracts"));
            else if (ssbType == SsbEnum.Queu)
              tn.Nodes.Add(new TreeNode("Queues"));
            else if (ssbType == SsbEnum.Service)
              tn.Nodes.Add(new TreeNode("Services"));
            else if (ssbType == SsbEnum.Route)
              tn.Nodes.Add(new TreeNode("Routes"));
            else if (ssbType == SsbEnum.RemoteBinding)
              tn.Nodes.Add(new TreeNode("Remote Service Bindings"));
            else if (ssbType == SsbEnum.Conversation)
              tn.Nodes.Add(new TreeNode("Conversations"));

              }

              foreach (TreeNode tnChild in tn.Nodes) {
            tnChild.Nodes.Add(new TreeNode(""));
              }
            }

              //retrieve objects for chosen main SSB Object
            else if (lvl == 3) {
              //statusStrip1.Text = "Loading Objects...";
              db = GetDatabaseFromTag(tn.Parent);
              //db = (Database)tn.Parent.Tag;
              serv = (SSBIServer)tn.Parent.Parent.Tag;
              RetrieveAndLoadObjects(serv, db, tn, ssbType);

            }

            else if (lvl == 4) {
              //statusStrip1.Text = "Loading Objects...";
              TreeNode tnp = tn.Parent;
              db = GetDatabaseFromTag(tn.Parent);
              //db = (Database)tnp.Parent.Tag;
              serv = (SSBIServer)tnp.Parent.Parent.Tag;
              RetrieveAndLoadObjects(serv, db, tnp, ssbType);

              foreach (TreeNode tne in tnp.Nodes) {
            if (tne.Text == tn.Text) {
              tv1.SelectedNode = tne;
              break;
            }
              }
            }

            //if (lvl != 4)
            //tv1.SelectedNode = tn;
              }
              catch (Exception ex) {
            throw ex;
              }
        }
Beispiel #24
0
 public Form2(SsbEnum idx, SSBIServer srv)
     : this(idx, srv, null)
 {
 }
Beispiel #25
0
        internal static void DeleteObject(SsbEnum sType, object smoObj)
        {
            switch (sType) {

            case SsbEnum.Database:
             Database db = null;
              if(smoObj.GetType() == typeof(SSBIDatabase))
                db = ((SSBIDatabase)smoObj).DataBase;
              else if (smoObj.GetType() == typeof(Database))
                db = (Database)smoObj;

              db.Drop();
              break;

            case SsbEnum.MessageType:
              MessageType mt = (MessageType)smoObj;
              mt.Drop();
              break;
            case SsbEnum.Contract:
              ServiceContract sc = (ServiceContract)smoObj;
              sc.Drop();
              break;
            case SsbEnum.Queu:
              ServiceQueue sq = (ServiceQueue)smoObj;
              sq.Drop();
              break;
            case SsbEnum.Service:
              BrokerService bs = (BrokerService)smoObj;
              bs.Drop();
              break;
            case SsbEnum.Route:
              ServiceRoute sr = (ServiceRoute)smoObj;
              sr.Drop();
              break;
            case SsbEnum.RemoteBinding:
              RemoteServiceBinding rsb = (RemoteServiceBinding)smoObj;
              rsb.Drop();
              break;
            case SsbEnum.Conversation:
              SSBIConversation cnv = (SSBIConversation)smoObj;
              smo.EndConversation(cnv);
              break;

            case SsbEnum.EndPoint:
              Endpoint ep = (Endpoint)smoObj;
              ep.Drop();
              break;

            case SsbEnum.Certificate:
              Certificate cert = (Certificate)smoObj;
              cert.Drop();
              break;
              }
        }
Beispiel #26
0
        internal static void DeploySsbObj(object obj, string svrName, string dbName, SsbEnum ssbType, bool isEdit)
        {
            Server svr = CreateServer(svrName, null, null);
              Database db = svr.Databases[dbName];
              ServiceBroker sb = db.ServiceBroker;
              MessageType mt = null;
              ServiceContract sc = null;
              ServiceQueue q = null;
              BrokerService serv = null;
              ServiceRoute rt = null;
              RemoteServiceBinding bind = null;

              try {
            switch (ssbType) {
              case SsbEnum.MessageType:
            MessageType mtNew = new MessageType();
            mtNew.Parent = sb;
            mt = (MessageType)obj;
            mtNew.Name = mt.Name;
            mtNew.MessageTypeValidation = mt.MessageTypeValidation;
            if (mt.MessageTypeValidation == MessageTypeValidation.XmlSchemaCollection)
              mtNew.ValidationXmlSchemaCollection = mt.ValidationXmlSchemaCollection;

            if (isEdit)
              mtNew.Alter();
            else
              mtNew.Create();

            break;

              case SsbEnum.Contract:
            ServiceContract scNew = new ServiceContract();
            sc = (ServiceContract)obj;
            scNew.Parent = sb;
            scNew.Name = sc.Name;
            foreach (MessageTypeMapping mtm in sc.MessageTypeMappings) {
              if (!sb.MessageTypes.Contains(mtm.Name)) {
                ServiceBroker sbParent = sc.Parent;
                MessageType mtp = sbParent.MessageTypes[mtm.Name];
                DeploySsbObj(mtp, svrName, dbName, SsbEnum.MessageType, false);
              }

              MessageTypeMapping mtmNew = new MessageTypeMapping();
              mtmNew.Name = mtm.Name;
              mtmNew.Parent = scNew;
              mtmNew.MessageSource = mtm.MessageSource;
              scNew.MessageTypeMappings.Add(mtmNew);

            }

            if (isEdit)
              scNew.Alter();
            else
              scNew.Create();

            break;

              case SsbEnum.Queu:
            q = (ServiceQueue)obj;
            q.Parent = sb;

            if (isEdit)
              q.Alter();
            else
              q.Create();

            break;

              case SsbEnum.Service:
            serv = (BrokerService)obj;
            serv.Parent = sb;

            if (isEdit)
              serv.Alter();
            else
              serv.Create();

            break;

              case SsbEnum.Route:
            rt = (ServiceRoute)obj;
            rt.Parent = sb;

            if (isEdit)
              rt.Alter();
            else
              rt.Create();

            break;

              case SsbEnum.RemoteBinding:
            bind = (RemoteServiceBinding)obj;
            bind.Parent = sb;

            if (isEdit)
              bind.Alter();
            else
              bind.Create();

            break;

            }
              }
              catch (FailedOperationException e) {
            string err = string.Format("{0}", e.InnerException);
            //throw;
              }
              catch (Exception ex) {
            string errx = string.Format("{0}", ex.InnerException);

              }

              finally {
            svr.ConnectionContext.Disconnect();
              }
        }
Beispiel #27
0
        internal static ICollection GetSSBObjects2(SSBIServer serv, Database db, SsbEnum index)
        {
            ICollection   ssbColl = null;
            ServiceBroker sb      = null;
            Server        s       = null;

            try {
                s = serv.SMOServer;
                if (s == null)
                {
                    s = CreateServer2(serv);
                }


                if (db != null)
                {
                    db = s.Databases[db.Name];
                    sb = db.ServiceBroker;
                }



                switch (index)
                {
                case SsbEnum.Server:
                    ssbColl = s.Databases;
                    break;

                case SsbEnum.Database:
                    ssbColl = s.Databases;
                    break;

                case SsbEnum.MessageType:
                    ssbColl = sb.MessageTypes;
                    break;

                case SsbEnum.Contract:
                    ssbColl = sb.ServiceContracts;
                    break;

                case SsbEnum.Queu:
                    ssbColl = sb.Queues;

                    break;

                case SsbEnum.Service:
                    ssbColl = sb.Services;
                    break;

                case SsbEnum.Route:
                    ssbColl = sb.Routes;
                    break;

                case SsbEnum.RemoteBinding:
                    ssbColl = sb.RemoteServiceBindings;
                    break;

                case SsbEnum.Conversation:
                    ssbColl = GetConversationCollection(db, null);

                    break;
                }
                return(ssbColl);
            }
            catch (Exception e) {
                throw e;
            }
            finally {
                if (s != null)
                {
                    s.ConnectionContext.Disconnect();
                }
            }
        }
Beispiel #28
0
 static void RetrieveAndLoadObjects(SSBIServer s, Database db, TreeNode tnode, SsbEnum ssbType)
 {
     ICollection coll = smo.GetSSBObjects2(s, db, ssbType);
       IEnumerator en = coll.GetEnumerator();
       while (en.MoveNext()) {
     TreeNode tn = new TreeNode();
     tn.Text = en.Current.ToString();
     tn.Tag = en.Current;
     tnode.Nodes.Add(tn);
       }
       if (ssbType == SsbEnum.Queu) {
     TreeNode tn = new TreeNode();
     ServiceQueue txQ = new ServiceQueue();
     //txQ.Parent.Parent = GetDatabaseFromTag(tn.Parent);
     txQ.Name = "sys.transmission_queue";
     tn.Text = txQ.Name;
     tn.Tag = txQ;
     tnode.Nodes.Add(tn);
       }
 }
Beispiel #29
0
 public Form2(SsbEnum idx, string _srvName, string _dbName, bool toEdit, object smob, Stream msgStream)
 {
 }
Beispiel #30
0
        internal static void ExpandNodes(TreeView tv1, TreeNode tn, ref SsbEnum ssbType)
        {
            Cursor crs = Cursor.Current;

            Cursor.Current = Cursors.WaitCursor;
            SSBIServer serv = null;
            Database   db   = null;
            //dbName = null;
            //svrName = null;
            int lvl = tn.Level;

            try {
                if (lvl > 0)
                {
                    tn.Nodes.Clear();
                }

                //get databases
                if (lvl == 1)
                {
                    serv = (SSBIServer)tn.Tag;
                    DatabaseCollection dbColl = (DatabaseCollection)smo.GetSSBObjects2(serv, null, SsbEnum.Server);
                    foreach (Database db2 in dbColl)
                    {
                        TreeNode tndb = new TreeNode();
                        tndb.Text = db2.Name;
                        tndb.Tag  = db2;
                        tndb.Nodes.Add(new TreeNode(""));
                        tn.Nodes.Add(tndb);
                    }
                }
                //set up main broker objects
                else if (lvl == 2)
                {
                    //statusStrip1.Text = "Loading SSB Objects...";
                    if (ssbType == SsbEnum.Database)
                    {
                        tn.Nodes.Add(new TreeNode("Message Types"));
                        tn.Nodes.Add(new TreeNode("Message Contracts"));
                        tn.Nodes.Add(new TreeNode("Queues"));
                        tn.Nodes.Add(new TreeNode("Services"));
                        tn.Nodes.Add(new TreeNode("Routes"));
                        tn.Nodes.Add(new TreeNode("Remote Service Bindings"));
                        tn.Nodes.Add(new TreeNode("Conversations"));
                    }
                    else
                    {
                        if (ssbType == SsbEnum.MessageType)
                        {
                            tn.Nodes.Add(new TreeNode("Message Types"));
                        }
                        else if (ssbType == SsbEnum.Contract)
                        {
                            tn.Nodes.Add(new TreeNode("Message Contracts"));
                        }
                        else if (ssbType == SsbEnum.Queu)
                        {
                            tn.Nodes.Add(new TreeNode("Queues"));
                        }
                        else if (ssbType == SsbEnum.Service)
                        {
                            tn.Nodes.Add(new TreeNode("Services"));
                        }
                        else if (ssbType == SsbEnum.Route)
                        {
                            tn.Nodes.Add(new TreeNode("Routes"));
                        }
                        else if (ssbType == SsbEnum.RemoteBinding)
                        {
                            tn.Nodes.Add(new TreeNode("Remote Service Bindings"));
                        }
                        else if (ssbType == SsbEnum.Conversation)
                        {
                            tn.Nodes.Add(new TreeNode("Conversations"));
                        }
                    }

                    foreach (TreeNode tnChild in tn.Nodes)
                    {
                        tnChild.Nodes.Add(new TreeNode(""));
                    }
                }

                //retrieve objects for chosen main SSB Object
                else if (lvl == 3)
                {
                    //statusStrip1.Text = "Loading Objects...";
                    db = GetDatabaseFromTag(tn.Parent);
                    //db = (Database)tn.Parent.Tag;
                    serv = (SSBIServer)tn.Parent.Parent.Tag;
                    RetrieveAndLoadObjects(serv, db, tn, ssbType);
                }

                else if (lvl == 4)
                {
                    //statusStrip1.Text = "Loading Objects...";
                    TreeNode tnp = tn.Parent;
                    db = GetDatabaseFromTag(tn.Parent);
                    //db = (Database)tnp.Parent.Tag;
                    serv = (SSBIServer)tnp.Parent.Parent.Tag;
                    RetrieveAndLoadObjects(serv, db, tnp, ssbType);

                    foreach (TreeNode tne in tnp.Nodes)
                    {
                        if (tne.Text == tn.Text)
                        {
                            tv1.SelectedNode = tne;
                            break;
                        }
                    }
                }

                //if (lvl != 4)
                //tv1.SelectedNode = tn;
            }
            catch (Exception ex) {
                throw ex;
            }
        }
Beispiel #31
0
        internal static ICollection GetSSBObjects2(SSBIServer serv, Database db, SsbEnum index)
        {
            ICollection ssbColl = null;
              ServiceBroker sb = null;
              Server s = null;
              try {
            s = serv.SMOServer;
            if(s == null)
              s = CreateServer2(serv);

            if (db != null) {
              db = s.Databases[db.Name];
              sb = db.ServiceBroker;
            }

            switch (index) {
              case SsbEnum.Server:
            ssbColl = s.Databases;
            break;
              case SsbEnum.Database:
            ssbColl = s.Databases;
            break;

              case SsbEnum.MessageType:
            ssbColl = sb.MessageTypes;
            break;
              case SsbEnum.Contract:
            ssbColl = sb.ServiceContracts;
            break;
              case SsbEnum.Queu:
            ssbColl = sb.Queues;

            break;
              case SsbEnum.Service:
            ssbColl = sb.Services;
            break;
              case SsbEnum.Route:
            ssbColl = sb.Routes;
            break;
              case SsbEnum.RemoteBinding:
            ssbColl = sb.RemoteServiceBindings;
            break;

              case SsbEnum.Conversation:
            ssbColl = GetConversationCollection(db, null);

            break;
            }
            return ssbColl;

              }
              catch (Exception e) {
            throw e;
              }
              finally {

            if (s != null)
              s.ConnectionContext.Disconnect();
              }
        }