protected static string BuildProductSubjectQuerySearch(SubjectListQuery query)
        {
            int           num2;
            StringBuilder builder = new StringBuilder();

            builder.AppendFormat(" SaleStatus = {0}", 1);
            builder.AppendFormat(" AND DistributorUserId={0}", HiContext.Current.SiteSettings.UserId);
            if (query.ProductType != SubjectType.All)
            {
                builder.AppendFormat(" AND ProductId IN(SELECT ProductId FROM distro_SubjectProducts WHERE SubjectType = {0} AND DistributorUserId={1})", (int)query.ProductType, HiContext.Current.SiteSettings.UserId);
            }
            if (!string.IsNullOrEmpty(query.CategoryIds))
            {
                string[]     strArray = query.CategoryIds.Split(new char[] { ',' });
                int          result   = 0;
                bool         flag     = false;
                CategoryInfo category = null;
                builder.AppendFormat(" AND (", new object[0]);
                for (num2 = 0; num2 < strArray.Length; num2++)
                {
                    result = 0;
                    int.TryParse(strArray[num2], out result);
                    category = CategoryBrowser.GetCategory(result);
                    if (category != null)
                    {
                        if (flag)
                        {
                            builder.Append(" OR ");
                        }
                        builder.AppendFormat(" ( MainCategoryPath LIKE '{0}|%' OR ExtendCategoryPath LIKE '{0}|%') ", category.Path);
                        flag = true;
                    }
                }
                if (!flag)
                {
                    builder.Append("1=1");
                }
                builder.Append(")");
            }
            if (query.MinPrice.HasValue)
            {
                builder.AppendFormat(" AND SalePrice >= {0}", query.MinPrice.Value);
            }
            if (query.MaxPrice.HasValue)
            {
                builder.AppendFormat(" AND SalePrice <= {0}", query.MaxPrice.Value);
            }
            if (!string.IsNullOrEmpty(query.Keywords) && (query.Keywords.Trim().Length > 0))
            {
                query.Keywords = DataHelper.CleanSearchString(query.Keywords);
                string[] strArray2 = Regex.Split(query.Keywords.Trim(), @"\s+");
                builder.AppendFormat(" AND (ProductName LIKE '%{0}%'", DataHelper.CleanSearchString(strArray2[0]));
                for (num2 = 1; (num2 < strArray2.Length) && (num2 <= 5); num2++)
                {
                    builder.AppendFormat(" OR ProductName LIKE '%{0}%'", DataHelper.CleanSearchString(strArray2[num2]));
                }
                builder.Append(")");
            }
            return(builder.ToString());
        }
示例#2
0
        public static IList <CategoryInfo> GetMainCategories()
        {
            IList <CategoryInfo> list       = new List <CategoryInfo>();
            DataTable            categories = CategoryBrowser.GetCategories();

            DataRow[] array = categories.Select("Depth = 1");
            for (int i = 0; i < array.Length; i++)
            {
                list.Add(DataMapper.ConvertDataRowToProductCategory(array[i]));
            }
            return(list);
        }
示例#3
0
        public static IList <CategoryInfo> GetSequenceCategories()
        {
            IList <CategoryInfo> list           = new List <CategoryInfo>();
            IList <CategoryInfo> mainCategories = CategoryBrowser.GetMainCategories();

            foreach (CategoryInfo current in mainCategories)
            {
                list.Add(current);
                CategoryBrowser.LoadSubCategorys(current.CategoryId, list);
            }
            return(list);
        }
示例#4
0
        public static IList <CategoryInfo> GetSubCategories(int parentCategoryId)
        {
            IList <CategoryInfo> list  = new List <CategoryInfo>();
            string    filterExpression = "ParentCategoryId = " + parentCategoryId.ToString(CultureInfo.InvariantCulture);
            DataTable categories       = CategoryBrowser.GetCategories();

            DataRow[] array = categories.Select(filterExpression);
            for (int i = 0; i < array.Length; i++)
            {
                list.Add(DataMapper.ConvertDataRowToProductCategory(array[i]));
            }
            return(list);
        }
示例#5
0
        private static void LoadSubCategorys(int parentCategoryId, IList <CategoryInfo> categories)
        {
            IList <CategoryInfo> subCategories = CategoryBrowser.GetSubCategories(parentCategoryId);

            if (subCategories != null && subCategories.Count > 0)
            {
                foreach (CategoryInfo current in subCategories)
                {
                    categories.Add(current);
                    CategoryBrowser.LoadSubCategorys(current.CategoryId, categories);
                }
            }
        }
