/// <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); }
/// <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); }
public static DojoRank ParseFromReader(IDataReader r, int idOffset, int dataOffset) { DojoRank dojoRank = new DojoRank(); FillFromReader(dojoRank, r, idOffset, dataOffset); return(dojoRank); }
/// <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)); } }
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); }
/// <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); }
/// <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); }
public static DojoRank NewPlaceHolder(int iD) { DojoRank dojoRank = new DojoRank(); dojoRank.iD = iD; dojoRank.isPlaceHolder = true; dojoRank.isSynced = true; return(dojoRank); }
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); }
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); } }
public int IndexOf(DojoRank value) { lock (this) { for (int x = 0; x < count; x++) { if (DojoRankArray[x].Equals(value)) { return(x); } } return(-1); } }
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); }
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); }
/// <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; } }
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; } }
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); } }
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 }
/// <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); } } }
public bool Contains(DojoRank value) { return(IndexOf(value) != -1); }
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); }
/// <summary> /// Compares the object's ID to another object's ID. /// </summary> public int CompareTo(DojoRank dojoRank) { return(this.iD - dojoRank.iD); }
/// <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); }
private static void cacheStore(DojoRank dojoRank) { CacheManager cache = CacheFactory.GetCacheManager(); cache.Add("kitTessen_Ranks_" + dojoRank.iD.ToString(), dojoRank); }
/// <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); }
/// <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); }