コード例 #1
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());
        }
コード例 #2
0
        public override DataTable GetSubjectList(SubjectListQuery query)
        {
            StringBuilder builder = new StringBuilder();

            //Member user = HiContext.Current.User as Member;
            //int memberDiscount = MemberProvider.Instance().GetMemberDiscount(user.GradeId);
            builder.AppendFormat(
                @"SELECT TOP {0} ROW_NUMBER() over (order by  DisplaySequence desc) id ,ProductId,ProductName,ProductCode,ShowSaleCounts AS SaleCounts,ShortDescription,RIGHT(CONVERT(NVARCHAR(10),AddedDate, 102),5) as GroundingDate,", query.MaxNum);
            builder.Append(
                " ThumbnailUrl60,ThumbnailUrl100,ThumbnailUrl160,ThumbnailUrl180,ThumbnailUrl220,ThumbnailUrl310,MarketPrice,SalePrice");

            builder.Append(" FROM vw_HiFlat_BrowseProductList p WHERE ");
            builder.Append("1=1");
            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));
            }
        }
コード例 #3
0
        private DataTable GetTabProductList(XmlNode node, string whereName)
        {
            SubjectListQuery subjectListQuery = new SubjectListQuery();

            subjectListQuery.SortBy    = "DisplaySequence";
            subjectListQuery.SortOrder = SortAction.Desc;
            string value = node.Attributes[whereName].Value;

            if (!string.IsNullOrEmpty(value))
            {
                string[] array      = value.Split(',');
                int      categoryId = default(int);
                if (int.TryParse(array[0], out categoryId))
                {
                    subjectListQuery.Category = CatalogHelper.GetCategory(categoryId);
                }
                if (!string.IsNullOrEmpty(array[1]))
                {
                    subjectListQuery.TagId = int.Parse(array[1]);
                }
                if (!string.IsNullOrEmpty(array[2]))
                {
                    subjectListQuery.BrandCategoryId = int.Parse(array[2]);
                }
            }
            subjectListQuery.MaxNum = int.Parse(node.Attributes["MaxNum"].Value);
            return(ProductBrowser.GetSubjectList(subjectListQuery));
        }
コード例 #4
0
ファイル: ProductData.cs プロジェクト: yuelinsoft/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));
            }
        }
コード例 #5
0
        void BindList()
        {
            SubjectListQuery productBrowseQuery = this.GetProductBrowseQuery();
            DbQueryResult    subjectProduct     = ProductBrowser.GetSubjectProduct(productBrowseQuery);

            this.rptSubGoodsList.DataSource = subjectProduct.Data;
            this.rptSubGoodsList.DataBind();
            this.pager.TotalRecords = (int)(subjectProduct.TotalRecords * (Convert.ToDouble(this.pager.PageSize) / ((double)productBrowseQuery.PageSize)));
        }
コード例 #6
0
        private DataTable GetProductList(XmlNode node)
        {
            SubjectListQuery query = new SubjectListQuery();

            query.SortBy      = "DisplaySequence";
            query.SortOrder   = SortAction.Desc;
            query.CategoryIds = node.Attributes["CategoryId"].Value;
            query.MaxNum      = int.Parse(node.Attributes["MaxNum"].Value);
            return(ProductBrowser.GetSubjectList(query));
        }
コード例 #7
0
        private DataTable GetProductList(XmlNode node)
        {
            SubjectListQuery subjectListQuery = new SubjectListQuery();

            subjectListQuery.SortBy    = "ShowSaleCounts";
            subjectListQuery.SortOrder = SortAction.Desc;
            int categoryId = default(int);

            if (int.TryParse(node.Attributes["CategoryId"].Value, out categoryId))
            {
                subjectListQuery.Category = CatalogHelper.GetCategory(categoryId);
            }
            subjectListQuery.MaxNum = int.Parse(node.Attributes["MaxNum"].Value);
            return(ProductBrowser.GetSubjectList(subjectListQuery));
        }