示例#6
0
        public static IList <CategoryInfo> GetMaxMainCategories(int maxNum = 1000)
        {
            IList <CategoryInfo> list       = new List <CategoryInfo>();
            DataTable            categories = CategoryBrowser.GetCategories();

            DataRow[] array = categories.Select("Depth = 1");
            int       num   = 0;

            while (num < maxNum && num < array.Length)
            {
                list.Add(DataMapper.ConvertDataRowToProductCategory(array[num]));
                num++;
            }
            return(list);
        }
示例#7
0
        protected static string BuildUnSaleProductBrowseQuerySearch(ProductBrowseQuery query)
        {
            StringBuilder builder = new StringBuilder();

            builder.AppendFormat("SaleStatus = {0}", 2);
            if (!string.IsNullOrEmpty(query.ProductCode))
            {
                builder.AppendFormat(" AND LOWER(ProductCode) Like  '%{0}%'", DataHelper.CleanSearchString(query.ProductCode).ToLower());
            }
            if (query.AttributeValues.Count > 0)
            {
                foreach (AttributeValueInfo info in query.AttributeValues)
                {
                    builder.AppendFormat(" AND ProductId IN ( SELECT ProductId FROM Hishop_ProductAttributes WHERE AttributeId={0} And ValueId={1}) ", info.AttributeId, info.ValueId);
                }
            }
            if (query.BrandId.HasValue)
            {
                if (query.BrandId.Value == 0)
                {
                    builder.Append(" AND BrandId IS NOT NULL");
                }
                else
                {
                    builder.AppendFormat(" AND BrandId = {0}", query.BrandId.Value);
                }
            }
            if (query.MinSalePrice.HasValue)
            {
                builder.AppendFormat(" AND SalePrice >= {0}", query.MinSalePrice.Value);
            }
            if (query.MaxSalePrice.HasValue)
            {
                builder.AppendFormat(" AND SalePrice <= {0}", query.MaxSalePrice.Value);
            }
            if (!string.IsNullOrEmpty(query.Keywords) && (query.Keywords.Trim().Length > 0))
            {
                if (!query.IsPrecise)
                {
                    query.Keywords = DataHelper.CleanSearchString(query.Keywords);
                    string[]      strArray = Regex.Split(query.Keywords.Trim(), @"\s+");
                    StringBuilder builder2 = new StringBuilder();
                    builder2.AppendFormat(" OR (LOWER(ProductCode) LIKE '%{0}%'", DataHelper.CleanSearchString(strArray[0]));
                    builder.AppendFormat(" AND ((ProductName LIKE '%{0}%'", DataHelper.CleanSearchString(strArray[0]));
                    for (int i = 1; (i < strArray.Length) && (i <= 4); i++)
                    {
                        builder.AppendFormat("AND ProductName LIKE '%{0}%'", DataHelper.CleanSearchString(strArray[i]));
                        builder2.AppendFormat(" AND LOWER(ProductCode)  LIKE '%{0}%'", DataHelper.CleanSearchString(strArray[i]));
                    }
                    builder.Append(")" + builder2.ToString() + "))");
                }
                else
                {
                    builder.AppendFormat(" AND ProductName = '{0}'", DataHelper.CleanSearchString(query.Keywords));
                }
            }
            if (query.CategoryId.HasValue)
            {
                CategoryInfo category = CategoryBrowser.GetCategory(query.CategoryId.Value);
                if (category != null)
                {
                    builder.AppendFormat(" AND ( MainCategoryPath LIKE '{0}|%' OR ExtendCategoryPath LIKE '{0}|%') ", category.Path);
                }
            }
            if (!string.IsNullOrEmpty(query.TagIds))
            {
                foreach (string str in query.TagIds.Split(new char[] { ',' }))
                {
                    builder.AppendFormat(" and ProductId IN (SELECT ProductId FROM Hishop_ProductTag WHERE TagId={0})", str);
                }
            }
            return(builder.ToString());
        }
