예제 #1
0
        /// <summary>
        /// 根据栏目获取文章
        /// </summary>
        /// <param name="ch">栏目</param>
        /// <param name="includechildren">包含子栏目</param>
        /// <param name="from"></param>
        /// <param name="PageSize">页大小</param>
        List <Article> QueryArticlesByChannel(Channel ch, bool includechildren, int from, int PageSize)
        {
            Criteria c = new Criteria(CriteriaType.None);

            if (includechildren)
            {
                c.Add(CriteriaType.Like, "ChannelFullUrl", ch.FullUrl + "%");
                c.Add(CriteriaType.Equals, "State", 1);
            }
            else
            {
                c.Add(CriteriaType.Equals, "OwnerID", ch.ID);
                c.Add(CriteriaType.Equals, "State", 1);
            }
            if (!String.IsNullOrEmpty(Tags))
            {
                c.Add(CriteriaType.Like, "Tags", "%'" + Tags + "'%");
            }
            Order[] os = IsShow ? new Order[] { new Order("IsShow", OrderMode.Desc), new Order("Updated", OrderMode.Desc), new Order("ID", OrderMode.Desc) } : new Order[] { new Order("Updated", OrderMode.Desc), new Order("ID", OrderMode.Desc) };
            return(Assistant.List <Article>(c, os, from, PageSize,
                                            new string[] { "ID", "Title", "ChannelFullUrl", "Created", "SN" }));
        }
예제 #2
0
        Criteria CreateCriteriaByQuey(AccountQuery query)
        {
            Criteria c = new Criteria(CriteriaType.None);

            if (query.State != 100)
            {
                c.Add(CriteriaType.Equals, "State", query.State);
            }
            if (query.EmailValidate != 100)
            {
                c.Add(CriteriaType.Equals, "EmailValidate", query.EmailValidate);
            }
            if (query.ModelState != 100)
            {
                c.Add(CriteriaType.Equals, "ModelState", query.ModelState);
            }

            if (!string.IsNullOrEmpty(query.KeyWord))
            {
                Criteria keyCriteria = new Criteria(CriteriaType.None);
                keyCriteria.Mode = CriteriaMode.Or;
                keyCriteria.AddOr(CriteriaType.Like, "LastName", "%" + query.KeyWord + "%");
                keyCriteria.AddOr(CriteriaType.Like, "LoginName", "%" + query.KeyWord + "%");
                keyCriteria.AddOr(CriteriaType.Like, "Email", "%" + query.KeyWord + "%");
                c.Criterias.Add(keyCriteria);
            }

            if (!string.IsNullOrEmpty(query.SiteID))
            {
                c.Add(CriteriaType.Equals, "FromSiteID", query.SiteID);
            }

            if (!string.IsNullOrEmpty(query.ModelName))
            {
                c.Add(CriteriaType.Equals, "ModelName", query.ModelName);
            }
            if (!string.IsNullOrEmpty(query.DepartmentID))
            {
                c.Add(CriteriaType.Equals, "DepartmentID", query.DepartmentID);
            }

            if (query.UserType != 100)
            {
                c.Add(CriteriaType.Equals, "UserType", query.UserType);
            }
            if (c.Criterias.Count == 0)
            {
                return(null);
            }
            else
            {
                return(c);
            }
        }
예제 #3
0
        /// <summary>
        /// 处理分支
        /// </summary>
        /// <param name="qf">字段数据</param>
        /// <param name="c">Criteria</param>
        /// <returns>是否继续执行</returns>
        protected override bool DoBranches(QueryField qf, Criteria c)
        {
            bool nextstep = true;

            if (qf.Column.Direction == ParameterDirection.Output || qf.Column.Direction == ParameterDirection.InputOutput)
            {
                string column = String.IsNullOrEmpty(qf.Column.Mapping) ? qf.Column.Name : qf.Column.Mapping;
                if (String.Compare(column, "State", true) == 0)
                {
                    string state = qf.Value as string;
                    if (!String.IsNullOrEmpty(state))
                    {
                        int enumstate;
                        Int32.TryParse(state, out enumstate);
                        c.Add(CriteriaType.Equals, "State", enumstate);
                    }
                    nextstep = false;
                }
                else if (String.Compare(column, "OwnerID", true) == 0)
                {
                    string oid = qf.Value as string;
                    if (!String.IsNullOrEmpty(oid))
                    {
                        Channel ch = ChannelHelper.GetChannel(oid, null);
                        if (String.IsNullOrEmpty(ch.Parameter))
                        {
                            c.Add(CriteriaType.Equals, "OwnerID", oid);
                        }
                        else
                        {
                            CriteriaExpressionHelper.Execute(c, ch.Parameter);
                        }
                    }
                    nextstep = false;
                }
            }

            return(nextstep);
        }