コード例 #8
0
ファイル: ProductData.cs プロジェクト: yuelinsoft/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));
        }
コード例 #9
0
        private DataTable GetProductList(XmlNode node)
        {
            SubjectListQuery subjectListQuery = new SubjectListQuery();

            subjectListQuery.SortBy      = "DisplaySequence";
            subjectListQuery.SortOrder   = SortAction.Desc;
            subjectListQuery.CategoryIds = node.Attributes["CategoryId"].Value;
            if (!string.IsNullOrEmpty(node.Attributes["TagId"].Value))
            {
                subjectListQuery.TagId = int.Parse(node.Attributes["TagId"].Value);
            }
            if (!string.IsNullOrEmpty(node.Attributes["BrandId"].Value))
            {
                subjectListQuery.BrandCategoryId = new int?(int.Parse(node.Attributes["BrandId"].Value));
            }
            if (!string.IsNullOrEmpty(node.Attributes["TypeId"].Value))
            {
                subjectListQuery.ProductTypeId = new int?(int.Parse(node.Attributes["TypeId"].Value));
            }
            string value = node.Attributes["AttributeString"].Value;

            if (!string.IsNullOrEmpty(value))
            {
                IList <AttributeValueInfo> list = new List <AttributeValueInfo>();
                string[] array = value.Split(new char[]
                {
                    ','
                });
                for (int i = 0; i < array.Length; i++)
                {
                    string[] array2 = array[i].Split(new char[]
                    {
                        '_'
                    });
                    list.Add(new AttributeValueInfo
                    {
                        AttributeId = Convert.ToInt32(array2[0]),
                        ValueId     = Convert.ToInt32(array2[1])
                    });
                }
                subjectListQuery.AttributeValues = list;
            }
            subjectListQuery.MaxNum = int.Parse(node.Attributes["MaxNum"].Value);
            return(ProductBrowser.GetSubjectList(subjectListQuery));
        }
コード例 #10
0
        private DataTable GetProductList(XmlNode node)
        {
            SubjectListQuery subjectListQuery = new SubjectListQuery();

            subjectListQuery.SortBy      = "DisplaySequence";
            subjectListQuery.SortOrder   = SortAction.Desc;
            subjectListQuery.CategoryIds = node.Attributes["CategoryId"].Value;
            if (!string.IsNullOrEmpty(node.Attributes["TagId"].Value))
            {
                subjectListQuery.TagId = int.Parse(node.Attributes["TagId"].Value);
            }
            if (!string.IsNullOrEmpty(node.Attributes["BrandId"].Value))
            {
                subjectListQuery.BrandCategoryId = new int?(int.Parse(node.Attributes["BrandId"].Value));
            }
            subjectListQuery.MaxNum = int.Parse(node.Attributes["MaxNum"].Value);
            return(ProductBrowser.GetSubjectList(subjectListQuery));
        }
コード例 #11
0
        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));
        }
コード例 #12
0
        private DataTable GetProductList(XmlNode node)
        {
            SubjectListQuery subjectListQuery = new SubjectListQuery();

            subjectListQuery.SortBy    = "DisplaySequence";
            subjectListQuery.SortOrder = SortAction.Desc;
            int categoryId = default(int);

            if (int.TryParse(node.Attributes["CategoryId"].Value, out categoryId))
            {
                subjectListQuery.Category = CatalogHelper.GetCategory(categoryId);
            }
            if (!string.IsNullOrEmpty(node.Attributes["TagId"].Value))
            {
                subjectListQuery.TagId = int.Parse(node.Attributes["TagId"].Value);
            }
            if (!string.IsNullOrEmpty(node.Attributes["BrandId"].Value))
            {
                subjectListQuery.BrandCategoryId = int.Parse(node.Attributes["BrandId"].Value);
            }
            if (!string.IsNullOrEmpty(node.Attributes["TypeId"].Value))
            {
                subjectListQuery.ProductTypeId = int.Parse(node.Attributes["TypeId"].Value);
            }
            string value = node.Attributes["AttributeString"].Value;

            if (!string.IsNullOrEmpty(value))
            {
                IList <AttributeValueInfo> list = new List <AttributeValueInfo>();
                string[] array = value.Split(',');
                for (int i = 0; i < array.Length; i++)
                {
                    string[]           array2             = array[i].Split('_');
                    AttributeValueInfo attributeValueInfo = new AttributeValueInfo();
                    attributeValueInfo.AttributeId = Convert.ToInt32(array2[0]);
                    attributeValueInfo.ValueId     = Convert.ToInt32(array2[1]);
                    list.Add(attributeValueInfo);
                }
                subjectListQuery.AttributeValues = list;
            }
            subjectListQuery.MaxNum = int.Parse(node.Attributes["MaxNum"].Value);
            return(ProductBrowser.GetSubjectList(subjectListQuery));
        }
