Ignore:
Timestamp:
May 29, 2011, 2:13:37 AM (13 years ago)
Author:
Sam Habiel
Message:

All changes to support BMX4. Now works with BMX 4.
AssemblyInfo: Bumped to 1.6 (will be 1.7 pending server changes).
Removed BMXNet23.dll and added BMXNET40.dll and BMXWIN40.dll.
Actual changes to support BMX 4 in the code:
All references to DocManager.ConnectInfo.bmxNetLib substituted with CGDocumentManager.Current.RemoteSession everywhere.
All Events use RemoteSession.EventServices APIs.
All references to DUZ use RemoteSession.User APIs.
All references to BMXNetLib.Piece changed to M.Piece.
Added RPC Logging Capability courtesy of BMX4.
Extensive changes in the Main[] class CGDocumentManager:

  • Added references to IndianHealthService.BMXNet.WinForm
  • Removed references to BMXNetLib and changed to RemoteSession
  • Singleton Instance constructor now private (overdue change).
  • Use new Event Framework part of Remote Session.
  • Login code totally rewritten to use BMXWIN40.dll.
  • RPMSDataTable references changed to TableFromCommand or TableFromSQL.

DAL:

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Scheduling/branches/BMX4Support/CGView.cs

    r1174 r1194  
    114114        private MenuItem sepApptMenu3;
    115115        private MenuItem mnuReprintApptSlip;
     116        private MenuItem mnuViewBrokerLog;
    116117        private IContainer components;
    117118
     
    132133                public void InitializeDocView(string sText)
    133134                {
    134                         this.Text = this.DocManager.ConnectInfo.UserName;
     135            this.Text = CGDocumentManager.Current.RemoteSession.User.Name;
    135136                        if (sText != null)
    136137                                this.Text += " - " + sText;
    137                         if (DocManager.ConnectInfo.DivisionName != null)
    138                                 this.Text += " - " + DocManager.ConnectInfo.DivisionName;
     138            if (CGDocumentManager.Current.RemoteSession.User.Division.Name != null)
     139                this.Text += " - " + CGDocumentManager.Current.RemoteSession.User.Division.Name;
    139140                }
    140141
     
    157158
    158159            // Set username and division up top
    159             this.Text = this.DocManager.ConnectInfo.UserName;
     160            this.Text = CGDocumentManager.Current.RemoteSession.User.Name;
    160161                        if (sText != null)
    161162                                this.Text += " - " + sText;
    162                         if (DocManager.ConnectInfo.DivisionName != null)
    163                                 this.Text += " - " + DocManager.ConnectInfo.DivisionName;
    164 
    165                         this.m_ConnectInfo = m_DocManager.ConnectInfo;
    166                         m_bmxDelegate = new BMXNetConnectInfo.BMXNetEventDelegate(BMXNetEventHandler);
    167                         m_ConnectInfo.BMXNetEvent += m_bmxDelegate;
    168                 }
    169 
    170                 private BMXNetConnectInfo.BMXNetEventDelegate m_bmxDelegate;
     163                        if (CGDocumentManager.Current.RemoteSession.User.Division.Name != null)
     164                this.Text += " - " + CGDocumentManager.Current.RemoteSession.User.Division.Name;
     165
     166            CGDocumentManager.Current.RemoteSession.EventServices.RpmsEvent += BMXNetEventHandler;
     167                }
    171168               
    172169
     
    235232            this.mnuHelp = new System.Windows.Forms.MenuItem();
    236233            this.mnuHelpAbout = new System.Windows.Forms.MenuItem();
     234            this.mnuViewBrokerLog = new System.Windows.Forms.MenuItem();
    237235            this.mnuTest = new System.Windows.Forms.MenuItem();
    238236            this.mnuTest1 = new System.Windows.Forms.MenuItem();
     
    680678            this.mnuHelp.Index = 3;
    681679            this.mnuHelp.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
    682             this.mnuHelpAbout});
     680            this.mnuHelpAbout,
     681            this.mnuViewBrokerLog});
    683682            this.mnuHelp.Text = "&Help";
    684683            //
     
    688687            this.mnuHelpAbout.Text = "&About";
    689688            this.mnuHelpAbout.Click += new System.EventHandler(this.mnuHelpAbout_Click);
     689            //
     690            // mnuViewBrokerLog
     691            //
     692            this.mnuViewBrokerLog.Index = 1;
     693            this.mnuViewBrokerLog.Text = "&View Broker Log";
     694            this.mnuViewBrokerLog.Click += new System.EventHandler(this.mnuViewBrokerLog_Click);
    690695            //
    691696            // mnuTest
     
    702707            this.mnuTest1.Index = 0;
    703708            this.mnuTest1.Text = "Test1";
    704             this.mnuTest1.Click += new System.EventHandler(this.mnuTest1_Click);
    705709            //
    706710            // tvSchedules
     
    712716            this.tvSchedules.Location = new System.Drawing.Point(0, 0);
    713717            this.tvSchedules.Name = "tvSchedules";
    714             this.tvSchedules.Size = new System.Drawing.Size(128, 392);
     718            this.tvSchedules.Size = new System.Drawing.Size(128, 389);
    715719            this.tvSchedules.Sorted = true;
    716720            this.tvSchedules.TabIndex = 1;
     
    781785            this.panelRight.Location = new System.Drawing.Point(996, 0);
    782786            this.panelRight.Name = "panelRight";
    783             this.panelRight.Size = new System.Drawing.Size(128, 392);
     787            this.panelRight.Size = new System.Drawing.Size(128, 389);
    784788            this.panelRight.TabIndex = 3;
    785789            this.panelRight.Visible = false;
     
    877881            this.panelCenter.Location = new System.Drawing.Point(136, 24);
    878882            this.panelCenter.Name = "panelCenter";
    879             this.panelCenter.Size = new System.Drawing.Size(857, 344);
     883            this.panelCenter.Size = new System.Drawing.Size(857, 341);
    880884            this.panelCenter.TabIndex = 7;
    881885            //
     
    984988            this.panelBottom.Controls.Add(this.statusBar1);
    985989            this.panelBottom.Dock = System.Windows.Forms.DockStyle.Bottom;
    986             this.panelBottom.Location = new System.Drawing.Point(136, 368);
     990            this.panelBottom.Location = new System.Drawing.Point(136, 365);
    987991            this.panelBottom.Name = "panelBottom";
    988992            this.panelBottom.Size = new System.Drawing.Size(857, 24);
     
    10021006            this.splitter1.Location = new System.Drawing.Point(128, 24);
    10031007            this.splitter1.Name = "splitter1";
    1004             this.splitter1.Size = new System.Drawing.Size(8, 368);
     1008            this.splitter1.Size = new System.Drawing.Size(8, 365);
    10051009            this.splitter1.TabIndex = 9;
    10061010            this.splitter1.TabStop = false;
     
    10111015            this.splitter2.Location = new System.Drawing.Point(993, 24);
    10121016            this.splitter2.Name = "splitter2";
    1013             this.splitter2.Size = new System.Drawing.Size(3, 368);
     1017            this.splitter2.Size = new System.Drawing.Size(3, 365);
    10141018            this.splitter2.TabIndex = 10;
    10151019            this.splitter2.TabStop = false;
     
    10341038            this.calendarGrid1.Resources = ((System.Collections.ArrayList)(resources.GetObject("calendarGrid1.Resources")));
    10351039            this.calendarGrid1.SelectedAppointment = 0;
    1036             this.calendarGrid1.Size = new System.Drawing.Size(857, 344);
     1040            this.calendarGrid1.Size = new System.Drawing.Size(857, 341);
    10371041            this.calendarGrid1.StartDate = new System.DateTime(2003, 1, 27, 0, 0, 0, 0);
    10381042            this.calendarGrid1.TabIndex = 0;
     
    10471051            //
    10481052            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
    1049             this.ClientSize = new System.Drawing.Size(1124, 392);
     1053            this.ClientSize = new System.Drawing.Size(1124, 389);
    10501054            this.Controls.Add(this.panelCenter);
    10511055            this.Controls.Add(this.panelBottom);
     
    10861090                private Hashtable                       m_htModifySchedule;
    10871091                private Hashtable                       m_htChangeAppts;
    1088                 private BMXNetConnectInfo       m_ConnectInfo = null;
    1089                 public BMXNetConnectInfo.BMXNetEventDelegate    BMXNetEvent;
    10901092
    10911093                #endregion Fields
     
    13081310                        DataTable dt = this.DocManager.GlobalDataSet.Tables["ResourceUser"];
    13091311                        DataView dv = new DataView(dt, "", "RESOURCENAME ASC", DataViewRowState.OriginalRows);
    1310                         string sDuz = this.DocManager.ConnectInfo.DUZ;
     1312            string sDuz = CGDocumentManager.Current.RemoteSession.User.Duz;
    13111313                        bool bModSchedule = false;
    13121314                        DataRowView[] drvA = dv.FindRows(sResource);
     
    17561758                                        doc.ResourceID = Convert.ToInt32(sResourceID);
    17571759
    1758                                         bool bLock = DocManager.ConnectInfo.bmxNetLib.Lock("^BSDXRES(" + sResourceID + ")", "+");
     1760                    bool bLock = CGDocumentManager.Current.RemoteSession.Lock("^BSDXRES(" + sResourceID + ")", "+");
    17591761                                        if (bLock == false)
    17601762                                        {
     
    19291931                        dt = this.DocManager.GlobalDataSet.Tables["ResourceUser"];
    19301932                        dv = new DataView(dt, "", "RESOURCENAME ASC", DataViewRowState.OriginalRows);
    1931                         dv.RowFilter = "USERNAME = '" + this.DocManager.ConnectInfo.UserName + "'";
     1933            dv.RowFilter = "USERNAME = '" + CGDocumentManager.Current.RemoteSession.User.Name + "'";
    19321934                        for (int j=0; j < dv.Count; j++)
    19331935                        {
     
    25042506                        {
    25052507                string msg;
    2506                 if (BMXNetLib.Piece(ex.Message, "~", 1) == "-10") // -10 means that BSDXAPI reported an error.
    2507                     msg = BMXNetLib.Piece(ex.Message, "~", 4);
     2508                if (M.Piece(ex.Message, "~", 1) == "-10") // -10 means that BSDXAPI reported an error.
     2509                    msg = M.Piece(ex.Message, "~", 4);
    25082510                else
    25092511                    msg = ex.Message;
     
    26152617                        {   
    26162618                string msg;
    2617                 if (BMXNetLib.Piece(ex.Message, "~", 1) == "-10") // -10 means that BSDXAPI reported an error.
    2618                     msg = BMXNetLib.Piece(ex.Message, "~", 4);
     2619                if (M.Piece(ex.Message, "~", 1) == "-10") // -10 means that BSDXAPI reported an error.
     2620                    msg = M.Piece(ex.Message, "~", 4);
    26192621                else
    26202622                    msg = ex.Message;
     
    27162718        /// <param name="e">BMXEvent Args:
    27172719        /// e.BMXEvent is free text for Event Type; e.BMXParam is free text for Event Arguments</param>
    2718         private void BMXNetEventHandler(Object obj, BMXNet.BMXNetEventArgs e)
     2720        private void BMXNetEventHandler(Object obj, RemoteEventArgs e)
    27192721        {
    27202722            try
     
    27242726
    27252727                // if event is Autofire event
    2726                 if (e.BMXEvent == "BMXNet AutoFire")
     2728                if (e.EventType == "BMXNet AutoFire")
    27272729                {
    27282730                    Debug.Write("CGView caught AutoFire event.\n");
     
    27372739
    27382740                // if event is BSDX SCHEDULE
    2739                 else if (e.BMXEvent == "BSDX SCHEDULE")
     2741                else if (e.EventType == "BSDX SCHEDULE")
    27402742                {
    27412743                    //See if any of the resources in the event argument matches BSDX Schedule.
     
    27452747                    {
    27462748                        sResourceName = m_Document.m_sResourcesArray[j].ToString();
    2747                         if (e.BMXParam == sResourceName)
     2749                        if (e.Details == sResourceName)
    27482750                        {
    27492751                            Debug.Write("CGView caught BSDX SCHEDULE event.\n");
     
    28132815            {
    28142816                //Signal RPMS to raise an event
    2815                 m_ConnectInfo.RaiseEvent(sEvent, sParams, false);
     2817                CGDocumentManager.Current.RemoteSession.EventServices.TriggerEvent(sEvent, sParams, false);
    28162818            }
    28172819            catch (Exception ex)
     
    28592861            try
    28602862            {
    2861                 bool bLock = DocManager.ConnectInfo.Lock("^BSDXMGR", "+", "");
     2863                bool bLock = CGDocumentManager.Current.RemoteSession.Lock("^BSDXMGR", "+");
    28622864                if (bLock == false)
    28632865                {
     
    28742876                m_DocManager.GlobalDataSet.Tables["ResourceUser"].Clear();
    28752877                m_DocManager.LoadResourceUserTable(false);
    2876                 bLock = DocManager.ConnectInfo.bmxNetLib.Lock("^BSDXMGR", "-");
     2878                bLock = CGDocumentManager.Current.RemoteSession.Lock("^BSDXMGR", "-");
    28772879            }
    28782880            catch (ApplicationException aex)
     
    31403142        }
    31413143
    3142         /// <summary>
    3143         /// Useless code now... Good place to test something.
    3144         /// </summary>
    3145         /// <param name="sender"></param>
    3146         /// <param name="e"></param>
    3147                 private void mnuTest1_Click(object sender, System.EventArgs e)
    3148                 {
    3149                         ReaderWriterLock m_rwl = this.DocManager.ConnectInfo.bmxNetLib.BMXRWL;
     3144                private void CGView_Closing(object sender, System.ComponentModel.CancelEventArgs e)
     3145                {
    31503146                        try
    31513147                        {
    3152                                 m_rwl.AcquireWriterLock(50);
    3153                                 Debug.Write("\nTest Button 1 Acquired first lock\n");
    3154                                 m_rwl.AcquireWriterLock(50);
    3155                                 Debug.Write("Test Button 1 Acquired second lock\n");
    3156                                 this.DocManager.ViewRefresh();
    3157                                 Thread.Sleep(5000);
    3158                                 try
    3159                                 {
    3160                                 }
    3161                                 catch
    3162                                 {
    3163                                 }
    3164                                 finally
    3165                                 {
    3166                                         m_rwl.ReleaseWriterLock();
    3167                                         Debug.Write ("Test Button 1 released first lock.\n");
    3168                                         m_rwl.ReleaseWriterLock();
    3169                                         Debug.Write ("Test Button 1 released second lock.\n");
    3170                                 }
    3171 
    3172                                 return;
    3173                         }
    3174                         catch (Exception ex)
    3175                         {
    3176                                 Debug.Write("Test Button 1 exception: " + ex.Message + "\n");
    3177                         }
    3178                 }
    3179 
    3180                 private void CGView_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    3181                 {
    3182                         try
    3183                         {
    3184                                 m_ConnectInfo.BMXNetEvent -= m_bmxDelegate;
     3148                                CGDocumentManager.Current.RemoteSession.EventServices.RpmsEvent -= BMXNetEventHandler;
    31853149                                this.calendarGrid1.CloseGrid();
    31863150                        }
     
    39043868        }
    39053869
     3870        private void mnuViewBrokerLog_Click(object sender, EventArgs e)
     3871        {
     3872            var view = new RPCLoggerView();
     3873            view.Show();
     3874        }
     3875
    39063876
    39073877    }//End class
Note: See TracChangeset for help on using the changeset viewer.