コード例 #1
0
ファイル: SubjectGoodsList.cs プロジェクト: davinx/himedi
 SubjectListQuery GetProductBrowseQuery()
 {
     SubjectListQuery query = new SubjectListQuery();
     query.SortBy = "DisplaySequence";
     query.SortOrder = SortAction.Desc;
     query.PageIndex = this.pager.PageIndex;
     query.PageSize = 20;
     XmlNode node = ProductBrowser.GetProductSubjectDocument().SelectSingleNode("root/Subject[SubjectId='" + this.subjectId + "']");
     if (node != null)
     {
         query.ProductType = (SubjectType) int.Parse(node.SelectSingleNode("Type").InnerText);
         query.CategoryIds = node.SelectSingleNode("Categories").InnerText;
         string innerText = node.SelectSingleNode("MaxPrice").InnerText;
         if (!string.IsNullOrEmpty(innerText))
         {
             int result = 0;
             if (int.TryParse(innerText, out result))
             {
                 query.MaxPrice = new decimal?(result);
             }
         }
         string str2 = node.SelectSingleNode("MinPrice").InnerText;
         if (!string.IsNullOrEmpty(str2))
         {
             int num2 = 0;
             if (int.TryParse(str2, out num2))
             {
                 query.MinPrice = new decimal?(num2);
             }
         }
         query.Keywords = node.SelectSingleNode("Keywords").InnerText;
     }
     return query;
 }
コード例 #2
0
 void BindList()
 {
     SubjectListQuery query = new SubjectListQuery();
     query.SortBy = this.OrderBy;
     if (this.Desc == 0)
     {
         query.SortOrder = SortAction.Desc;
     }
     else
     {
         query.SortOrder = SortAction.Asc;
     }
     XmlNode node = ProductBrowser.GetProductSubjectDocument().SelectSingleNode("root/Subject[SubjectId='" + this.SubjectId + "']");
     if (node != null)
     {
         query.ProductType = (SubjectType) int.Parse(node.SelectSingleNode("Type").InnerText);
         query.CategoryIds = node.SelectSingleNode("Categories").InnerText;
         string innerText = node.SelectSingleNode("MaxPrice").InnerText;
         if (!string.IsNullOrEmpty(innerText))
         {
             int result = 0;
             if (int.TryParse(innerText, out result))
             {
                 query.MaxPrice = new decimal?(result);
             }
         }
         string str2 = node.SelectSingleNode("MinPrice").InnerText;
         if (!string.IsNullOrEmpty(str2))
         {
             int num2 = 0;
             if (int.TryParse(str2, out num2))
             {
                 query.MinPrice = new decimal?(num2);
             }
         }
         query.Keywords = node.SelectSingleNode("Keywords").InnerText;
         query.MaxNum = int.Parse(node.SelectSingleNode("MaxNum").InnerText);
     }
     base.DataSource = ProductBrowser.GetSubjectList(query);
     base.DataBind();
 }
コード例 #3
0
ファイル: ProductBrowser.cs プロジェクト: davinx/himedi
 public static DbQueryResult GetSubjectProduct(SubjectListQuery query)
 {
     return ProductProvider.Instance().GetSubjectProduct(query);
 }
コード例 #4
0
ファイル: ProductBrowser.cs プロジェクト: davinx/himedi
 public static DataTable GetSubjectList(SubjectListQuery query)
 {
     return ProductProvider.Instance().GetSubjectList(query);
 }
コード例 #5
0
ファイル: ProductData.cs プロジェクト: davinx/himedi
 public override DbQueryResult GetSubjectProduct(SubjectListQuery query)
 {
     string filter = ProductMasterProvider.BuildProductSubjectQuerySearch(query);
     string selectFields = "ProductId,ProductName, ProductCode, SaleCounts, ShortDescription, ThumbnailUrl60,ThumbnailUrl100,ThumbnailUrl160, ThumbnailUrl180,ThumbnailUrl220, MarketPrice, SalePrice,Stock";
     if (HiContext.Current.User.UserRole == UserRole.Member)
     {
         Member user = HiContext.Current.User as Member;
         int memberDiscount = MemberProvider.Instance().GetMemberDiscount(user.GradeId);
         selectFields = selectFields + string.Format(",CASE WHEN (SELECT COUNT(*) FROM Hishop_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0}) = 1 ", user.GradeId) + string.Format("THEN (SELECT MemberSalePrice FROM Hishop_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0}) ELSE SalePrice*{1}/100 END AS RankPrice", user.GradeId, memberDiscount);
     }
     else
     {
         selectFields = selectFields + ",SalePrice as RankPrice";
     }
     return DataHelper.PagingByRownumber(query.PageIndex, query.PageSize, query.SortBy, query.SortOrder, query.IsCount, "vw_Hishop_BrowseProductList p", "ProductId", filter, selectFields);
 }
