Esempio n. 1
0
        ///<summary>Inserts one DefLink into the database.  Provides option to use the existing priKey.  Doesn't use the cache.</summary>
        public static long InsertNoCache(DefLink defLink, bool useExistingPK)
        {
            bool   isRandomKeys = Prefs.GetBoolNoCache(PrefName.RandomPrimaryKeys);
            string command      = "INSERT INTO deflink (";

            if (!useExistingPK && isRandomKeys)
            {
                defLink.DefLinkNum = ReplicationServers.GetKeyNoCache("deflink", "DefLinkNum");
            }
            if (isRandomKeys || useExistingPK)
            {
                command += "DefLinkNum,";
            }
            command += "DefNum,FKey,LinkType) VALUES(";
            if (isRandomKeys || useExistingPK)
            {
                command += POut.Long(defLink.DefLinkNum) + ",";
            }
            command +=
                POut.Long(defLink.DefNum) + ","
                + POut.Long(defLink.FKey) + ","
                + POut.Int((int)defLink.LinkType) + ")";
            if (useExistingPK || isRandomKeys)
            {
                Db.NonQ(command);
            }
            else
            {
                defLink.DefLinkNum = Db.NonQ(command, true, "DefLinkNum", "defLink");
            }
            return(defLink.DefLinkNum);
        }
Esempio n. 2
0
        ///<summary>Inserts one DefLink into the database.  Provides option to use the existing priKey.</summary>
        public static long Insert(DefLink defLink, bool useExistingPK)
        {
            if (!useExistingPK && PrefC.RandomKeys)
            {
                defLink.DefLinkNum = ReplicationServers.GetKey("deflink", "DefLinkNum");
            }
            string command = "INSERT INTO deflink (";

            if (useExistingPK || PrefC.RandomKeys)
            {
                command += "DefLinkNum,";
            }
            command += "DefNum,FKey,LinkType) VALUES(";
            if (useExistingPK || PrefC.RandomKeys)
            {
                command += POut.Long(defLink.DefLinkNum) + ",";
            }
            command +=
                POut.Long(defLink.DefNum) + ","
                + POut.Long(defLink.FKey) + ","
                + POut.Int((int)defLink.LinkType) + ")";
            if (useExistingPK || PrefC.RandomKeys)
            {
                Db.NonQ(command);
            }
            else
            {
                defLink.DefLinkNum = Db.NonQ(command, true, "DefLinkNum", "defLink");
            }
            return(defLink.DefLinkNum);
        }
Esempio n. 3
0
 ///<summary>Inserts one DefLink into the database.  Returns the new priKey.</summary>
 public static long Insert(DefLink defLink)
 {
     if (DataConnection.DBtype == DatabaseType.Oracle)
     {
         defLink.DefLinkNum = DbHelper.GetNextOracleKey("deflink", "DefLinkNum");
         int loopcount = 0;
         while (loopcount < 100)
         {
             try {
                 return(Insert(defLink, true));
             }
             catch (Oracle.ManagedDataAccess.Client.OracleException ex) {
                 if (ex.Number == 1 && ex.Message.ToLower().Contains("unique constraint") && ex.Message.ToLower().Contains("violated"))
                 {
                     defLink.DefLinkNum++;
                     loopcount++;
                 }
                 else
                 {
                     throw ex;
                 }
             }
         }
         throw new ApplicationException("Insert failed.  Could not generate primary key.");
     }
     else
     {
         return(Insert(defLink, false));
     }
 }
Esempio n. 4
0
        ///<summary>Updates one DefLink in the database.</summary>
        public static void Update(DefLink defLink)
        {
            string command = "UPDATE deflink SET "
                             + "DefNum    =  " + POut.Long(defLink.DefNum) + ", "
                             + "FKey      =  " + POut.Long(defLink.FKey) + ", "
                             + "LinkType  =  " + POut.Int((int)defLink.LinkType) + " "
                             + "WHERE DefLinkNum = " + POut.Long(defLink.DefLinkNum);

            Db.NonQ(command);
        }
Esempio n. 5
0
        public static DefLink CreateDefLink(long defNum, long fKey, DefLinkType linkType)
        {
            DefLink defLink = new DefLink()
            {
                DefNum   = defNum,
                FKey     = fKey,
                LinkType = linkType,
            };

            DefLinks.Insert(defLink);
            return(defLink);
        }
Esempio n. 6
0
 ///<summary>Inserts one DefLink into the database.  Returns the new priKey.  Doesn't use the cache.</summary>
 public static long InsertNoCache(DefLink defLink)
 {
     if (DataConnection.DBtype == DatabaseType.MySql)
     {
         return(InsertNoCache(defLink, false));
     }
     else
     {
         if (DataConnection.DBtype == DatabaseType.Oracle)
         {
             defLink.DefLinkNum = DbHelper.GetNextOracleKey("deflink", "DefLinkNum");                  //Cacheless method
         }
         return(InsertNoCache(defLink, true));
     }
 }
