Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 public static RedisProductIDOfCompany Instance()
 {
     return(_objIns == null ? _objIns = new RedisProductIDOfCompany() : _objIns);
 }