public static BannedIP Load(Int32 bannedIPId, bool useCache) { if (bannedIPId == 0) { return(null); } BannedIP bannedIP = null; string key = "BannedIP_" + bannedIPId.ToString(); if (useCache) { bannedIP = ContextCache.GetObject(key) as BannedIP; if (bannedIP != null) { return(bannedIP); } } bannedIP = new BannedIP(); if (bannedIP.Load(bannedIPId)) { if (useCache) { ContextCache.SetObject(key, bannedIP); } return(bannedIP); } return(null); }
/// <summary> /// Loads the given BannedIP object from the given database data reader. /// </summary> /// <param name="bannedIP">The BannedIP object to load.</param> /// <param name="dr">The database data reader to read data from.</param> public static void LoadDataReader(BannedIP bannedIP, IDataReader dr) { //SET FIELDS FROM ROW DATA bannedIP.BannedIPId = dr.GetInt32(0); bannedIP.StoreId = dr.GetInt32(1); bannedIP.IPRangeStart = dr.GetInt64(2); bannedIP.IPRangeEnd = dr.GetInt64(3); bannedIP.Comment = NullableData.GetString(dr, 4); bannedIP.IsDirty = false; }
public static bool Delete(Int32 bannedIPId) { BannedIP bannedIP = new BannedIP(); if (bannedIP.Load(bannedIPId)) { return(bannedIP.Delete()); } return(false); }
public static BannedIPCollection LoadForStore(int maximumRows, int startRowIndex, string sortExpression) { int storeId = Token.Instance.StoreId; //CREATE THE DYNAMIC SQL TO LOAD OBJECT StringBuilder selectQuery = new StringBuilder(); selectQuery.Append("SELECT"); if (maximumRows > 0) { selectQuery.Append(" TOP " + (startRowIndex + maximumRows).ToString()); } selectQuery.Append(" " + BannedIP.GetColumnNames(string.Empty)); selectQuery.Append(" FROM ac_BannedIPs"); selectQuery.Append(" WHERE StoreId = @storeId"); if (!string.IsNullOrEmpty(sortExpression)) { selectQuery.Append(" ORDER BY " + sortExpression); } Database database = Token.Instance.Database; DbCommand selectCommand = database.GetSqlStringCommand(selectQuery.ToString()); database.AddInParameter(selectCommand, "@storeId", System.Data.DbType.Int32, storeId); //EXECUTE THE COMMAND BannedIPCollection results = new BannedIPCollection(); int thisIndex = 0; int rowCount = 0; using (IDataReader dr = database.ExecuteReader(selectCommand)) { while (dr.Read() && ((maximumRows < 1) || (rowCount < maximumRows))) { if (thisIndex >= startRowIndex) { BannedIP bannedIP = new BannedIP(); BannedIP.LoadDataReader(bannedIP, dr); results.Add(bannedIP); rowCount++; } thisIndex++; } dr.Close(); } return(results); }
/// <summary> /// Determine if an IP address is banned from accessing the store. /// </summary> /// <param name="ip">The IP address in standdard dotted notation (x.x.x.x)</param> public static bool IsBanned(string ip) { //CONVERT IP TO NUMBER long ipNumber = BannedIP.ConvertToNumber(ip); //BUILD QUERY StringBuilder selectQuery = new StringBuilder(); selectQuery.Append("SELECT COUNT(*) AS RangeCount"); selectQuery.Append(" FROM ac_BannedIPs"); selectQuery.Append(" WHERE StoreId = @storeId"); selectQuery.Append(" AND IPRangeStart <= @ipNumber"); selectQuery.Append(" AND IPRangeEnd >= @ipNumber"); Database database = Token.Instance.Database; DbCommand selectCommand = database.GetSqlStringCommand(selectQuery.ToString()); database.AddInParameter(selectCommand, "@storeId", System.Data.DbType.Int32, Token.Instance.StoreId); database.AddInParameter(selectCommand, "@ipNumber", System.Data.DbType.Int64, ipNumber); //IP IS BANNED IF ONE OR MORE RANGES MATCHES THE NUMBER return(CommerceBuilder.Utility.AlwaysConvert.ToInt(database.ExecuteScalar(selectCommand)) > 0); }
public static SaveResult Insert(BannedIP bannedIP) { return(bannedIP.Save()); }
public static SaveResult Update(BannedIP bannedIP) { return(bannedIP.Save()); }
public static bool Delete(BannedIP bannedIP) { return(bannedIP.Delete()); }