コード例 #13
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();
        }
コード例 #14
0
 private void BindList()
 {
     if (this.rp_guest != null)
     {
         IList <int> browedProductList = BrowsedProductQueue.GetBrowedProductList(this.MaxNum);
         this.rp_guest.DataSource = ProductBrowser.GetVistiedProducts(browedProductList);
         this.rp_guest.DataBind();
     }
     if (this.rp_hot != null)
     {
         this.rp_hot.DataSource = ProductBrowser.GetSaleProductRanking(0, this.maxNum);
         this.rp_hot.DataBind();
     }
     if (this.rp_new != null)
     {
         SubjectListQuery subjectListQuery = new SubjectListQuery();
         subjectListQuery.MaxNum = this.maxNum;
         subjectListQuery.SortBy = "DisplaySequence";
         this.rp_new.DataSource  = ProductBrowser.GetSubjectList(subjectListQuery);
         this.rp_new.DataBind();
     }
 }
コード例 #15
0
 private void BindList()
 {
     if (this.rp_guest != null)
     {
         System.Collections.Generic.IList <int> browedProductList = BrowsedProductQueue.GetBrowedProductList(this.MaxNum);
         this.rp_guest.DataSource = ProductBrowser.GetSuggestProductsProducts(browedProductList, 5);
         //this.rp_guest.DataSource = ProductBrowser.GetVistiedProducts(browedProductList, ClientType.PC);
         this.rp_guest.DataBind();
     }
     if (this.rp_hot != null)
     {
         this.rp_hot.DataSource = ProductBrowser.GetSaleProductRanking(new int?(0), this.maxNum);
         this.rp_hot.DataBind();
     }
     if (this.rp_new != null)
     {
         SubjectListQuery subjectListQuery = new SubjectListQuery();
         subjectListQuery.MaxNum = this.maxNum;
         subjectListQuery.SortBy = "DisplaySequence";
         this.rp_new.DataSource  = ProductBrowser.GetSubjectList(subjectListQuery);
         this.rp_new.DataBind();
     }
 }
コード例 #16
0
ファイル: ArticleDetails.cs プロジェクト: yuelinsoft/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();
        }