예제 #4
0
        protected virtual Criteria CreateListCriteria()
        {
            Criteria c = new Criteria(CriteriaType.None);

            if (UseColumn)
            {
                if (IncludeChildren)
                {
                    Criteria c2 = new Criteria(CriteriaType.Equals, "OwnerID", BindColumnID);
                    c2.Mode = CriteriaMode.Or;
                    List <Channel> chs = ChannelHelper.GetChildren(BindColumnID);
                    if (chs != null)
                    {
                        foreach (Channel ch in chs)
                        {
                            c2.AddOr(CriteriaType.Equals, "OwnerID", ch.ID);
                        }
                    }
                    c.Criterias.Add(c2);
                }
                else
                {
                    c.Add(CriteriaType.Equals, "OwnerID", BindColumnID);
                }
            }
            if (ShowAtHome)
            {
                c.Add(CriteriaType.Equals, "IsShow", 1);
            }
            if (!String.IsNullOrEmpty(Tag))
            {
                c.Add(CriteriaType.Like, "Tags", "%" + Tag + "%");
            }
            c.Add(CriteriaType.Equals, "State", 1);
            ProcessQueryParam(c);

            return(c);
        }
예제 #5
0
 protected void AddCriteria(Expression <Func <T, bool> > criteria)
 {
     if (Criteria == null)
     {
         Criteria = new List <Expression <Func <T, bool> > > {
             criteria
         }
     }
     ;
     else
     {
         Criteria.Add(criteria);
     }
 }
예제 #6
0
 public IList <MenuItemInfo> GetChildrenMenuList(string parentId)
 {
     try
     {
         ObjectPersistence persistence = new ObjectPersistence(DbAccess);
         Criteria          cri         = new Criteria();
         cri.Add(Expression.Equal("ParentId", parentId));
         return(persistence.GetList <MenuItemInfo>(cri, new SortInfo("Index")));
     }
     catch (Exception ex)
     {
         throw HandleException("Page", "GetChildrenMenuList - " + parentId, ex);
     }
 }
예제 #7
0
 public IList <HtmlItemInfo> GetHtmlItemsByParent(string listId)
 {
     try
     {
         ObjectPersistence persistence = new ObjectPersistence(DbAccess);
         Criteria          cri         = new Criteria();
         if (string.IsNullOrEmpty(listId) || listId == Guid.Empty.ToString("N"))
         {
             cri.Add(Expression.Or(
                         Expression.IsNull("ItsListId"),
                         Expression.Equal("ItsListId", "")));
         }
         else
         {
             cri.Add(Expression.Equal("ItsListId", listId));
         }
         return(persistence.GetList <HtmlItemInfo>(cri, new SortInfo("LastUpdateTime", SortDirection.Desc)));
     }
     catch (Exception ex)
     {
         throw HandleException("Page", "GetHtmlItemsByParent - " + listId, ex);
     }
 }
예제 #8
0
        protected override Criteria CreateCriteria()
        {
            Criteria     c  = new Criteria();
            List <Order> os = new List <Order>();

            os.Add(new Order("ID"));



            if (QueryByColumn) //按栏目查询
            {
                if (String.IsNullOrEmpty(OwnerID))
                {
                    OwnerID = ChannelHelper.GetChannelIDFromURL();
                }
                if (IncludeChildren) //按子栏目查询
                {
                    Criteria subC = new Criteria();
                    subC.Mode = CriteriaMode.Or;
                    subC.Add(CriteriaType.Equals, "OwnerID", OwnerID);

                    List <Channel> chs = ChannelHelper.GetChannels(OwnerID);
                    if (chs != null && chs.Count > 0)
                    {
                        foreach (Channel ch in chs)
                        {
                            c.AddOr(CriteriaType.Equals, "OwnerID", ch.ID);
                        }
                    }
                }
                else
                {
                    c.Add(CriteriaType.Equals, "OwnerID", OwnerID);
                }
            }

            if (ShowAtHome) //只显示置顶信息
            {
                c.Add(CriteriaType.Equals, "IsShow", 1);
            }

            if (!String.IsNullOrEmpty(Tag)) //按标签查询
            {
                c.Add(CriteriaType.Like, "Tags", "%'" + Tag + "'%");
            }
            c.Add(CriteriaType.Equals, "State", 1); //只显示状态为可用的数据
            ProcessQueryParam(c);                   //处理附加查询数据

            return(c);
        }