示例#8
0
        protected static string BuildProductSubjectQuerySearch(SubjectListQuery query)
        {
            int           num2;
            StringBuilder builder = new StringBuilder();

            builder.AppendFormat(" SaleStatus = {0}", 1);
            if (query.TagId != 0)
            {
                builder.AppendFormat(" AND ProductId IN(SELECT ProductId FROM Hishop_ProductTag WHERE TagId = {0})", query.TagId);
            }
            if (!string.IsNullOrEmpty(query.CategoryIds))
            {
                string[]     strArray = query.CategoryIds.Split(new char[] { ',' });
                int          result   = 0;
                bool         flag     = false;
                CategoryInfo category = null;
                builder.AppendFormat(" AND (", new object[0]);
                for (num2 = 0; num2 < strArray.Length; num2++)
                {
                    result = 0;
                    int.TryParse(strArray[num2], out result);
                    category = CategoryBrowser.GetCategory(result);
                    if (category != null)
                    {
                        if (flag)
                        {
                            builder.Append(" OR ");
                        }
                        builder.AppendFormat(" ( MainCategoryPath LIKE '{0}|%' OR ExtendCategoryPath LIKE '{0}|%') ", category.Path);
                        flag = true;
                    }
                }
                if (!flag)
                {
                    builder.Append("1=1");
                }
                builder.Append(")");
            }
            if (query.BrandCategoryId.HasValue)
            {
                builder.AppendFormat(" AND BrandId = {0}", query.BrandCategoryId.Value);
            }
            if (query.ProductTypeId.HasValue)
            {
                builder.AppendFormat(" AND TypeId = {0}", query.ProductTypeId.Value);
            }
            if (query.AttributeValues.Count > 0)
            {
                foreach (AttributeValueInfo info2 in query.AttributeValues)
                {
                    builder.AppendFormat(" AND (ProductId IN ( SELECT ProductId FROM Hishop_ProductAttributes WHERE AttributeId={0} And ValueId={1})) ", info2.AttributeId, info2.ValueId);
                }
            }
            if (query.MinPrice.HasValue)
            {
                builder.AppendFormat(" AND SalePrice >= {0}", query.MinPrice.Value);
            }
            if (query.MaxPrice.HasValue)
            {
                builder.AppendFormat(" AND SalePrice <= {0}", query.MaxPrice.Value);
            }
            if (!string.IsNullOrEmpty(query.Keywords) && (query.Keywords.Trim().Length > 0))
            {
                query.Keywords = DataHelper.CleanSearchString(query.Keywords);
                string[] strArray2 = Regex.Split(query.Keywords.Trim(), @"\s+");
                builder.AppendFormat(" AND (ProductName LIKE '%{0}%'", DataHelper.CleanSearchString(strArray2[0]));
                for (num2 = 1; (num2 < strArray2.Length) && (num2 <= 5); num2++)
                {
                    builder.AppendFormat(" OR ProductName LIKE '%{0}%'", DataHelper.CleanSearchString(strArray2[num2]));
                }
                builder.Append(")");
            }
            return(builder.ToString());
        }
        protected static string BuildProductBrowseQuerySearch(ProductBrowseQuery query)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.AppendFormat("SaleStatus = {0}", 1);
            if (!string.IsNullOrEmpty(query.ProductCode))
            {
                stringBuilder.AppendFormat(" AND LOWER(ProductCode) Like  '%{0}%'", DataHelper.CleanSearchString(query.ProductCode).ToLower());
            }
            if (query.AttributeValues.Count > 0)
            {
                foreach (AttributeValueInfo current in query.AttributeValues)
                {
                    stringBuilder.AppendFormat(" AND ProductId IN ( SELECT ProductId FROM Hishop_ProductAttributes WHERE AttributeId={0} And ValueId={1}) ", current.AttributeId, current.ValueId);
                }
            }
            if (query.BrandId.HasValue)
            {
                if (query.BrandId.Value == 0)
                {
                    stringBuilder.Append(" AND BrandId IS NOT NULL");
                }
                else
                {
                    stringBuilder.AppendFormat(" AND BrandId = {0}", query.BrandId.Value);
                }
            }
            if (query.MinSalePrice.HasValue)
            {
                stringBuilder.AppendFormat(" AND SalePrice >= {0}", query.MinSalePrice.Value);
            }
            if (query.MaxSalePrice.HasValue)
            {
                stringBuilder.AppendFormat(" AND SalePrice <= {0}", query.MaxSalePrice.Value);
            }
            if (!string.IsNullOrEmpty(query.Keywords) && query.Keywords.Trim().Length > 0)
            {
                if (!query.IsPrecise)
                {
                    query.Keywords = DataHelper.CleanSearchString(query.Keywords);
                    string[]      array = Regex.Split(query.Keywords.Trim(), "\\s+");
                    List <string> list  = new List <string>();
                    list.Add(string.Format("(replace(ProductName,' ','') LIKE '%{0}%' or LOWER(ProductCode) LIKE '%{0}%')", DataHelper.CleanSearchString(array[0])));
                    int num = 1;
                    while (num < array.Length && num <= 4)
                    {
                        list.Add(string.Format("(replace(ProductName,' ','') LIKE '%{0}%' or LOWER(ProductCode) LIKE '%{0}%')", DataHelper.CleanSearchString(array[num])));
                        num++;
                    }
                    stringBuilder.Append(" and (" + string.Join(" and ", list.ToArray()) + ")");
                }
                else
                {
                    stringBuilder.AppendFormat(" AND (ProductName = '{0}' or LOWER(ProductCode)='{0}')", DataHelper.CleanSearchString(query.Keywords));
                }
            }
            if (query.CategoryId.HasValue)
            {
                CategoryInfo category = CategoryBrowser.GetCategory(query.CategoryId.Value);
                if (category != null)
                {
                    stringBuilder.AppendFormat(" AND ( MainCategoryPath LIKE '{0}|%' OR ExtendCategoryPath LIKE '{0}|%') ", category.Path);
                }
                else
                {
                    stringBuilder.Append(" and 1>2 ");
                }
            }
            if (!string.IsNullOrEmpty(query.TagIds))
            {
                string[] array2 = query.TagIds.Split(new char[]
                {
                    '_'
                });
                string[] array3 = array2;
                for (int i = 0; i < array3.Length; i++)
                {
                    string text = array3[i];
                    if (!string.IsNullOrEmpty(text))
                    {
                        stringBuilder.AppendFormat(" AND ProductId IN(SELECT ProductId FROM distro_ProductTag WHERE TagId = {0}  AND DistributorUserId={1})", text, HiContext.Current.SiteSettings.UserId);
                    }
                }
            }
            return(stringBuilder.ToString());
        }
        protected static string BuildProductSubjectQuerySearch(SubjectListQuery query)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.AppendFormat(" SaleStatus = {0}", 1);
            stringBuilder.AppendFormat(" AND DistributorUserId={0}", HiContext.Current.SiteSettings.UserId);
            if (query.TagId != 0)
            {
                stringBuilder.AppendFormat(" AND ProductId IN(SELECT ProductId FROM distro_ProductTag WHERE TagId = {0} AND DistributorUserId={1})", query.TagId, HiContext.Current.SiteSettings.UserId);
            }
            if (!string.IsNullOrEmpty(query.CategoryIds))
            {
                string[] array = query.CategoryIds.Split(new char[]
                {
                    ','
                });
                int  categoryId = 0;
                bool flag       = false;
                stringBuilder.AppendFormat(" AND (", new object[0]);
                for (int i = 0; i < array.Length; i++)
                {
                    categoryId = 0;
                    int.TryParse(array[i], out categoryId);
                    CategoryInfo category = CategoryBrowser.GetCategory(categoryId);
                    if (category != null)
                    {
                        if (flag)
                        {
                            stringBuilder.Append(" OR ");
                        }
                        stringBuilder.AppendFormat(" ( MainCategoryPath LIKE '{0}|%' OR ExtendCategoryPath LIKE '{0}|%') ", category.Path);
                        flag = true;
                    }
                }
                if (!flag)
                {
                    stringBuilder.Append("1=1");
                }
                stringBuilder.Append(")");
            }
            if (query.BrandCategoryId.HasValue)
            {
                stringBuilder.AppendFormat(" AND BrandId = {0}", query.BrandCategoryId.Value);
            }
            if (query.ProductTypeId.HasValue)
            {
                stringBuilder.AppendFormat(" AND TypeId = {0}", query.ProductTypeId.Value);
            }
            if (query.AttributeValues.Count > 0)
            {
                foreach (AttributeValueInfo current in query.AttributeValues)
                {
                    stringBuilder.AppendFormat(" AND (ProductId IN ( SELECT ProductId FROM Hishop_ProductAttributes WHERE AttributeId={0} And ValueId={1}))", current.AttributeId, current.ValueId);
                }
            }
            if (query.MinPrice.HasValue)
            {
                stringBuilder.AppendFormat(" AND SalePrice >= {0}", query.MinPrice.Value);
            }
            if (query.MaxPrice.HasValue)
            {
                stringBuilder.AppendFormat(" AND SalePrice <= {0}", query.MaxPrice.Value);
            }
            if (!string.IsNullOrEmpty(query.Keywords) && query.Keywords.Trim().Length > 0)
            {
                query.Keywords = DataHelper.CleanSearchString(query.Keywords);
                string[] array2 = Regex.Split(query.Keywords.Trim(), "\\s+");
                stringBuilder.AppendFormat(" AND (ProductName LIKE '%{0}%'", DataHelper.CleanSearchString(array2[0]));
                int i = 1;
                while (i < array2.Length && i <= 5)
                {
                    stringBuilder.AppendFormat(" OR ProductName LIKE '%{0}%'", DataHelper.CleanSearchString(array2[i]));
                    i++;
                }
                stringBuilder.Append(")");
            }
            return(stringBuilder.ToString());
        }