コード例 #17
0
ファイル: ProductData.cs プロジェクト: uvbs/eshopSanQiang
        public override System.Data.DataTable GetSubjectList(SubjectListQuery query)
        {
            StringBuilder stringBuilder = new StringBuilder();
            int           value         = HiContext.Current.SiteSettings.UserId.Value;

            if (HiContext.Current.User.UserRole == UserRole.Underling)
            {
                Hidistro.Membership.Context.Member member = HiContext.Current.User as Hidistro.Membership.Context.Member;
                int memberDiscount = MemberProvider.Instance().GetMemberDiscount(member.GradeId);
                stringBuilder.AppendFormat("SELECT TOP {0} ProductId,ProductName,ProductCode,ShowSaleCounts AS SaleCounts,ShortDescription,", query.MaxNum);
                stringBuilder.Append(" ThumbnailUrl60,ThumbnailUrl100,ThumbnailUrl160,ThumbnailUrl180,ThumbnailUrl220,ThumbnailUrl310,MarketPrice,");
                stringBuilder.AppendFormat(" (SELECT SalePrice FROM vw_distro_SkuPrices WHERE SkuId = p.SkuId AND DistributoruserId = {0}) AS SalePrice,", value);
                stringBuilder.AppendFormat(" CASE WHEN (SELECT COUNT(*) FROM distro_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0} AND DistributoruserId = {1}) = 1 ", member.GradeId, value);
                stringBuilder.AppendFormat(" THEN (SELECT MemberSalePrice FROM distro_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0} AND DistributoruserId = {1})", member.GradeId, value);
                stringBuilder.AppendFormat(" ELSE (SELECT SalePrice FROM vw_distro_SkuPrices WHERE SkuId = p.SkuId AND DistributoruserId = {0})*{1}/100 END AS RankPrice", value, memberDiscount);
            }
            else
            {
                stringBuilder.AppendFormat("SELECT TOP {0} ProductId,ProductName,ProductCode,ShowSaleCounts AS SaleCounts,ShortDescription,", query.MaxNum);
                stringBuilder.Append(" ThumbnailUrl60,ThumbnailUrl100,ThumbnailUrl160, ThumbnailUrl180,ThumbnailUrl220, ThumbnailUrl310, MarketPrice");
                stringBuilder.AppendFormat(" ,(SELECT SalePrice FROM vw_distro_SkuPrices WHERE SkuId = p.SkuId AND DistributoruserId = {0}) AS SalePrice", value);
                stringBuilder.AppendFormat(" ,(SELECT SalePrice FROM vw_distro_SkuPrices WHERE SkuId = p.SkuId AND DistributoruserId = {0}) AS RankPrice", value);
            }
            stringBuilder.Append(" FROM vw_distro_BrowseProductList p WHERE ");
            stringBuilder.Append(ProductSubsiteProvider.BuildProductSubjectQuerySearch(query));
            if (!string.IsNullOrEmpty(query.SortBy))
            {
                stringBuilder.AppendFormat(" ORDER BY {0} {1}", DataHelper.CleanSearchString(query.SortBy), DataHelper.CleanSearchString(query.SortOrder.ToString()));
            }
            System.Data.DataTable        result           = null;
            System.Data.Common.DbCommand sqlStringCommand = this.database.GetSqlStringCommand(stringBuilder.ToString());
            using (System.Data.IDataReader dataReader = this.database.ExecuteReader(sqlStringCommand))
            {
                result = DataHelper.ConverDataReaderToDataTable(dataReader);
            }
            return(result);
        }
コード例 #18
0
        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);
        }
コード例 #19
0
        private DataTable GetTabProductList(XmlNode node, string whereName)
        {
            SubjectListQuery query = new SubjectListQuery();

            query.SortBy    = "DisplaySequence";
            query.SortOrder = SortAction.Desc;
            string str = node.Attributes[whereName].Value;

            if (!string.IsNullOrEmpty(str))
            {
                string[] strArray = str.Split(new char[] { ',' });
                query.CategoryIds = strArray[0];
                if (!string.IsNullOrEmpty(strArray[1]))
                {
                    query.TagId = int.Parse(strArray[1]);
                }
                if (!string.IsNullOrEmpty(strArray[2]))
                {
                    query.BrandCategoryId = new int?(int.Parse(strArray[2]));
                }
            }
            query.MaxNum = int.Parse(node.Attributes["MaxNum"].Value);
            return(ProductBrowser.GetSubjectList(query));
        }