Esempio n. 7
0
        ///<summary>Converts a DataTable to a list of objects.</summary>
        public static List <DefLink> TableToList(DataTable table)
        {
            List <DefLink> retVal = new List <DefLink>();
            DefLink        defLink;

            foreach (DataRow row in table.Rows)
            {
                defLink            = new DefLink();
                defLink.DefLinkNum = PIn.Long(row["DefLinkNum"].ToString());
                defLink.DefNum     = PIn.Long(row["DefNum"].ToString());
                defLink.FKey       = PIn.Long(row["FKey"].ToString());
                defLink.LinkType   = (OpenDentBusiness.DefLinkType)PIn.Int(row["LinkType"].ToString());
                retVal.Add(defLink);
            }
            return(retVal);
        }
Esempio n. 8
0
 ///<summary>Returns true if Update(DefLink,DefLink) would make changes to the database.
 ///Does not make any changes to the database and can be called before remoting role is checked.</summary>
 public static bool UpdateComparison(DefLink defLink, DefLink oldDefLink)
 {
     if (defLink.DefNum != oldDefLink.DefNum)
     {
         return(true);
     }
     if (defLink.FKey != oldDefLink.FKey)
     {
         return(true);
     }
     if (defLink.LinkType != oldDefLink.LinkType)
     {
         return(true);
     }
     return(false);
 }
        public FormDefEditWSNPApptTypes(Def defCur)
        {
            InitializeComponent();
            Lan.F(this);
            _defCur             = defCur;
            checkHidden.Checked = _defCur.IsHidden;
            textName.Text       = _defCur.ItemName;
            //Look for an associated appointment type.
            List <DefLink> listDefLinks = DefLinks.GetDefLinksByType(DefLinkType.AppointmentType);
            DefLink        defLink      = listDefLinks.FirstOrDefault(x => x.DefNum == _defCur.DefNum);

            if (defLink != null)
            {
                _apptTypeCur = AppointmentTypes.GetFirstOrDefault(x => x.AppointmentTypeNum == defLink.FKey);
            }
            FillTextValue();
        }
Esempio n. 10
0
        private void FillGridWSNPAReasons()
        {
            List <Def>             listDefs      = Defs.GetDefsForCategory(DefCat.WebSchedNewPatApptTypes, true);
            List <DefLink>         listDefLinks  = DefLinks.GetDefLinksByType(DefLinkType.AppointmentType);
            List <AppointmentType> listApptTypes = AppointmentTypes.GetWhere(x => listDefLinks.Any(y => y.FKey == x.AppointmentTypeNum), true);

            //The combo box within the available times group box should always reflect the grid.
            comboWSNPADefApptType.Items.Clear();
            gridWSNPAReasons.BeginUpdate();
            gridWSNPAReasons.ListGridColumns.Clear();
            gridWSNPAReasons.ListGridColumns.Add(new GridColumn(Lan.g(this, "Reason"), 120));
            gridWSNPAReasons.ListGridColumns.Add(new GridColumn(Lan.g(this, "Pattern"), 0));
            gridWSNPAReasons.ListGridRows.Clear();
            GridRow row;

            foreach (Def def in listDefs)
            {
                AppointmentType apptType = null;
                DefLink         defLink  = listDefLinks.FirstOrDefault(x => x.DefNum == def.DefNum);
                if (defLink == null)
                {
                    continue;                    //Corruption?
                }
                apptType = listApptTypes.FirstOrDefault(x => x.AppointmentTypeNum == defLink.FKey);
                if (apptType == null)
                {
                    continue;                    //Corruption?
                }
                row = new GridRow();
                row.Cells.Add(def.ItemName);
                row.Cells.Add((string.IsNullOrEmpty(apptType.Pattern) ? Lan.g(this, "(use procedure time pattern)") : Appointments.ConvertPatternFrom5(apptType.Pattern)));
                gridWSNPAReasons.ListGridRows.Add(row);
                comboWSNPADefApptType.Items.Add(def.ItemName, def);
            }
            gridWSNPAReasons.EndUpdate();
            if (comboWSNPADefApptType.Items.Count > 0)
            {
                comboWSNPADefApptType.SelectedIndex = 0;              //Select Default.
            }
        }
Esempio n. 11
0
        ///<summary>Updates one DefLink in the database.  Uses an old object to compare to, and only alters changed fields.  This prevents collisions and concurrency problems in heavily used tables.  Returns true if an update occurred.</summary>
        public static bool Update(DefLink defLink, DefLink oldDefLink)
        {
            string command = "";

            if (defLink.DefNum != oldDefLink.DefNum)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "DefNum = " + POut.Long(defLink.DefNum) + "";
            }
            if (defLink.FKey != oldDefLink.FKey)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "FKey = " + POut.Long(defLink.FKey) + "";
            }
            if (defLink.LinkType != oldDefLink.LinkType)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "LinkType = " + POut.Int((int)defLink.LinkType) + "";
            }
            if (command == "")
            {
                return(false);
            }
            command = "UPDATE deflink SET " + command
                      + " WHERE DefLinkNum = " + POut.Long(defLink.DefLinkNum);
            Db.NonQ(command);
            return(true);
        }
Esempio n. 12
0
 ///<summary>Inserts one DefLink into the database.  Returns the new priKey.</summary>
 public static long Insert(DefLink defLink)
 {
     return(Insert(defLink, false));
 }
Esempio n. 13
0
 ///<summary>Inserts one DefLink into the database.  Returns the new priKey.  Doesn't use the cache.</summary>
 public static long InsertNoCache(DefLink defLink)
 {
     return(InsertNoCache(defLink, false));
 }