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()); }
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); }
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); }
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); }
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); } } }
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); }
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()); }
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()); }
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()); }