コード例 #6
0
ファイル: ProductData.cs プロジェクト: davinx/himedi
 public override DataTable GetSubjectList(SubjectListQuery query)
 {
     StringBuilder builder = new StringBuilder();
     if (HiContext.Current.User.UserRole == UserRole.Member)
     {
         Member user = HiContext.Current.User as Member;
         int memberDiscount = MemberProvider.Instance().GetMemberDiscount(user.GradeId);
         builder.AppendFormat("SELECT TOP {0} ProductId,ProductName,ProductCode,SaleCounts,ShortDescription,ThumbnailUrl60,ThumbnailUrl100,ThumbnailUrl160,ThumbnailUrl180,ThumbnailUrl220,MarketPrice,SalePrice,", query.MaxNum);
         builder.AppendFormat(" CASE WHEN (SELECT COUNT(*) FROM Hishop_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0}) = 1 ", user.GradeId);
         builder.AppendFormat("THEN (SELECT MemberSalePrice FROM Hishop_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0}) ELSE SalePrice*{1}/100 END AS RankPrice", user.GradeId, memberDiscount);
     }
     else
     {
         builder.AppendFormat("SELECT TOP {0} ProductId,ProductName,ProductCode,SaleCounts,ShortDescription,ThumbnailUrl60,ThumbnailUrl100,ThumbnailUrl160,ThumbnailUrl180,ThumbnailUrl220,MarketPrice,SalePrice,SalePrice AS RankPrice", query.MaxNum);
     }
     builder.Append(" FROM vw_Hishop_BrowseProductList p WHERE ");
     builder.Append(ProductMasterProvider.BuildProductSubjectQuerySearch(query));
     if (!string.IsNullOrEmpty(query.SortBy))
     {
         builder.AppendFormat(" ORDER BY {0} {1}", DataHelper.CleanSearchString(query.SortBy), DataHelper.CleanSearchString(query.SortOrder.ToString()));
     }
     DbCommand sqlStringCommand = this.database.GetSqlStringCommand(builder.ToString());
     using (IDataReader reader = this.database.ExecuteReader(sqlStringCommand))
     {
         return DataHelper.ConverDataReaderToDataTable(reader);
     }
 }
コード例 #7
0
 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();
 }
コード例 #8
0
ファイル: ProductData.cs プロジェクト: davinx/himedi
 public override DbQueryResult GetSubjectProduct(SubjectListQuery query)
 {
     int num = HiContext.Current.SiteSettings.UserId.Value;
     string filter = ProductSubsiteProvider.BuildProductSubjectQuerySearch(query) + string.Format(" AND DistributorUserId = {0} ", HiContext.Current.SiteSettings.UserId.Value);
     string selectFields = "ProductId,ProductName,ProductCode,SaleCounts,ShortDescription,MarketPrice,ThumbnailUrl60,ThumbnailUrl100,ThumbnailUrl160, ThumbnailUrl180,ThumbnailUrl220,Stock";
     if (HiContext.Current.User.UserRole == UserRole.Underling)
     {
         Member user = HiContext.Current.User as Member;
         int memberDiscount = MemberProvider.Instance().GetMemberDiscount(user.GradeId);
         selectFields = (selectFields + string.Format(",(SELECT SalePrice FROM vw_distro_SkuPrices WHERE SkuId = p.SkuId AND DistributoruserId = {0}) AS SalePrice", num) + string.Format(",CASE WHEN (SELECT COUNT(*) FROM distro_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0} AND DistributoruserId = {1}) = 1 ", user.GradeId, num)) + string.Format(" THEN (SELECT MemberSalePrice FROM distro_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0} AND DistributoruserId = {1})", user.GradeId, num) + string.Format(" ELSE (SELECT SalePrice FROM vw_distro_SkuPrices WHERE SkuId = p.SkuId AND DistributoruserId = {0})*{1}/100 END AS RankPrice", num, memberDiscount);
     }
     else
     {
         selectFields = selectFields + string.Format(",(SELECT SalePrice FROM vw_distro_SkuPrices WHERE SkuId = p.SkuId AND DistributoruserId = {0}) AS SalePrice", num) + " , 0 AS RankPrice";
     }
     return DataHelper.PagingByRownumber(query.PageIndex, query.PageSize, query.SortBy, query.SortOrder, query.IsCount, "vw_distro_BrowseProductList p", "ProductId", filter, selectFields);
 }
コード例 #9
0
ファイル: ProductProvider.cs プロジェクト: davinx/himedi
 public abstract DbQueryResult GetSubjectProduct(SubjectListQuery query);
コード例 #10
0
ファイル: ProductProvider.cs プロジェクト: davinx/himedi
 public abstract DataTable GetSubjectList(SubjectListQuery query);
コード例 #11
0
ファイル: ArticleDetails.cs プロジェクト: davinx/himedi
 void BindList()
 {
     int num = 2;
     SubjectListQuery query = new SubjectListQuery();
     query.SortBy = "DisplaySequence";
     query.SortOrder = SortAction.Desc;
     XmlNode node = ProductBrowser.GetProductSubjectDocument().SelectSingleNode("root/Subject[SubjectId='" + num + "']");
     if (node != null)
     {
         query.ProductType = (SubjectType) int.Parse(node.SelectSingleNode("Type").InnerText);
         query.CategoryIds = node.SelectSingleNode("Categories").InnerText;
         string innerText = node.SelectSingleNode("MaxPrice").InnerText;
         if (!string.IsNullOrEmpty(innerText))
         {
             int result = 0;
             if (int.TryParse(innerText, out result))
             {
                 query.MaxPrice = new decimal?(result);
             }
         }
         string str2 = node.SelectSingleNode("MinPrice").InnerText;
         if (!string.IsNullOrEmpty(str2))
         {
             int num3 = 0;
             if (int.TryParse(str2, out num3))
             {
                 query.MinPrice = new decimal?(num3);
             }
         }
         query.Keywords = node.SelectSingleNode("Keywords").InnerText;
         query.MaxNum = int.Parse(node.SelectSingleNode("MaxNum").InnerText);
     }
     this.ariticlative.DataSource = ProductBrowser.GetSubjectList(query);
     this.ariticlative.DataBind();
 }