예제 #9
0
 /// <summary>
 /// 处理一个查询组的字符串信息
 /// </summary>
 /// <param name="c"></param>
 /// <param name="k"></param>
 /// <param name="v"></param>
 protected void ProcessOrCriteria(Criteria c, string k, string v)
 {
     string[] ss = v.Split(',');
     Criteria c2 = new Criteria(CriteriaType.None);
     c2.Mode = CriteriaMode.Or;
     foreach (string s in ss)
     {
         c2.Add(CriteriaType.Equals, k, s);
     }
     if (c2.Criterias.Count > 0)
     {
         c.Criterias.Add(c2);
     }
 }
예제 #10
0
 void ProcessQueryParam(Criteria c)
 {
     if (!String.IsNullOrEmpty(QueryParam))
     {
         string[] groups = QueryParam.Split('&');
         foreach (string s in groups)
         {
             string[] kvp = s.Split('=');
             if (kvp.Length > 1)
             {
                 if (kvp[1].Contains(","))
                 {
                     ProcessOrCriteria(c, kvp[0], kvp[1]);
                 }
                 else
                 {
                     c.Add(CriteriaType.Equals, kvp[0], kvp[1]);
                 }
             }
             else
             {
                 string v = EncodeQueryParam ? HttpUtility.UrlDecode(Request[kvp[0]]) : Request[kvp[0]];
                 if (!String.IsNullOrEmpty(v) && !String.IsNullOrEmpty(v.Trim()))
                 {
                     if (v.Contains(","))
                     {
                         ProcessOrCriteria(c, kvp[0], v.Trim());
                     }
                     else
                     {
                         c.Add(CriteriaType.Equals, kvp[0], ConvertValue(ModelName, kvp[0], v.Trim()));
                     }
                 }
             }
         }
     }
 }
예제 #11
0
        public override void CreateFilter()
        {
            var filterParams = FilterParams as DocumentFilterParams;

            if (filterParams == null)
            {
                return;
            }

            Criteria = DetachedCriteria.For <Document>();
            Criteria.CreateAlias("Owner", "owner")
            .CreateAlias("DocumentType", "documentType");

            var owners   = filterParams.Owner.Cast <EntityBase>().ToList();
            var docTypes = filterParams.DocumentType.Cast <EntityBase>().ToList();

            var ownersCriterion   = CreateCriterion(owners, "owner");
            var docTypesCriterion = CreateCriterion(docTypes, "documentType");

            if (!string.IsNullOrEmpty(SearchString))
            {
                SetSearchString(SearchString);
            }

            ICriterion result = ownersCriterion;

            if (result == null && docTypesCriterion != null)
            {
                result = docTypesCriterion;
            }
            if (result != null && docTypesCriterion != null)
            {
                result = Restrictions.And(docTypesCriterion, result);
            }

            if (result == null && SearchStringCriterion != null)
            {
                result = SearchStringCriterion;
            }
            if (result != null && SearchStringCriterion != null)
            {
                result = Restrictions.And(SearchStringCriterion, result);
            }

            if (result != null)
            {
                Criteria.Add(result);
            }
        }
예제 #12
0
        public T GetLotteryInfoByCode <T>(string code)
            where T : LotteryInfoBase, new()
        {
            ObjectPersistence persistence = new ObjectPersistence(DbAccess);
            Criteria          cri         = new Criteria();

            cri.Add(Expression.Equal("Code", code));
            IList <T> list = persistence.GetList <T>(cri);

            if (list.Count > 0)
            {
                return(list[0]);
            }
            return(null);
        }
예제 #13
0
        /// <summary>
        /// 如果有子分类就显示子分类,如果没有就显示同级分类
        /// </summary>
        /// <returns></returns>
        public ActionResult NavigationMenu()
        {
            ViewBag.CurrentCategory = CurrentCategory;
            // var model = new Category { ID = CId, Conditaion = "parent_id=[ID]" };
            var criteria = new Criteria("ParentID", CId);

            criteria.Add(LOP.AND, "Status", 1);
            var list = CategoryService.GetList(criteria, new Order("sequence"));

            if (list.Count == 0)  //有子类就显示子类,没有子类就显示同级节点。
            {
                list = CategoryService.GetBrotherNode(CId);
            }
            return(View(list));
        }
예제 #14
0
        public void ShouldTranslateWhereClauseWithEmptyRoot()
        {
            const string target = "WHERE (n.name = 'Peter' OR p.release >= 20) XOR ID(a) = 100";

            var c = new Criteria();

            c.Add(new Criteria("n", "name", Operator.Equal, "Peter")
                  .Or(new Criteria("p", "release", Operator.Gte, 20)));

            c.Xor(new Criteria("a", Criteria.ID, Operator.Equal, 100));

            var whereClause = CypherTranslator.ToWhereClause(c, "n");

            Assert.AreEqual(target, whereClause);
        }