コード例 #20
0
        private DataTable GetProductList()
        {
            int num;
            SubjectListQuery entity = new SubjectListQuery();

            entity.CategoryIds = this.Page.Request.QueryString["categoryId"];
            if (int.TryParse(this.Page.Request.QueryString["brand"], out num))
            {
                entity.BrandCategoryId = new int?(num);
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["valueStr"]))
            {
                IList <AttributeValueInfo> list = new List <AttributeValueInfo>();
                string   str      = Globals.HtmlEncode(Globals.UrlDecode(this.Page.Request.QueryString["valueStr"]));
                string[] strArray = str.Split(new char[] { '-' });
                if (!string.IsNullOrEmpty(str))
                {
                    for (int i = 0; i < strArray.Length; i++)
                    {
                        string[] strArray2 = strArray[i].Split(new char[] { '_' });
                        if (((strArray2.Length > 0) && !string.IsNullOrEmpty(strArray2[1])) && (strArray2[1] != "0"))
                        {
                            AttributeValueInfo item = new AttributeValueInfo();
                            item.AttributeId = Convert.ToInt32(strArray2[0]);
                            item.ValueId     = Convert.ToInt32(strArray2[1]);
                            list.Add(item);
                        }
                    }
                }
                entity.AttributeValues = list;
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["keywords"]))
            {
                entity.Keywords = DataHelper.CleanSearchString(Globals.HtmlEncode(Globals.UrlDecode(this.Page.Request.QueryString["keywords"])));
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["minSalePrice"]))
            {
                decimal result = 0M;
                if (decimal.TryParse(Globals.UrlDecode(this.Page.Request.QueryString["minSalePrice"]), out result))
                {
                    entity.MinPrice = new decimal?(result);
                }
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["maxSalePrice"]))
            {
                decimal num4 = 0M;
                if (decimal.TryParse(Globals.UrlDecode(this.Page.Request.QueryString["maxSalePrice"]), out num4))
                {
                    entity.MaxPrice = new decimal?(num4);
                }
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["TagIds"]))
            {
                int num5 = 0;
                if (int.TryParse(this.Page.Request.QueryString["TagIds"], out num5))
                {
                    entity.TagId = num5;
                }
            }
            entity.MaxNum    = this.MaxNum;
            entity.SortBy    = "ShowSaleCounts";
            entity.SortOrder = SortAction.Desc;
            Globals.EntityCoding(entity, true);
            return(ProductBrowser.GetSubjectList(entity));
        }
コード例 #21
0
        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());
        }
コード例 #22
0
ファイル: SubjectsController.cs プロジェクト: koppa96/eschool
 public Task <PagedListResponse <SubjectListResponse> > ListSubjects([FromQuery] SubjectListQuery query, CancellationToken cancellationToken)
 {
     return(mediator.Send(query, cancellationToken));
 }
コード例 #23
0
 public abstract DataTable GetSubjectList(SubjectListQuery query);
コード例 #24
0
 public static DbQueryResult GetSubjectProduct(SubjectListQuery query)
 {
     return(ProductProvider.Instance().GetSubjectProduct(query));
 }
コード例 #25
0
 public static DataTable GetSubjectList(SubjectListQuery query)
 {
     return(new ProductBrowseDao().GetSubjectList(query));
 }
