Exemplo n.º 1
0
        /// <summary>
        /// Clones DojoRank object and clones child objects with cloning or replication.
        /// as the parent object.
        /// </summary>
        /// <returns> A new DojoRank object reflecting the replicated DojoRank object.</returns>
        public DojoRank Clone()
        {
            DojoRank clonedDojoRank = new DojoRank();

            clonedDojoRank.iD                        = iD;
            clonedDojoRank.isSynced                  = isSynced;
            clonedDojoRank.name                      = name;
            clonedDojoRank.promotionTimeInRank       = promotionTimeInRank;
            clonedDojoRank.promotionTimeFromLastTest = promotionTimeFromLastTest;
            clonedDojoRank.promotionRequirements     = promotionRequirements;
            clonedDojoRank.promotionFee              = promotionFee;
            clonedDojoRank.promotionResetIP          = promotionResetIP;
            clonedDojoRank.orderNum                  = orderNum;
            clonedDojoRank.description               = description;


            if (promotionRank != null)
            {
                clonedDojoRank.promotionRank = promotionRank;
            }

            if (item != null)
            {
                clonedDojoRank.item = item;
            }

            return(clonedDojoRank);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Makes a deep copy of the current DojoRank.
        /// </summary>
        /// <returns> A new DojoRank object reflecting the cloned DojoRank object.</returns>
        public DojoRank Copy()
        {
            DojoRank dojoRank = new DojoRank();

            CopyTo(dojoRank);
            return(dojoRank);
        }
Exemplo n.º 3
0
        public static DojoRank ParseFromReader(IDataReader r, int idOffset, int dataOffset)
        {
            DojoRank dojoRank = new DojoRank();

            FillFromReader(dojoRank, r, idOffset, dataOffset);
            return(dojoRank);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Fills the {0} from a OleIDataReader.
        /// </summary>
        public static void FillFromReader(DojoRank dojoRank, IDataReader r, int idOffset, int dataOffset)
        {
            dojoRank.iD            = r.GetInt32(idOffset);
            dojoRank.isSynced      = true;
            dojoRank.isPlaceHolder = false;

            dojoRank.name = r.GetString(0 + dataOffset);
            dojoRank.promotionTimeInRank       = TimeSpan.FromTicks((long)r.GetDouble(1 + dataOffset));
            dojoRank.promotionTimeFromLastTest = TimeSpan.FromTicks((long)r.GetDouble(2 + dataOffset));
            if (!r.IsDBNull(3 + dataOffset))
            {
                dojoRank.promotionRequirements = r.GetString(3 + dataOffset);
            }
            else
            {
                dojoRank.promotionRequirements = null;
            }
            if (!r.IsDBNull(4 + dataOffset))
            {
                dojoRank.promotionFee = r.GetDecimal(4 + dataOffset);
            }
            if (!r.IsDBNull(5 + dataOffset) && r.GetInt32(5 + dataOffset) > 0)
            {
                dojoRank.promotionRank = DojoRank.NewPlaceHolder(r.GetInt32(5 + dataOffset));
            }
            dojoRank.promotionResetIP = r.GetBoolean(6 + dataOffset);
            dojoRank.orderNum         = r.GetInt32(7 + dataOffset);
            dojoRank.description      = r.GetString(8 + dataOffset);
            if (!r.IsDBNull(9 + dataOffset) && r.GetInt32(9 + dataOffset) > 0)
            {
                dojoRank.item = RHItem.NewPlaceHolder(r.GetInt32(9 + dataOffset));
            }
        }
Exemplo n.º 5
0
        internal static int _update(DojoRank dojoRank)
        {
            Database  database;
            DbCommand dbCommand;

            database = DatabaseFactory.CreateDatabase();

            dbCommand = database.GetSqlStringCommand("UPDATE kitTessen_Ranks SET Name=@Name," +
                                                     "PromotionTimeInRank=@PromotionTimeInRank," +
                                                     "PromotionTimeFromLastTest=@PromotionTimeFromLastTest," +
                                                     "PromotionRequirements=@PromotionRequirements," +
                                                     "PromotionFee=@PromotionFee," +
                                                     "PromotionRankID=@PromotionRankID," +
                                                     "PromotionResetIP=@PromotionResetIP," +
                                                     "OrderNum=@OrderNum," +
                                                     "Description=@Description," +
                                                     "ItemID=@ItemID WHERE DojoRankID=@DojoRankID;");

            fillParameters(database, dbCommand, dojoRank);
            database.AddInParameter(dbCommand, "DojoRankID", DbType.Int32, dojoRank.iD);
            // Abandon remaining updates if no rows have been updated by returning false immediately.
            if (database.ExecuteNonQuery(dbCommand) == 0)
            {
                return(-1);
            }

            // Store dojoRank in cache.
            if (cacheEnabled)
            {
                cacheStore(dojoRank);
            }

            return(dojoRank.iD);
        }
Exemplo n.º 6
0
        /// <summary>
        /// Makes a deep copy of the current DojoRank.
        /// </summary>
        /// <returns> A new DojoRank object reflecting the cloned DojoRank object.</returns>
        /// <param name="isolation">Placeholders are used to isolate the DojoRank from its children.</param>
        public DojoRank Copy(bool isolation)
        {
            DojoRank dojoRank = new DojoRank();

            CopyTo(dojoRank, isolation);
            return(dojoRank);
        }
Exemplo n.º 7
0
        /// <summary>
        /// Duplicates DojoRank object into a database; may or may not be the same database
        /// as the parent object.
        /// </summary>
        /// <returns> A new DojoRank object reflecting the replicated DojoRank object.</returns>
        public DojoRank Duplicate()
        {
            DojoRank clonedDojoRank = this.Clone();

            // Insert must be called after children are replicated!
            clonedDojoRank.iD       = DojoRankManager._insert(clonedDojoRank);
            clonedDojoRank.isSynced = true;
            return(clonedDojoRank);
        }
Exemplo n.º 8
0
        public static DojoRank NewPlaceHolder(int iD)
        {
            DojoRank dojoRank = new DojoRank();

            dojoRank.iD            = iD;
            dojoRank.isPlaceHolder = true;
            dojoRank.isSynced      = true;
            return(dojoRank);
        }
Exemplo n.º 9
0
        public void Remove(DojoRank value)
        {
            OnCollectionChanged(EventArgs.Empty);
            int index = IndexOf(value);

            if (index == -1)
            {
                throw(new Exception("DojoRank not found in collection."));
            }
            RemoveAt(index);
        }
Exemplo n.º 10
0
 public void Add(DojoRank dojoRank, TimeSpan slidingExpiration)
 {
     lock (this)
     {
         count++;
         ensureArrays();
         dojoRankArray[count - 1]       = dojoRank;
         timeStamps[count - 1]          = DateTime.Now;
         absoluteExpirations[count - 1] = DateTime.Now.Add(slidingExpiration); // Never Expires
         slidingExpirations[count - 1]  = slidingExpiration;                   // Never slides
         quickSort(0, count - 1);
     }
 }
Exemplo n.º 11
0
 public int IndexOf(DojoRank value)
 {
     lock (this)
     {
         for (int x = 0; x < count; x++)
         {
             if (DojoRankArray[x].Equals(value))
             {
                 return(x);
             }
         }
         return(-1);
     }
 }
Exemplo n.º 12
0
        internal static bool _fill(DojoRank dojoRank)
        {
            // Clone item from cache.
            if (cacheEnabled)
            {
                object cachedObject = cacheFind(dojoRank.iD);
                if (cachedObject != null)
                {
                    ((DojoRank)cachedObject).CopyTo(dojoRank, true);
                    return(dojoRank.isSynced);
                }
            }

            StringBuilder query;
            Database      database;
            DbCommand     dbCommand;

            query = new StringBuilder("SELECT ");
            query.Append(string.Join(",", InnerJoinFields));
            query.Append(" FROM kitTessen_Ranks WHERE DojoRankID=");
            query.Append(dojoRank.iD);
            query.Append(";");

            database  = DatabaseFactory.CreateDatabase();
            dbCommand = database.GetSqlStringCommand(query.ToString());
            IDataReader r = database.ExecuteReader(dbCommand);

            if (!r.Read())
            {
                throw(new Exception(string.Format("Cannot find DojoRankID '{0}'.",
                                                  dojoRank.iD)));
            }

            FillFromReader(dojoRank, r, 0, 1);

            // Microsoft DAAB still needs to have the reader closed.
            r.Close();

            // Store dojoRank in cache.
            if (cacheEnabled)
            {
                cacheStore(dojoRank);
            }

            return(true);
        }
Exemplo n.º 13
0
 public int Add(DojoRank value)
 {
     OnCollectionChanged(EventArgs.Empty);
     lock (this)
     {
         count++;
         // Resize the array if the count is greater than the length
         // of the array.
         if (count > DojoRankArray.GetUpperBound(0) + 1)
         {
             DojoRank[] tempDojoRankArray = new DojoRank[count * 2];
             Array.Copy(DojoRankArray, tempDojoRankArray, count - 1);
             DojoRankArray = tempDojoRankArray;
         }
         DojoRankArray[count - 1] = value;
     }
     return(count - 1);
 }
Exemplo n.º 14
0
 /// <summary>
 /// Ensures that the index and object array are sized correctly
 /// for additions. This method should be protected by locks
 /// issued by calling methods.
 /// </summary>
 private void ensureArrays()
 {
     if (count > dojoRankArray.GetUpperBound(0) + 1)
     {
         DojoRank[] tempDojoRankArray       = new DojoRank[count * 2];
         DateTime[] tempTimeStamps          = new DateTime[count * 2];
         DateTime[] tempAbsoluteExpirations = new DateTime[count * 2];
         TimeSpan[] tempSlidingExpirations  = new TimeSpan[count * 2];
         Array.Copy(dojoRankArray, tempDojoRankArray, count - 1);
         Array.Copy(timeStamps, tempTimeStamps, count - 1);
         Array.Copy(absoluteExpirations, tempAbsoluteExpirations, count - 1);
         Array.Copy(slidingExpirations, tempSlidingExpirations, count - 1);
         dojoRankArray       = tempDojoRankArray;
         timeStamps          = tempTimeStamps;
         absoluteExpirations = tempAbsoluteExpirations;
         slidingExpirations  = tempSlidingExpirations;
     }
 }
Exemplo n.º 15
0
 public void Insert(int index, DojoRank value)
 {
     OnCollectionChanged(EventArgs.Empty);
     lock (this)
     {
         count++;
         // Resize the array if the count is greater than the length
         // of the array.
         if (count > DojoRankArray.GetUpperBound(0) + 1)
         {
             DojoRank[] tempDojoRankArray = new DojoRank[count * 2];
             Array.Copy(DojoRankArray, tempDojoRankArray, count - 1);
             DojoRankArray = tempDojoRankArray;
         }
         for (int x = index + 1; x == count - 2; x++)
         {
             DojoRankArray[x] = DojoRankArray[x - 1];
         }
         DojoRankArray[index] = value;
     }
 }
Exemplo n.º 16
0
 public void CheckedAdd(DojoRank dojoRank, TimeSpan slidingExpiration)
 {
     lock (this)
     {
         int i = binarySearch(dojoRank.iD);
         if (i != -1)
         {
             dojoRankArray[i]       = dojoRank;
             absoluteExpirations[i] = DateTime.Now.Add(slidingExpiration);  // Expires
             slidingExpirations[i]  = slidingExpiration;                    // Never slides
             return;
         }
         count++;
         ensureArrays();
         dojoRankArray[count - 1]       = dojoRank;
         timeStamps[count - 1]          = DateTime.Now;
         absoluteExpirations[count - 1] = DateTime.Now.Add(slidingExpiration); // Expires
         slidingExpirations[count - 1]  = slidingExpiration;                   // Never slides
         quickSort(0, count - 1);
     }
 }
Exemplo n.º 17
0
        private static void fillParameters(Database database, DbCommand dbCommand, DojoRank dojoRank)
        {
            #region Default

            addParameter(database, dbCommand, "@Name", DbType.String, dojoRank.name);
            addParameter(database, dbCommand, "@PromotionTimeInRank", DbType.Double, dojoRank.promotionTimeInRank.Ticks);
            addParameter(database, dbCommand, "@PromotionTimeFromLastTest", DbType.Double, dojoRank.promotionTimeFromLastTest.Ticks);
            addParameter(database, dbCommand, "@PromotionRequirements", DbType.String, dojoRank.promotionRequirements);
            addParameter(database, dbCommand, "@PromotionFee", DbType.Currency, dojoRank.promotionFee);
            if (dojoRank.promotionRank == null)
            {
                addParameter(database, dbCommand, "@PromotionRankID", DbType.Int32, DBNull.Value);
            }
            else
            {
                addParameter(database, dbCommand, "@PromotionRankID", DbType.Int32, dojoRank.promotionRank.ID);
            }
            addParameter(database, dbCommand, "@PromotionResetIP", DbType.Boolean, dojoRank.promotionResetIP);
            addParameter(database, dbCommand, "@OrderNum", DbType.Int32, dojoRank.orderNum);
            addParameter(database, dbCommand, "@Description", DbType.String, dojoRank.description);

            #endregion

            #region Rappahanock

            if (dojoRank.item == null)
            {
                addParameter(database, dbCommand, "@ItemID", DbType.Int32, DBNull.Value);
            }
            else
            {
                addParameter(database, dbCommand, "@ItemID", DbType.Int32, dojoRank.item.ID);
            }

            #endregion
        }
Exemplo n.º 18
0
 /// <summary>
 /// Deep copies the current DojoRank to another instance of DojoRank.
 /// </summary>
 /// <param name="DojoRank">The DojoRank to copy to.</param>
 /// <param name="isolation">Placeholders are used to isolate the DojoRank from its children.</param>
 public void CopyTo(DojoRank dojoRank, bool isolation)
 {
     dojoRank.iD                        = iD;
     dojoRank.isPlaceHolder             = isPlaceHolder;
     dojoRank.isSynced                  = isSynced;
     dojoRank.name                      = name;
     dojoRank.promotionTimeInRank       = promotionTimeInRank;
     dojoRank.promotionTimeFromLastTest = promotionTimeFromLastTest;
     dojoRank.promotionRequirements     = promotionRequirements;
     dojoRank.promotionFee              = promotionFee;
     if (promotionRank != null)
     {
         if (isolation)
         {
             dojoRank.promotionRank = promotionRank.NewPlaceHolder();
         }
         else
         {
             dojoRank.promotionRank = promotionRank.Copy(false);
         }
     }
     dojoRank.promotionResetIP = promotionResetIP;
     dojoRank.orderNum         = orderNum;
     dojoRank.description      = description;
     if (item != null)
     {
         if (isolation)
         {
             dojoRank.item = item.NewPlaceHolder();
         }
         else
         {
             dojoRank.item = item.Copy(false);
         }
     }
 }
Exemplo n.º 19
0
 public bool Contains(DojoRank value)
 {
     return(IndexOf(value) != -1);
 }
Exemplo n.º 20
0
        public DojoRankCollection GetCollection(int topCount, string whereClause, string sortClause, params DojoRankFlags[] optionFlags)
        {
            StringBuilder      query;
            Database           database;
            DbCommand          dbCommand;
            IDataReader        r;
            DojoRankCollection dojoRankCollection;

            int innerJoinOffset;

            query = new StringBuilder("SELECT ");

            if (topCount > 0)
            {
                query.Append("TOP ");
                query.Append(topCount);
                query.Append(" ");
            }

            foreach (string columnName in InnerJoinFields)
            {
                query.Append("DojoRank.");
                query.Append(columnName);
                query.Append(",");
            }

            innerJoinOffset = InnerJoinFields.GetUpperBound(0) + 1;
            int promotionRankOffset = -1;
            int promotionRankPromotionRankOffset = -1;
            int promotionRankItemOffset          = -1;
            int itemOffset                   = -1;
            int itemParentItemOffset         = -1;
            int itemPurchaseVendorOffset     = -1;
            int itemPurchaseAccountOffset    = -1;
            int itemInventoryAccountOffset   = -1;
            int itemTaxOffset                = -1;
            int itemSalesIncomeAccountOffset = -1;

            //
            // Append Option Flag Fields
            //
            if (optionFlags != null)
            {
                for (int x = 0; x < optionFlags.Length; x++)
                {
                    switch (optionFlags[x])
                    {
                    case DojoRankFlags.PromotionRank:
                        for (int i = 0; i <= DojoRankManager.InnerJoinFields.GetUpperBound(0); i++)
                        {
                            query.Append("PromotionRank.");
                            query.Append(DojoRankManager.InnerJoinFields[i]);
                            query.Append(",");
                        }
                        promotionRankOffset = innerJoinOffset;
                        innerJoinOffset     = promotionRankOffset + DojoRankManager.InnerJoinFields.GetUpperBound(0) + 1;
                        break;

                    case DojoRankFlags.PromotionRankPromotionRank:
                        for (int i = 0; i <= DojoRankManager.InnerJoinFields.GetUpperBound(0); i++)
                        {
                            query.Append("PromotionRank_PromotionRank.");
                            query.Append(DojoRankManager.InnerJoinFields[i]);
                            query.Append(",");
                        }
                        promotionRankPromotionRankOffset = innerJoinOffset;
                        innerJoinOffset = promotionRankPromotionRankOffset + DojoRankManager.InnerJoinFields.GetUpperBound(0) + 1;
                        break;

                    case DojoRankFlags.PromotionRankItem:
                        for (int i = 0; i <= RHItemManager.InnerJoinFields.GetUpperBound(0); i++)
                        {
                            query.Append("PromotionRank_Item.");
                            query.Append(RHItemManager.InnerJoinFields[i]);
                            query.Append(",");
                        }
                        promotionRankItemOffset = innerJoinOffset;
                        innerJoinOffset         = promotionRankItemOffset + RHItemManager.InnerJoinFields.GetUpperBound(0) + 1;
                        break;

                    case DojoRankFlags.Item:
                        for (int i = 0; i <= RHItemManager.InnerJoinFields.GetUpperBound(0); i++)
                        {
                            query.Append("Item.");
                            query.Append(RHItemManager.InnerJoinFields[i]);
                            query.Append(",");
                        }
                        itemOffset      = innerJoinOffset;
                        innerJoinOffset = itemOffset + RHItemManager.InnerJoinFields.GetUpperBound(0) + 1;
                        break;

                    case DojoRankFlags.ItemParentItem:
                        for (int i = 0; i <= RHItemManager.InnerJoinFields.GetUpperBound(0); i++)
                        {
                            query.Append("Item_ParentItem.");
                            query.Append(RHItemManager.InnerJoinFields[i]);
                            query.Append(",");
                        }
                        itemParentItemOffset = innerJoinOffset;
                        innerJoinOffset      = itemParentItemOffset + RHItemManager.InnerJoinFields.GetUpperBound(0) + 1;
                        break;

                    case DojoRankFlags.ItemPurchaseVendor:
                        for (int i = 0; i <= RHVendorManager.InnerJoinFields.GetUpperBound(0); i++)
                        {
                            query.Append("Item_PurchaseVendor.");
                            query.Append(RHVendorManager.InnerJoinFields[i]);
                            query.Append(",");
                        }
                        itemPurchaseVendorOffset = innerJoinOffset;
                        innerJoinOffset          = itemPurchaseVendorOffset + RHVendorManager.InnerJoinFields.GetUpperBound(0) + 1;
                        break;

                    case DojoRankFlags.ItemPurchaseAccount:
                        for (int i = 0; i <= RHAccountManager.InnerJoinFields.GetUpperBound(0); i++)
                        {
                            query.Append("Item_PurchaseAccount.");
                            query.Append(RHAccountManager.InnerJoinFields[i]);
                            query.Append(",");
                        }
                        itemPurchaseAccountOffset = innerJoinOffset;
                        innerJoinOffset           = itemPurchaseAccountOffset + RHAccountManager.InnerJoinFields.GetUpperBound(0) + 1;
                        break;

                    case DojoRankFlags.ItemInventoryAccount:
                        for (int i = 0; i <= RHAccountManager.InnerJoinFields.GetUpperBound(0); i++)
                        {
                            query.Append("Item_InventoryAccount.");
                            query.Append(RHAccountManager.InnerJoinFields[i]);
                            query.Append(",");
                        }
                        itemInventoryAccountOffset = innerJoinOffset;
                        innerJoinOffset            = itemInventoryAccountOffset + RHAccountManager.InnerJoinFields.GetUpperBound(0) + 1;
                        break;

                    case DojoRankFlags.ItemTax:
                        for (int i = 0; i <= RHTaxTypeManager.InnerJoinFields.GetUpperBound(0); i++)
                        {
                            query.Append("Item_Tax.");
                            query.Append(RHTaxTypeManager.InnerJoinFields[i]);
                            query.Append(",");
                        }
                        itemTaxOffset   = innerJoinOffset;
                        innerJoinOffset = itemTaxOffset + RHTaxTypeManager.InnerJoinFields.GetUpperBound(0) + 1;
                        break;

                    case DojoRankFlags.ItemSalesIncomeAccount:
                        for (int i = 0; i <= RHAccountManager.InnerJoinFields.GetUpperBound(0); i++)
                        {
                            query.Append("Item_SalesIncomeAccount.");
                            query.Append(RHAccountManager.InnerJoinFields[i]);
                            query.Append(",");
                        }
                        itemSalesIncomeAccountOffset = innerJoinOffset;
                        innerJoinOffset = itemSalesIncomeAccountOffset + RHAccountManager.InnerJoinFields.GetUpperBound(0) + 1;
                        break;
                    }
                }
            }

            //
            // Remove trailing comma
            //
            query.Length--;
            if (optionFlags != null)
            {
                query.Append(" FROM ");

                //
                // Start INNER JOIN expressions
                //
                for (int x = 0; x < optionFlags.Length; x++)
                {
                    query.Append("(");
                }

                query.Append("kitTessen_Ranks AS DojoRank");
            }
            else
            {
                query.Append(" FROM kitTessen_Ranks AS DojoRank");
            }
            //
            // Finish INNER JOIN expressions
            //
            if (optionFlags != null)
            {
                for (int x = 0; x < optionFlags.Length; x++)
                {
                    switch (optionFlags[x])
                    {
                    case DojoRankFlags.PromotionRank:
                        query.Append(" LEFT JOIN kitTessen_Ranks AS PromotionRank ON DojoRank.PromotionRankID = PromotionRank.DojoRankID)");
                        break;

                    case DojoRankFlags.PromotionRankPromotionRank:
                        query.Append(" LEFT JOIN kitTessen_Ranks AS PromotionRank_PromotionRank ON PromotionRank.PromotionRankID = PromotionRank_PromotionRank.DojoRankID)");
                        break;

                    case DojoRankFlags.PromotionRankItem:
                        query.Append(" LEFT JOIN RH_Items AS PromotionRank_Item ON PromotionRank.ItemID = PromotionRank_Item.RHItemID)");
                        break;

                    case DojoRankFlags.Item:
                        query.Append(" LEFT JOIN RH_Items AS Item ON DojoRank.ItemID = Item.RHItemID)");
                        break;

                    case DojoRankFlags.ItemParentItem:
                        query.Append(" LEFT JOIN RH_Items AS Item_ParentItem ON Item.ParentItemID = Item_ParentItem.RHItemID)");
                        break;

                    case DojoRankFlags.ItemPurchaseVendor:
                        query.Append(" LEFT JOIN RH_Vendors AS Item_PurchaseVendor ON Item.PurchaseVendorID = Item_PurchaseVendor.RHVendorID)");
                        break;

                    case DojoRankFlags.ItemPurchaseAccount:
                        query.Append(" LEFT JOIN RH_Accounts AS Item_PurchaseAccount ON Item.PurchaseAccountID = Item_PurchaseAccount.RHAccountID)");
                        break;

                    case DojoRankFlags.ItemInventoryAccount:
                        query.Append(" LEFT JOIN RH_Accounts AS Item_InventoryAccount ON Item.InventoryAccountID = Item_InventoryAccount.RHAccountID)");
                        break;

                    case DojoRankFlags.ItemTax:
                        query.Append(" LEFT JOIN RH_TaxTypes AS Item_Tax ON Item.TaxID = Item_Tax.RHTaxTypeID)");
                        break;

                    case DojoRankFlags.ItemSalesIncomeAccount:
                        query.Append(" LEFT JOIN RH_Accounts AS Item_SalesIncomeAccount ON Item.SalesIncomeAccountID = Item_SalesIncomeAccount.RHAccountID)");
                        break;
                    }
                }
            }

            //
            // Render where clause
            //
            if (whereClause != string.Empty)
            {
                query.Append(" WHERE ");
                query.Append(whereClause);
            }

            //
            // Render sort clause
            //
            if (sortClause != string.Empty)
            {
                query.Append(" ORDER BY ");
                query.Append(sortClause);
            }

            //
            // Render final semicolon
            //
            query.Append(";");
            database  = DatabaseFactory.CreateDatabase();
            dbCommand = database.GetSqlStringCommand(query.ToString());
                        #if DEBUG
            try
            {
                r = database.ExecuteReader(dbCommand);
            }
            catch (Exception e)
            {
                string msg = e.Message;
                throw(new Exception(msg + " --- Query: " + query.ToString()));
            }
                        #else
            r = database.ExecuteReader(dbCommand);
                        #endif

            dojoRankCollection = new DojoRankCollection();

            while (r.Read())
            {
                DojoRank dojoRank = ParseFromReader(r, 0, 1);

                // Fill PromotionRank
                if (promotionRankOffset != -1 && !r.IsDBNull(promotionRankOffset))
                {
                    DojoRankManager.FillFromReader(dojoRank.promotionRank, r, promotionRankOffset, promotionRankOffset + 1);

                    // Fill
                    if (promotionRankPromotionRankOffset != -1 && !r.IsDBNull(promotionRankPromotionRankOffset))
                    {
                        DojoRankManager.FillFromReader(dojoRank.promotionRank.PromotionRank, r, promotionRankPromotionRankOffset, promotionRankPromotionRankOffset + 1);
                    }

                    // Fill
                    if (promotionRankItemOffset != -1 && !r.IsDBNull(promotionRankItemOffset))
                    {
                        RHItemManager.FillFromReader(dojoRank.promotionRank.Item, r, promotionRankItemOffset, promotionRankItemOffset + 1);
                    }
                }

                // Fill Item
                if (itemOffset != -1 && !r.IsDBNull(itemOffset))
                {
                    RHItemManager.FillFromReader(dojoRank.item, r, itemOffset, itemOffset + 1);

                    // Fill
                    if (itemParentItemOffset != -1 && !r.IsDBNull(itemParentItemOffset))
                    {
                        RHItemManager.FillFromReader(dojoRank.item.ParentItem, r, itemParentItemOffset, itemParentItemOffset + 1);
                    }

                    // Fill Vendor
                    if (itemPurchaseVendorOffset != -1 && !r.IsDBNull(itemPurchaseVendorOffset))
                    {
                        RHVendorManager.FillFromReader(dojoRank.item.PurchaseVendor, r, itemPurchaseVendorOffset, itemPurchaseVendorOffset + 1);
                    }

                    // Fill Purchase Account
                    if (itemPurchaseAccountOffset != -1 && !r.IsDBNull(itemPurchaseAccountOffset))
                    {
                        RHAccountManager.FillFromReader(dojoRank.item.PurchaseAccount, r, itemPurchaseAccountOffset, itemPurchaseAccountOffset + 1);
                    }

                    // Fill Asset Account
                    if (itemInventoryAccountOffset != -1 && !r.IsDBNull(itemInventoryAccountOffset))
                    {
                        RHAccountManager.FillFromReader(dojoRank.item.InventoryAccount, r, itemInventoryAccountOffset, itemInventoryAccountOffset + 1);
                    }

                    // Fill
                    if (itemTaxOffset != -1 && !r.IsDBNull(itemTaxOffset))
                    {
                        RHTaxTypeManager.FillFromReader(dojoRank.item.Tax, r, itemTaxOffset, itemTaxOffset + 1);
                    }

                    // Fill
                    if (itemSalesIncomeAccountOffset != -1 && !r.IsDBNull(itemSalesIncomeAccountOffset))
                    {
                        RHAccountManager.FillFromReader(dojoRank.item.SalesIncomeAccount, r, itemSalesIncomeAccountOffset, itemSalesIncomeAccountOffset + 1);
                    }
                }

                dojoRankCollection.Add(dojoRank);
            }

            // Microsoft DAAB still needs to close readers.
            r.Close();

            return(dojoRankCollection);
        }
Exemplo n.º 21
0
 /// <summary>
 /// Compares the object's ID to another object's ID.
 /// </summary>
 public int CompareTo(DojoRank dojoRank)
 {
     return(this.iD - dojoRank.iD);
 }
Exemplo n.º 22
0
        /// <summary>
        /// Compares the object's ID to another object's ID.
        /// </summary>
        int IComparable.CompareTo(object obj)
        {
            DojoRank dojoRank = (DojoRank)obj;

            return(this.iD - dojoRank.iD);
        }
Exemplo n.º 23
0
        private static void cacheStore(DojoRank dojoRank)
        {
            CacheManager cache = CacheFactory.GetCacheManager();

            cache.Add("kitTessen_Ranks_" + dojoRank.iD.ToString(), dojoRank);
        }
Exemplo n.º 24
0
 /// <summary>
 /// Deep copies the current DojoRank to another instance of DojoRank.
 /// This method does not provide isolated copies; use overriden method for this feature.
 /// </summary>
 /// <param name="DojoRank">The DojoRank to copy to.</param>
 public void CopyTo(DojoRank dojoRank)
 {
     CopyTo(dojoRank, false);
 }
Exemplo n.º 25
0
        /// <summary>
        /// Inserts a DojoRank into the database. All children should have been
        /// saved to the database before insertion. New children will not be
        /// related to this object in the database.
        /// </summary>
        /// <param name="_DojoRank">The DojoRank to insert into the database.</param>
        internal static int _insert(DojoRank dojoRank)
        {
            int       id;
            string    query;
            Database  database;
            DbCommand dbCommand;

            database = DatabaseFactory.CreateDatabase();

            query = "INSERT INTO kitTessen_Ranks " +
                    "(" +
                    "Name," +
                    "PromotionTimeInRank," +
                    "PromotionTimeFromLastTest," +
                    "PromotionRequirements," +
                    "PromotionFee," +
                    "PromotionRankID," +
                    "PromotionResetIP," +
                    "OrderNum," +
                    "Description," +
                    "ItemID) VALUES (" +
                    "@Name," +
                    "@PromotionTimeInRank," +
                    "@PromotionTimeFromLastTest," +
                    "@PromotionRequirements," +
                    "@PromotionFee," +
                    "@PromotionRankID," +
                    "@PromotionResetIP," +
                    "@OrderNum," +
                    "@Description," +
                    "@ItemID);";

            if (database.ConnectionStringWithoutCredentials.StartsWith("provider=microsoft.jet.oledb.4.0"))
            {
                // Microsoft Access
                // Connection must remain open for IDENTITY to return correct value,
                // therefore use the dbCommand object's Connection directly to control
                // connection state.
                dbCommand = database.GetSqlStringCommand(query);
                fillParameters(database, dbCommand, dojoRank);
                dbCommand.Connection = database.CreateConnection();
                dbCommand.Connection.Open();
                dbCommand.ExecuteNonQuery();
                dbCommand.CommandText = "SELECT @@IDENTITY AS LastID";
                id = (int)dbCommand.ExecuteScalar();
                dbCommand.Connection.Close();
            }
            else
            {
                //// Microsoft SQL Server
                dbCommand = database.GetSqlStringCommand(query + " SELECT @LastID = SCOPE_IDENTITY();");
                fillParameters(database, dbCommand, dojoRank);
                database.AddOutParameter(dbCommand, "@LastID", DbType.Int32, 10);
                database.ExecuteNonQuery(dbCommand);
                id = (int)dbCommand.Parameters["@LastID"].Value;
            }
            // Store dojoRank in cache.
            if (cacheEnabled)
            {
                cacheStore(dojoRank);
            }
            return(id);
        }