예제 #15
0
 public IList <RequestGetMoneyInfo> GetUnhandleRequestMoneyList()
 {
     try
     {
         ObjectPersistence persistence = new ObjectPersistence(DbAccess);
         Criteria          cri         = new Criteria();
         cri.Add(Expression.Equal("Status", MoneyGetStatus.Requesting));
         return(persistence.GetList <RequestGetMoneyInfo>(cri, new SortInfo("RequestTime", SortDirection.Desc)));
     }
     catch (Exception ex)
     {
         string errMsg = "获取用户请求提款失败!";
         throw HandleException(LogCategory.Money, errMsg, ex);
     }
 }
예제 #16
0
        Criteria CreateQueryCriteria(QueryFieldCollection qfc, PanelContext data)
        {
            Criteria ct = new Criteria(CriteriaType.None);

            //if (data.Model.Type == ModelType.ARTICLE && !data.Model.AuthorityType &&
            //    Security.CurrentAccountID != We7Helper.EmptyGUID)
            ////if (!GeneralConfigs.GetConfig().ShowAllInfo && Security.CurrentAccountID != We7Helper.EmptyGUID && !String.IsNullOrEmpty(Security.CurrentAccountID))
            //{
            //    ct.Add(CriteriaType.Equals, "AccountID", Security.CurrentAccountID);
            //}

            foreach (QueryField qf in qfc)
            {
                if (qf.Operator == OperationType.LIKE)
                {
                    ct.Add(ModelDBHelper.ConvertOperationType(qf.Operator), qf.Column.Name, "%" + qf.Value + "%");
                }
                else
                {
                    ct.Add(ModelDBHelper.ConvertOperationType(qf.Operator), qf.Column.Name, qf.Value);
                }
            }
            return(ct);
        }
예제 #17
0
        public void Execute(Criteria c, string expr)
        {
            StringReader sr = new StringReader(expr);
            string       s  = null;

            while (!string.IsNullOrEmpty(s = sr.ReadLine()))
            {
                s = s.Trim();
                Match m = regex.Match(s);
                if (m != null || m.Success)
                {
                    c.Add(CriteriaType.Like, m.Groups["field"].Value, m.Groups["value"].Value);
                }
            }
        }
예제 #18
0
        public void AddCriterion(CriterionStatement criterion)
        {
            if (Criteria.Contains(criterion))
            {
                throw new InvalidOperationException("Cannot add criterion, it already exists in criteria.");
            }

            Criteria.Add(criterion);

            criterion.CriterionChanged += CriteriaChanged;

            criterion.RemovalRequested += HandleCriterionRemovalRequested;

            CriterionAdded(criterion);
        }
예제 #19
0
        public override void CreateFilter()
        {
            var filterParams = FilterParams as CardFilterParams;

            if (filterParams == null)
            {
                return;
            }

            Criteria = DetachedCriteria.For <Card>();
            Criteria.CreateAlias("Staff", "staff");

            var staff      = filterParams.Staff.Cast <EntityBase>().ToList();
            var department = filterParams.Department.ToList();

            var staffCriterion      = CreateCriterion(staff, "staff");
            var departmentCriterion = CreateCriterion(department, "staff", "Department");

            if (!string.IsNullOrEmpty(SearchString))
            {
                SetSearchString(SearchString);
            }

            ICriterion result = staffCriterion;

            if (result == null && departmentCriterion != null)
            {
                result = departmentCriterion;
            }
            if (result != null && departmentCriterion != null)
            {
                result = Restrictions.And(departmentCriterion, result);
            }

            if (result == null && SearchStringCriterion != null)
            {
                result = SearchStringCriterion;
            }
            if (result != null && SearchStringCriterion != null)
            {
                result = Restrictions.And(SearchStringCriterion, result);
            }

            if (result != null)
            {
                Criteria.Add(result);
            }
        }
예제 #20
0
        /// <summary>
        /// Counts all with letter.
        /// </summary>
        /// <param name="letter">The letter.</param>
        /// <param name="mode">The mode.</param>
        /// <returns></returns>
        public static int CountAllWithLetter(string letter, MatchMode mode)
        {
            try
            {
                Criteria criteria = Criteria.For <Person>();
                criteria
                .Add(criteria.Like("Name", letter, mode));

                return(Person.Count(criteria));
            }
            catch (Exception ex)
            {
                //Do something
                throw ex;
            }
        }