示例#11
0
        protected static string BuildUnSaleProductBrowseQuerySearch(ProductBrowseQuery query)
        {
            StringBuilder builder = new StringBuilder();

            builder.AppendFormat("SaleStatus = {0}", 2);
            if (!string.IsNullOrEmpty(query.ProductCode))
            {
                builder.AppendFormat(" AND LOWER(ProductCode) Like  '%{0}%'", DataHelper.CleanSearchString(query.ProductCode).ToLower());
            }
            if (query.AttributeValues.Count > 0)
            {
                foreach (AttributeValueInfo info in query.AttributeValues)
                {
                    builder.AppendFormat(" AND ProductId IN ( SELECT ProductId FROM Hishop_ProductAttributes WHERE AttributeId={0} And ValueId={1}) ", info.AttributeId, info.ValueId);
                }
            }
            if (query.BrandId.HasValue)
            {
                if (query.BrandId.Value == 0)
                {
                    builder.Append(" AND BrandId IS NOT NULL");
                }
                else
                {
                    builder.AppendFormat(" AND BrandId = {0}", query.BrandId.Value);
                }
            }
            if (query.MinSalePrice.HasValue)
            {
                builder.AppendFormat(" AND SalePrice >= {0}", query.MinSalePrice.Value);
            }
            if (query.MaxSalePrice.HasValue)
            {
                builder.AppendFormat(" AND SalePrice <= {0}", query.MaxSalePrice.Value);
            }
            if (!string.IsNullOrEmpty(query.Keywords) && (query.Keywords.Trim().Length > 0))
            {
                if (!query.IsPrecise)
                {
                    query.Keywords = DataHelper.CleanSearchString(query.Keywords);
                    string[] strArray = Regex.Split(query.Keywords.Trim(), @"\s+");
                    builder.AppendFormat(" AND ProductName LIKE '%{0}%'", DataHelper.CleanSearchString(strArray[0]));
                    for (int i = 1; (i < strArray.Length) && (i <= 4); i++)
                    {
                        builder.AppendFormat("AND ProductName LIKE '%{0}%'", DataHelper.CleanSearchString(strArray[i]));
                    }
                }
                else
                {
                    builder.AppendFormat(" AND ProductName = '{0}'", DataHelper.CleanSearchString(query.Keywords));
                }
            }
            if (query.CategoryId.HasValue)
            {
                CategoryInfo category = CategoryBrowser.GetCategory(query.CategoryId.Value);
                if (category != null)
                {
                    builder.AppendFormat(" AND ( MainCategoryPath LIKE '{0}|%' OR ExtendCategoryPath LIKE '{0}|%') ", category.Path);
                }
            }
            if (!string.IsNullOrEmpty(query.SubjectType))
            {
                builder.AppendFormat(" AND ProductId IN(SELECT ProductId FROM distro_SubjectProducts WHERE SubjectType = {0} AND DistributorUserId={1})", (int)Enum.Parse(typeof(SubjectType), query.SubjectType), HiContext.Current.SiteSettings.UserId);
            }
            return(builder.ToString());
        }