public int RefreshAllCacheAllProduct(long CompanyID) { DataTable tblProduct = sqlDb.GetTblData("select Id from Product where company = @CompanyID", CommandType.Text, new System.Data.SqlClient.SqlParameter[] { SqlDb.CreateParamteterSQL("CompanyID", CompanyID, SqlDbType.BigInt) }); RedisProductIDOfCompany redisProductIDOFCompany = RedisProductIDOfCompany.Instance(); List <long> lstProduct = new List <long>(); foreach (DataRow rowProduct in tblProduct.Rows) { lstProduct.Add(Convert.ToInt64(rowProduct["Id"])); } redisProductIDOFCompany.RemoveCompanyCache(CompanyID); redisProductIDOFCompany.SetForCompany(CompanyID, lstProduct); log.Info(string.Format("Updated redis cache {0} productID of company {1} ", lstProduct.Count, CompanyID)); DataTable products = sqlDb.GetTblData(@"SELECT InStock, ID, ClassificationID, Status, Valid, Price, Name, ImageUrls, IsDeal, IsNews, DetailUrl FROM Product WHERE (Company = @CompanyID) AND IsNews = 0 ORDER BY ID", CommandType.Text, new System.Data.SqlClient.SqlParameter[] { SqlDb.CreateParamteterSQL("CompanyID", CompanyID, SqlDbType.BigInt) }); if (products != null) { for (int j = 0; j < products.Rows.Count; j++) { try { long ProductID = QT.Entities.Common.Obj2Int64(products.Rows[j]["ID"].ToString()); int InStock = QT.Entities.Common.Obj2Int(products.Rows[j]["InStock"].ToString()); bool Valid = QT.Entities.Common.Obj2Bool(products.Rows[j]["Valid"].ToString()); long Price = QT.Entities.Common.Obj2Int64(products.Rows[j]["Price"].ToString()); string Name = QT.Entities.Common.Obj2String(products.Rows[j]["Name"].ToString()); bool IsNew = QT.Entities.Common.Obj2Bool(products.Rows[j]["IsNews"]); string ImageUrl = products.Rows[j]["ImageUrls"].ToString(); bool IsDeal = QT.Entities.Common.Obj2Bool(products.Rows[j]["IsDeal"].ToString()); long CategoryID = QT.Entities.Common.Obj2Int64(products.Rows[j]["ClassificationID"].ToString()); string url = QT.Entities.Common.Obj2String(products.Rows[j]["DetailUrl"]); if (j % 1000 == 0) { log.Info(string.Format("Updated {0} product in redis for company {1}", j, CompanyID)); } } catch (Exception ex01) { log.Error(ex01); } } } return(products == null ? -1 : products.Rows.Count); }
public static RedisProductIDOfCompany Instance() { return(_objIns == null ? _objIns = new RedisProductIDOfCompany() : _objIns); }