예제 #21
0
        DataRow QueryRow(PanelContext ctx)
        {
            ModelDBHelper DbHelper = ModelDBHelper.Create(ctx.ModelName);
            Criteria      c        = new Criteria(CriteriaType.None);

            foreach (string key in ctx.DataKey.Values.Keys)
            {
                c.Add(CriteriaType.Equals, key, ctx.DataKey.Values[key]);
            }
            DataTable dt = DbHelper.Query(c, new List <Order>()
            {
                new Order("ID")
            }, 0, 0);

            return(dt != null && dt.Rows.Count > 0 ? dt.Rows[0] : null);
        }
예제 #22
0
 public IList <MenuItemInfo> GetTopMenuList()
 {
     try
     {
         ObjectPersistence persistence = new ObjectPersistence(DbAccess);
         Criteria          cri         = new Criteria();
         cri.Add(Expression.Or(
                     Expression.IsNull("ParentId"),
                     Expression.Equal("ParentId", "")));
         return(persistence.GetList <MenuItemInfo>(cri, new SortInfo("Index")));
     }
     catch (Exception ex)
     {
         throw HandleException("Page", "GetTopMenuList", ex);
     }
 }
예제 #23
0
 public override void ReadFrom(XElement xE)
 {
     base.ReadFrom(xE);
     CampaignId = null;
     AdGroupEstimateRequests = null;
     Criteria       = null;
     NetworkSetting = null;
     DailyBudget    = null;
     foreach (var xItem in xE.Elements())
     {
         var localName = xItem.Name.LocalName;
         if (localName == "campaignId")
         {
             CampaignId = long.Parse(xItem.Value);
         }
         else if (localName == "adGroupEstimateRequests")
         {
             if (AdGroupEstimateRequests == null)
             {
                 AdGroupEstimateRequests = new List <AdGroupEstimateRequest>();
             }
             var adGroupEstimateRequestsItem = new AdGroupEstimateRequest();
             adGroupEstimateRequestsItem.ReadFrom(xItem);
             AdGroupEstimateRequests.Add(adGroupEstimateRequestsItem);
         }
         else if (localName == "criteria")
         {
             if (Criteria == null)
             {
                 Criteria = new List <Criterion>();
             }
             var criteriaItem = InstanceCreator.CreateCriterion(xItem);
             criteriaItem.ReadFrom(xItem);
             Criteria.Add(criteriaItem);
         }
         else if (localName == "networkSetting")
         {
             NetworkSetting = new NetworkSetting();
             NetworkSetting.ReadFrom(xItem);
         }
         else if (localName == "dailyBudget")
         {
             DailyBudget = new Money();
             DailyBudget.ReadFrom(xItem);
         }
     }
 }
예제 #24
0
        private void OnClear()
        {
            Criteria.Clear();

            OrderByProperty   = null;
            OrderByDescending = false;
            MaxTracks         = null;

            Criteria.Add(new CriteriaGroupViewModel(new List <CriteriaViewModel> {
                new CriteriaViewModel()
            })
            {
                IsLastGroup = true
            });

            Results = new List <Track>();
        }
예제 #25
0
        /// <summary>
        /// Finds the random people.
        /// </summary>
        /// <param name="numberOfPeople">The number of people.</param>
        /// <returns></returns>
        public static List <Person> FindRandomPeople(int numberOfPeople)
        {
            try
            {
                Criteria criteria = Criteria.For <Person>();

                criteria
                .Add(Criteria.Order.Random());

                return(Person.SlicedFindAll(criteria, 0, numberOfPeople));
            }
            catch (Exception ex)
            {
                //Do something
                throw ex;
            }
        }
예제 #26
0
            IDatabaseQuery WhereSubquery(string myField, IDatabaseQuery subquery, string targetField, string @operator)
            {
                subquery.AliasPrefix = "Subq" + Guid.NewGuid().ToString().Remove("-").Substring(0, 6);

                var sql = subquery.Provider
                          .GenerateSelectCommand(subquery, subquery.MapColumn(targetField));

                sql = $"{MapColumn(myField)} {@operator} ({sql})";
                Criteria.Add(Criterion.FromSql(sql));

                foreach (var subQueryParam in subquery.Parameters)
                {
                    Parameters.Add(subQueryParam.Key, subQueryParam.Value);
                }

                return(this);
            }
예제 #27
0
        /// <summary>
        /// Finds some random names.
        /// </summary>
        /// <param name="numberOfNames">The number of names.</param>
        /// <returns></returns>
        public static List <String> FindRandomNames(int numberOfNames)
        {
            try
            {
                Criteria criteria = Criteria.For <PeopleNames>();

                criteria
                .Add(Criteria.Order.Random());

                return(PeopleNames.SlicedProjectionFindAll <String>(criteria, "Name", 0, numberOfNames));
            }
            catch (Exception ex)
            {
                //Do something
                throw ex;
            }
        }