コード例 #26
0
        private DataTable GetProductList()
        {
            SubjectListQuery subjectListQuery = new SubjectListQuery();

            subjectListQuery.CategoryIds = this.Page.Request.QueryString["categoryId"];
            int value;

            if (int.TryParse(this.Page.Request.QueryString["brand"], out value))
            {
                subjectListQuery.BrandCategoryId = new int?(value);
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["valueStr"]))
            {
                IList <AttributeValueInfo> list = new List <AttributeValueInfo>();
                string text = Globals.UrlDecode(this.Page.Request.QueryString["valueStr"]);
                text = Globals.HtmlEncode(text);
                string[] array = text.Split(new char[]
                {
                    '-'
                });
                if (!string.IsNullOrEmpty(text))
                {
                    for (int i = 0; i < array.Length; i++)
                    {
                        string[] array2 = array[i].Split(new char[]
                        {
                            '_'
                        });
                        if (array2.Length > 0 && !string.IsNullOrEmpty(array2[1]) && array2[1] != "0")
                        {
                            list.Add(new AttributeValueInfo
                            {
                                AttributeId = Convert.ToInt32(array2[0]),
                                ValueId     = Convert.ToInt32(array2[1])
                            });
                        }
                    }
                }
                subjectListQuery.AttributeValues = list;
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["keywords"]))
            {
                subjectListQuery.Keywords = DataHelper.CleanSearchString(Globals.HtmlEncode(Globals.UrlDecode(this.Page.Request.QueryString["keywords"])));
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["minSalePrice"]))
            {
                decimal value2 = 0m;
                if (decimal.TryParse(Globals.UrlDecode(this.Page.Request.QueryString["minSalePrice"]), out value2))
                {
                    subjectListQuery.MinPrice = new decimal?(value2);
                }
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["maxSalePrice"]))
            {
                decimal value3 = 0m;
                if (decimal.TryParse(Globals.UrlDecode(this.Page.Request.QueryString["maxSalePrice"]), out value3))
                {
                    subjectListQuery.MaxPrice = new decimal?(value3);
                }
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["TagIds"]))
            {
                int tagId = 0;
                if (int.TryParse(this.Page.Request.QueryString["TagIds"], out tagId))
                {
                    subjectListQuery.TagId = tagId;
                }
            }
            subjectListQuery.MaxNum    = this.MaxNum;
            subjectListQuery.SortBy    = "ShowSaleCounts";
            subjectListQuery.SortOrder = SortAction.Desc;
            Globals.EntityCoding(subjectListQuery, true);
            return(ProductBrowser.GetSubjectList(subjectListQuery));
        }
コード例 #27
0
 public static DataTable GetSubjectList(SubjectListQuery query)
 {
     return(ProductProvider.Instance().GetSubjectList(query));
 }
コード例 #28
0
        private void BindList()
        {
            SubjectListQuery query = new SubjectListQuery {
                SortBy = this.OrderBy
            };

            //if (this.Desc == 0)
            //{
            query.SortOrder = SortAction.Desc;
            //}
            //else
            //{
            //    query.SortOrder = SortAction.Asc;
            //}
            XmlNode node = ProductHelper.GetProductSubjectDocument().SelectSingleNode("root/Subject[SubjectId='" + this.SubjectId + "']");

            if (node != null)
            {
                if (!string.IsNullOrEmpty(node.SelectSingleNode("Type").InnerText))
                {
                    query.TagId = 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);
                if (this.IsSaleCountOrderBy)
                {
                    int num3 = 0;
                    if (int.TryParse(node.SelectSingleNode("SaleContMaxNum").InnerText, out num3))
                    {
                        query.MaxNum = num3;
                    }
                }
                if (!string.IsNullOrEmpty(node.SelectSingleNode("BrandCategoryId").InnerText))
                {
                    query.BrandCategoryId = new int?(int.Parse(node.SelectSingleNode("BrandCategoryId").InnerText));
                }
                if (!string.IsNullOrEmpty(node.SelectSingleNode("ProductTypeId").InnerText))
                {
                    query.ProductTypeId = new int?(int.Parse(node.SelectSingleNode("ProductTypeId").InnerText));
                }
                string str3 = node.SelectSingleNode("AttributeString").InnerText;
                if (!string.IsNullOrEmpty(str3))
                {
                    IList <AttributeValueInfo> list = new List <AttributeValueInfo>();
                    string[] strArray = str3.Split(new char[] { ',' });
                    for (int i = 0; i < strArray.Length; i++)
                    {
                        string[]           strArray2 = strArray[i].Split(new char[] { '_' });
                        AttributeValueInfo item      = new AttributeValueInfo {
                            AttributeId = Convert.ToInt32(strArray2[0]),
                            ValueId     = Convert.ToInt32(strArray2[1])
                        };
                        list.Add(item);
                    }
                    query.AttributeValues = list;
                }
            }
            base.DataSource = ProductHelper.GetSubjectList(query);
            base.DataBind();
        }
コード例 #29
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());
        }
コード例 #30
0
 public abstract DbQueryResult GetSubjectProduct(SubjectListQuery query);