예제 #1
0
        public virtual QueryResult QueryAdvertising(AdvertisingQueryFilter query)
        {
            int totalCount;
            var dt = ObjectFactory <IAdvertisingQueryDA> .Instance.Query(query, out totalCount);

            return(new QueryResult()
            {
                Data = dt,
                TotalCount = totalCount
            });
        }
예제 #2
0
        public void Query(AdvertisingQueryVM model, int PageSize, int PageIndex, string SortField, EventHandler <RestClientEventArgs <dynamic> > callback)
        {
            string GetProductLineByQueryUrl = "ExternalSYSService/Advertising/AdvertisingQuery";

            AdvertisingQueryFilter filter = model.ConvertVM <AdvertisingQueryVM, AdvertisingQueryFilter>();

            filter.PageInfo = new QueryFilter.Common.PagingInfo
            {
                PageSize  = PageSize,
                PageIndex = PageIndex,
                SortBy    = SortField
            };
            restClient.QueryDynamicData(GetProductLineByQueryUrl, filter, callback);
        }
예제 #3
0
        public DataTable Query(AdvertisingQueryFilter filter, out int totalCount)
        {
            PagingInfoEntity pagingEntity = new PagingInfoEntity();

            pagingEntity.SortField     = filter.PageInfo.SortBy;
            pagingEntity.MaximumRows   = filter.PageInfo.PageSize;
            pagingEntity.StartRowIndex = filter.PageInfo.PageIndex * filter.PageInfo.PageSize;

            var cmd = DataCommandManager.CreateCustomDataCommandFromConfig("AdvertisingQuery");

            using (var sqlBuilder = new DynamicQuerySqlBuilder(cmd.CommandText, cmd, pagingEntity, "product.InDate DESC"))
            {
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "category.SysNo",
                                                             DbType.Int32,
                                                             "@ProductLineCategorySysNo",
                                                             QueryConditionOperatorType.Equal,
                                                             filter.ProductLineCategorySysNo);

                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "Link.ProductLineSysNo",
                                                             DbType.Int32,
                                                             "@ProductLineSysNo",
                                                             QueryConditionOperatorType.Equal,
                                                             filter.ProductLineSysNo);

                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "Link.InUser",
                                                             DbType.String,
                                                             "@InUser",
                                                             QueryConditionOperatorType.Like,
                                                             filter.InUser);

                string sql = string.Empty;
                if (filter.OperateDateFrom.HasValue)
                {
                    sql = string.Format(@" Link.InDate >= '{0}'", filter.OperateDateFrom);
                }
                if (filter.OperateDateTo.HasValue)
                {
                    sql = string.Format(@" Link.InDate <= '{0}' or Link.EditDate <='{0}'",
                                        filter.OperateDateTo.Value.AddDays(1).AddSeconds(-1));
                }
                if (filter.OperateDateFrom.HasValue && filter.OperateDateTo.HasValue)
                {
                    sql = string.Format(@" ((Link.InDate >= '{0}' AND Link.InDate <='{1}') OR (Link.EditDate >= '{0}' AND Link.EditDate <='{1}'))",
                                        filter.OperateDateFrom, filter.OperateDateTo.Value.AddDays(1).AddSeconds(-1));
                }

                if (!string.IsNullOrEmpty(sql))
                {
                    sqlBuilder.ConditionConstructor.AddCustomCondition(QueryConditionRelationType.AND, sql);
                }

                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "Link.ImageWidth",
                                                             DbType.Int32,
                                                             "@ImageWidth",
                                                             QueryConditionOperatorType.Equal,
                                                             filter.ImageWidth);

                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "Link.ImageHeight",
                                                             DbType.Int32,
                                                             "@ImageHeight",
                                                             QueryConditionOperatorType.Equal,
                                                             filter.ImageHeight);


                object _type;
                if (filter.Type != null && EnumCodeMapper.TryGetCode(filter.Type, out _type))
                {
                    sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "Link.Type",
                                                                 DbType.String,
                                                                 "@Type",
                                                                 QueryConditionOperatorType.Like,
                                                                 _type);
                }

                cmd.CommandText = sqlBuilder.BuildQuerySql();

                EnumColumnList enumList = new EnumColumnList();
                enumList.Add("Type", typeof(AdvertisingType));
                enumList.Add("Status", typeof(ValidStatus));

                var dt = cmd.ExecuteDataTable(enumList);
                totalCount = Convert.ToInt32(cmd.GetParameterValue("@TotalCount"));
                return(dt);
            }
        }