예제 #28
0
        /// <summary>
        /// 获得所有者列表
        /// </summary>
        /// <param name="typeID">所有者类型</param>
        /// <param name="objectID">栏目ID或反馈类型ID</param>
        /// <returns>所有者列表</returns>
        public List <string> GetPermissionOwners(int typeID, string objectID)
        {
            List <string> ownerIds = new List <string>();
            Criteria      c        = new Criteria(CriteriaType.Equals, "ObjectID", objectID);

            c.Add(CriteriaType.Equals, "OwnerType", typeID);
            List <Permission> plist = Assistant.List <Permission>(c, null);

            foreach (Permission p in plist)
            {
                if (!ownerIds.Contains(p.OwnerID))
                {
                    ownerIds.Add(p.OwnerID);
                }
            }
            return(ownerIds);
        }
예제 #29
0
        /// <summary>
        /// 查询条件来筛选模型类别
        /// </summary>
        /// <param name="name"></param>
        /// <param name="ids"></param>
        /// <param name="accountName"></param>
        /// <param name="from"></param>
        /// <param name="count"></param>
        /// <returns></returns>
        public List <AdviceType> SearchAdviceTypeByName(string name, List <string> ids, bool accountName, int from, int count)
        {
            try
            {
                Order[] o = new Order[] { new Order("Updated", OrderMode.Desc) };
                if (name != "" || accountName == true)
                {
                    Criteria c = new Criteria(CriteriaType.None);
                    if (name != null && name != "")
                    {
                        c.Add(CriteriaType.Like, "Title", "%" + name + "%");
                    }

                    if (accountName == true)
                    {
                        if (ids != null && ids.Count > 0)
                        {
                            Criteria keyCriteria = new Criteria(CriteriaType.None);
                            foreach (string id in ids)
                            {
                                keyCriteria.Mode = CriteriaMode.Or;
                                keyCriteria.AddOr(CriteriaType.Equals, "AccountID", id);
                                c.Criterias.Add(keyCriteria);
                            }
                        }
                    }
                    if (c.Criterias.Count > 0)
                    {
                        return(Assistant.List <AdviceType>(c, o, from, count));
                    }
                    else
                    {
                        return(null);
                    }
                }
                else
                {
                    return(Assistant.List <AdviceType>(null, o, from, count));
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #30
0
        public void SetCriteria(BlogPostSc sc)
        {
            AddInclude(x => x.Author);

            if (!string.IsNullOrWhiteSpace(sc.Title))
            {
                Criteria.Add(x => x.Title.Contains(sc.Title));
            }

            if (!string.IsNullOrWhiteSpace(sc.AuthorLastname))
            {
                Criteria.Add(x => x.Author.LastName.Contains(sc.AuthorLastname));
            }

            #region PublishedAt

            if (sc.PublishedAtFrom.HasValue && sc.PublishedAtTo.HasValue)
            {
                Criteria.Add(x =>
                             x.PublishedAt.HasValue &&
                             x.PublishedAt.Value.Date >= sc.PublishedAtFrom.Value.Date &&
                             x.PublishedAt.Value.Date <= sc.PublishedAtTo.Value.Date);
            }

            if (sc.PublishedAtFrom.HasValue && !sc.PublishedAtTo.HasValue)
            {
                Criteria.Add(x => x.PublishedAt.HasValue &&
                             x.PublishedAt.Value.Date >= sc.PublishedAtFrom.Value.Date);
            }

            if (!sc.PublishedAtFrom.HasValue && sc.PublishedAtTo.HasValue)
            {
                Criteria.Add(x => x.PublishedAt.HasValue &&
                             x.PublishedAt.Value.Date <= sc.PublishedAtTo.Value.Date);
            }

            #endregion

            if (sc.Status.HasValue)
            {
                Criteria.Add(x => x.Status == sc.Status);
            }

            ApplyPagingAndOrder(sc);
        }
예제 #31
0
 private List<Channel> GetChildren()
 {
     Criteria c = new Criteria(CriteriaType.Like, "FullUrl", Channel.FullUrl + "%");
     c.Add(CriteriaType.Equals, "State", 1);
     c.Add(CriteriaType.NotEquals, "ID", Channel.ID);
     return Assistant.List<Channel>(c, new Order[] { new Order("ID") });
 }
예제 #32
0
 private List<Channel> GetChildren(string ID)
 {
     Criteria c = new Criteria(CriteriaType.Equals, "ParentID", ID);
     c.Add(CriteriaType.Equals, "State", 1);
     //c.Add(CriteriaType.NotEquals, "ID", Channel.ID);
     return Assistant.List<Channel>(c, new Order[] {new Order("index"), new Order("ID") });
 }
		protected bool IsOnSchedule ()
		{
			IEnumerable<ScheduledSessionEntity> sessions = null;
			
			if (UnitOfWork.IsUnitOfWorkStarted ()) {
				var repo = new LocalScheduledSessionsRepository ();
				var criteria = new Criteria ();
				criteria.Add (Condition.Equal<ScheduledSessionEntity> (x => x.Title, _session.Title));
				sessions = repo.Find (criteria);			
			} else {
				using (UnitOfWork.Start()) {
					var repo = new LocalScheduledSessionsRepository ();
					var criteria = new Criteria ();
					criteria.Add (Condition.Equal<ScheduledSessionEntity> (x => x.Title, _session.Title));
					sessions = repo.Find (criteria);
				}
			}
			
			if (sessions != null && sessions.Count () > 0) {
				return true;
			} else {
				return false;
			}
				
		}
예제 #34
0
        /// <summary>
        /// 获取真实数据
        /// </summary>
        private List<Article> GetRealData()
        {
            Criteria c = new Criteria(CriteriaType.None);
            if (IncludeChildren)
            {
                c.Add(CriteriaType.Like, "ChannelFullUrl", Channel.FullUrl + "%");
            }
            else
            {
                c.Add(CriteriaType.Equals, "OwnerID", OwnerID);
            }
            c.Add(CriteriaType.Equals, "State", 1);
            if (!String.IsNullOrEmpty(Tags))
            {
                c.Add(CriteriaType.Like, "Tags", "%'" + Tags + "'%");
            }

            Order[] os = new Order[] { new Order("IsShow", OrderMode.Desc), new Order("Updated", OrderMode.Desc) };
            articles = Assistant.List<Article>(c, os, 0, PageSize, new string[]
                                                                       {
                                                                           "ID", "Title", "ChannelFullUrl",
                                                                           "Created",
                                                                           "SN"
                                                                       });
            return articles;
        }
예제 #35
0
        private void InitCriteria()
        {
            criteria = new Criteria(CriteriaType.None);
            if (string.IsNullOrEmpty(KeyWord))
            {
                if (IncludeChildren && Channel != null)
                {
                    criteria.Add(CriteriaType.Like, "ChannelFullUrl", Channel.FullUrl + "%");
                }
                else
                {
                    criteria.Add(CriteriaType.Equals, "OwnerID", Channel.ID);
                }
            }
            string tag = We7Helper.RemoveHtml(System.Web.HttpUtility.UrlDecode(Request["tag"]));
            if (!String.IsNullOrEmpty(tag))
            {
                criteria.Add(CriteriaType.Like, "Tags", "%" + HttpUtility.UrlDecode(tag) + "%");
            }

            string title = We7Helper.RemoveHtml(System.Web.HttpUtility.UrlDecode(Request["title"]));
            if (!String.IsNullOrEmpty(title))
            {
                criteria.Add(CriteriaType.Like, "Title", "%" + title + "%");
            }

            string channel = We7Helper.RemoveHtml(System.Web.HttpUtility.UrlDecode(Request["channel"]));
            if (!String.IsNullOrEmpty(channel))
            {
                Channel ch = HelperFactory.Instance.GetHelper<ChannelHelper>().GetChannel(channel, null);
                if (ch != null)
                {
                    criteria.Add(CriteriaType.Like, "ChannelFullUrl", ch.FullUrl + "%");
                }
            }

            string author = We7Helper.RemoveHtml(System.Web.HttpUtility.UrlDecode(Request["author"]));
            if (!String.IsNullOrEmpty(author))
            {
                criteria.Add(CriteriaType.Equals, "Author", author);
            }

            if (!string.IsNullOrEmpty(KeyWord))
            {
                Criteria keyCriteria = new Criteria(CriteriaType.None);
                keyCriteria.Mode = CriteriaMode.Or;
                keyCriteria.AddOr(CriteriaType.Like, "Title", "%" + KeyWord + "%");
                keyCriteria.AddOr(CriteriaType.Like, "Description", "%" + KeyWord + "%");
                criteria.Criterias.Add(keyCriteria);
            }

            criteria.Add(CriteriaType.Equals, "State", 1);
        }
예제 #36
0
 /// <summary>
 /// 根据栏目获取文章
 /// </summary>
 /// <param name="ch">栏目</param>
 /// <param name="includechildren">包含子栏目</param>
 /// <param name="from"></param>
 /// <param name="PageSize">页大小</param>
 List<Article> QueryArticlesByChannel(Channel ch, int from, int PageSize)
 {
     Criteria c = new Criteria(CriteriaType.None);
     if (HasChildrenChannel)
     {
         c.Add(CriteriaType.Like, "ChannelFullUrl", ch.FullUrl + "%");
         c.Add(CriteriaType.Equals, "State", 1);
     }
     else
     {
         c.Add(CriteriaType.Equals, "OwnerID", ch.ID);
         c.Add(CriteriaType.Equals, "State", 1);
     }
     if (!String.IsNullOrEmpty(Tags))
     {
         c.Add(CriteriaType.Like, "Tags", "%'" + Tags + "'%");
     }
     Order[] os = IsShow
                      ? new Order[] { new Order("IsShow", OrderMode.Desc), new Order("Updated", OrderMode.Desc) }
                      : new Order[] { new Order("Updated", OrderMode.Desc) };
     return Assistant.List<Article>(c, os, from, PageSize,
                                    new string[] { "ID", "Title", "Updated", "ChannelFullUrl", "Created", "SN" });
 }
예제 #37
0
        /// <summary>
        /// 获得当前栏目下的第一篇文章
        /// </summary>
        /// <returns></returns>
        protected Article GetThisArticle()
        {
            string id = ChannelHelper.GetChannelIDFromURL();
            Channel ch = ChannelHelper.GetChannel(id, null);

            Criteria c = new Criteria(CriteriaType.Equals, "ChannelFullUrl", ch.FullUrl);
            c.Add(CriteriaType.Equals, "State", 1);
            Order[] os = new Order[] { new Order("Updated", OrderMode.Desc) };
            List<Article> aList = Assistant.List<Article>(c, os, 0, 1, new string[]
                                                                           {
                                                                               "ID", "Title", "ChannelFullUrl",
                                                                               "Created","Clicks",
                                                                               "SN","Content","OwnerID","Updated","State"
                                                                           });
            if (aList != null && aList.Count > 0)
            {
                return aList[0];
            }
            else
            {
                return new Article();
            }
        }
예제 #38
0
        /// <summary>
        /// 根据栏目获取文章
        /// </summary>
        protected List<Article> QueryArticlesByChannels()
        {
            #region 将非空的栏目ID添加到 ListOwnerID
            List<string> ListOwnerID = new List<string>(); ;
            if (!string.IsNullOrEmpty(OwnerID1))
                ListOwnerID.Add(OwnerID1);
            if (!string.IsNullOrEmpty(OwnerID2))
                ListOwnerID.Add(OwnerID2);
            if (!string.IsNullOrEmpty(OwnerID3))
                ListOwnerID.Add(OwnerID3);
            if (!string.IsNullOrEmpty(OwnerID4))
                ListOwnerID.Add(OwnerID4);
            if (!string.IsNullOrEmpty(OwnerID5))
                ListOwnerID.Add(OwnerID5);
            if (!string.IsNullOrEmpty(OwnerID6))
                ListOwnerID.Add(OwnerID6);
            if (!string.IsNullOrEmpty(OwnerID7))
                ListOwnerID.Add(OwnerID7);
            if (!string.IsNullOrEmpty(OwnerID8))
                ListOwnerID.Add(OwnerID8);
            if (!string.IsNullOrEmpty(OwnerID9))
                ListOwnerID.Add(OwnerID9);
            if (!string.IsNullOrEmpty(OwnerID10))
                ListOwnerID.Add(OwnerID10);
            #endregion

            Criteria c = new Criteria(CriteriaType.None);
            //c.Add(CriteriaType.Like, "ChannelFullUrl", ch.FullUrl + "%");
            c.Add(CriteriaType.Equals, "State", 1);
            if (!String.IsNullOrEmpty(Tags))
            {
                c.Add(CriteriaType.Like, "Tags", "%'" + Tags + "'%");
            }
            if (ListOwnerID.Count > 0)
            {
                Criteria cOr = new Criteria(CriteriaType.None);
                cOr.Mode = CriteriaMode.Or;
                foreach (string  chID in ListOwnerID)
                {
                    cOr.AddOr(CriteriaType.Equals, "OwnerID", chID);
                }
                c.Criterias.Add(cOr);
            }

            Order[] os = IsShow ? new Order[] { new Order("IsShow", OrderMode.Desc), new Order("Updated", OrderMode.Desc), new Order("ID", OrderMode.Desc) } : new Order[] { new Order("Updated", OrderMode.Desc), new Order("ID", OrderMode.Desc) };
            return Assistant.List<Article>(c, os, 0, PageSize,
                                           new string[] {"ID", "Title", "ChannelFullUrl", "Created", "SN"});
        }