/// <summary> /// 根据条件获取一组用户 /// </summary> /// <param name="departmentID">部门ID</param> /// <param name="selectName">登陆名</param> /// <param name="state">用户状态</param> /// <returns>一组用户信息</returns> public List <Account> GetAccounts(string siteID, string departmentID, string searchKey, OwnerRank type) { Criteria c = new Criteria(CriteriaType.None); if (!string.IsNullOrEmpty(siteID)) { c.Add(CriteriaType.Equals, "FromSiteID", siteID); } if (departmentID != null && departmentID != "") { Criteria subC = new Criteria(CriteriaType.None); subC.Mode = CriteriaMode.Or; subC.AddOr(CriteriaType.Equals, "DepartmentID", departmentID); List <Department> list = GetDepartmentTree(siteID, departmentID); foreach (Department depart in list) { subC.AddOr(CriteriaType.Equals, "DepartmentID", depart.ID); } c.Criterias.Add(subC); } if (type != OwnerRank.All) { c.Add(CriteriaType.Equals, "UserType", (int)type); } if (!string.IsNullOrEmpty(searchKey)) { c.Add(CriteriaType.Like, "LoginName", "%" + searchKey + "%"); } Order[] o = new Order[] { new Order("Created", OrderMode.Desc) }; return(c.Criterias.Count > 0 ? Assistant.List <Account>(c, o) : new List <Account>()); }
/// <summary> /// 创建查询条件 /// </summary> /// <returns></returns> protected virtual Criteria CreateListCriteria() { Criteria c = new Criteria(CriteriaType.Equals, "TypeID", AdviceTypeID); if (!Html.IsPostBack) //如果是安全查询,则默认不显示信息 { c.Add(CriteriaType.NotEquals, "TypeID", AdviceTypeID); } if (Html.IsPostBack) { string sn = Html.Request <string>("SN"); string keyword = Html.Request <string>("KeyWord"); string password = Html.Request <string>("Password"); if (SecurityQuery) { c.Add(CriteriaType.Equals, "SN", sn); c.Add(CriteriaType.Equals, "MyQueryPwd", (password ?? "").Trim()); } else { Criteria subC = new Criteria(CriteriaType.None); subC.Mode = CriteriaMode.Or; subC.AddOr(CriteriaType.Equals, "SN", sn); subC.AddOr(CriteriaType.Like, "Title", "%" + keyword + "%"); c.Criterias.Add(subC); } } return(c); }
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 = Request["tag"]; if (!String.IsNullOrEmpty(tag)) { criteria.Add(CriteriaType.Like, "Tags", "%" + HttpUtility.UrlDecode(tag) + "%"); } string title = Request["title"]; if (!String.IsNullOrEmpty(title)) { criteria.Add(CriteriaType.Like, "Title", "%" + title + "%"); } string channel = 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 = 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); }
public static Criteria CreateModelCondition() { Criteria c = new Criteria(CriteriaType.None); c.Mode = CriteriaMode.Or; c.AddOr(CriteriaType.Equals, "ModelName", Constants.ArticleModelName); c.AddOr(CriteriaType.Equals, "ModelName", string.Empty); c.AddOr(CriteriaType.IsNull, "ModelName", null); return(c); }
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); } }
private void InstanceCriteria(IQueryCondition condition) { if (condition.JoinInfo != null) { foreach (var join in condition.JoinInfo.Values) { Criteria joincriteria = new Criteria(CriteriaType.None); getJoinCriteria(condition, join, condition.Condition, ref joincriteria); if (joincriteria.Criterias != null && joincriteria.Criterias.Count != 0) { tablename = join.ToTableName; List <TableInfo> aList = IDatabase.GetDtByCondition <TableInfo>(join.ToTableName, joincriteria, new string[] { condition.PriMaryKeyName }); Criteria c = new Criteria(CriteriaType.None); if (aList[0].Table != null && aList[0].Table.Rows != null && aList[0].Table.Rows.Count > 0) { c.Mode = CriteriaMode.Or; foreach (DataRow item in aList[0].Table.Rows) { c.AddOr(CriteriaType.Equals, join.MainField, item[0]); } condition.Condition.Criterias.Add(c); } else { condition.Condition.Add(CriteriaType.Equals, condition.PriMaryKeyName, "no"); } } } } }
/// <summary> /// 取得用户的评论 /// </summary> /// <param name="id">用户ID</param> /// <param name="begin">起始记录</param> /// <param name="count">查询的条数</param> /// <returns></returns> public List <Comments> GetAllComments(string id, int begin, int count) { if (id == "{00000000-0000-0000-0000-000000000000}") { return(null); } Criteria c = new Criteria(CriteriaType.Equals, "AccountID", id); List <Article> articleList = Assistant.List <Article>(c, null); if (articleList != null) { Criteria subc = new Criteria(CriteriaType.None); subc.Mode = CriteriaMode.Or; foreach (Article article in articleList) { subc.AddOr(CriteriaType.Equals, "ArticleID", article.ID); } Order[] orders = new Order[] { new Order("Updated", OrderMode.Desc) }; return(Assistant.List <Comments>(subc, orders, begin, count)); } else { return(null); } }
public List <Permission> GetPermissions(List <string> allowOwners, List <string> levels) { List <string> list = new List <string>(); Criteria c = new Criteria(CriteriaType.None); if (allowOwners.Count != 0) { Criteria subC = new Criteria(CriteriaType.None); subC.Mode = CriteriaMode.Or; foreach (string owner in allowOwners) { subC.AddOr(CriteriaType.Equals, "OwnerID", owner); } c.Criterias.Add(subC); } if (levels != null) { Criteria subLevel = new Criteria(CriteriaType.None); foreach (string level in levels) { subLevel.AddOr(CriteriaType.Equals, "Content", level); } c.Criterias.Add(subLevel); } List <Permission> ps = Assistant.List <Permission>(c, null); return(ps); }
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); }
/// <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; } }
/// <summary> /// 根据用户ID列表,查询用户信息 /// </summary> /// <param name="ownerIds">用户ID列表</param> /// <returns>用户信息列表</returns> public List <Account> GetAccountList(List <string> ownerIds) { Criteria c = new Criteria(CriteriaType.None); c.Mode = CriteriaMode.Or; if (ownerIds != null && ownerIds.Count > 0) { foreach (string id in ownerIds) { c.AddOr(CriteriaType.Equals, "ID", id); } return(Assistant.List <Account>(c, null)); } else { return(null); } }
public DataTable Join(DataTable result, IJoin join, IConnection conn = null) { /* * 这个方法的意思是:放一个result进来。 然后去数据库查询相关关联数据。完了之后返回。 * 由于时间仓促,如果您觉得这个方法不适用,或者有些奇怪的代码。 不妨大胆的改进吧。 * author:丁乐 */ if (join == null || join.JoinInfo == null) { return(result); } if (result != null && result.Rows != null && result.Rows.Count > 0) { DataTable ResultDt = result; foreach (var item in join.JoinInfo) { Criteria c = new Criteria(CriteriaType.None); c.Mode = CriteriaMode.Or; foreach (DataRow row in ResultDt.Rows) { c.AddOr(CriteriaType.Equals, item.Value.PriMaryKeyName, row[item.Key]);//外键列当前行的值 } //表连接条件 List <TableInfo> list; TableInfo t = new TableInfo(item.Value.ToTableName); list = new DataBaseForThinkment(item.Value.ToTableName).IDatabase.GetDtByCondition <TableInfo>(t.TableName, c, new string[] { item.Value.PriMaryKeyName, item.Value.ToField }, conn); //查询关联信息 if (list != null && list[0].Table != null && list[0].Table.Rows != null && list[0].Table.Rows.Count > 0) { //填充 foreach (DataRow temp in ResultDt.Rows) { DataRow[] rows = list[0].Table.Select(item.Value.PriMaryKeyName + "= '" + temp[item.Key] + "'"); if (rows != null && rows.Length > 0) { temp[item.Key] = rows[0][1]; } } } } } return(result); }
Criteria CreateCriteriaFromState(MessageState state, string senderID, string receiverID) { Criteria c = null; if (state == MessageState.Inbox) { //TODO::此处条件有问题 Criteria sc = new Criteria(CriteriaType.Equals, "State", ((int)MessageState.NewMessage).ToString()); // sc.AddOr(CriteriaType.Equals, "State", ((int)state).ToString()); c = new Criteria(CriteriaType.Equals, "ReceiverID", receiverID); c.Criterias.Add(sc); } else if (state == MessageState.Outbox) { c = new Criteria(CriteriaType.Equals, "State", ((int)state).ToString()); c.Add(CriteriaType.Equals, "AccountID", senderID); } else if (state == MessageState.AllSMS) { Criteria sc = new Criteria(CriteriaType.Equals, "State", ((int)MessageState.Failure).ToString()); sc.AddOr(CriteriaType.Equals, "State", ((int)MessageState.Success).ToString()); c = new Criteria(CriteriaType.Equals, "AccountID", senderID); c.Criterias.Add(sc); } else { c = new Criteria(CriteriaType.Equals, "State", ((int)state).ToString()); if (!string.IsNullOrEmpty(senderID)) { c.Add(CriteriaType.Equals, "AccountID", senderID); } if (!string.IsNullOrEmpty(receiverID)) { c.Add(CriteriaType.Equals, "ReceiverID", receiverID); } } return(c); }
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); }
/// <summary> /// 根据查询条件查询数据总数 /// </summary> /// <param name="selectName"></param> /// <param name="ids"></param> /// <param name="accountName"></param> /// <returns></returns> public int GetAdviceTypeCountByName(string selectName, List <string> ids, bool accountName) { if (selectName != "" || accountName == true) { Criteria c = new Criteria(CriteriaType.None); if (selectName != null && selectName != "") { c.Add(CriteriaType.Like, "Title", "%" + selectName + "%"); } 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.Count <AdviceType>(c)); } else { return(0); } } else { return(Assistant.Count <AdviceType>(null)); } }
/// <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"}); }
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); }
/// <summary> /// 更新模型xml /// </summary> /// <returns></returns> public static void UpdataModel(IQueryCondition condition) { string ModelXml = condition.HasModelXml; //数据模型信息 if (!string.IsNullOrEmpty(ModelXml) && condition.OperType == Enum_operType.Update) { List <string> list = new List <string>(condition.Fields); list.Add(ModelXml); if (!list.Contains(condition.PriMaryKeyName)) { list.Add(condition.PriMaryKeyName); //加上主键 } MoldPanel mp = new MoldPanel(); PanelContext data = mp.GetPanelContext(condition.ModelName, "list"); //设置为List类型(暂时写死) Criteria criteria = new Criteria(CriteriaType.None); criteria.Mode = CriteriaMode.Or; foreach (var item in condition.ID.Split(',')) { criteria.AddOr(CriteriaType.Equals, condition.PriMaryKeyName, item); } TableInfo tableinfo = new TableInfo(data.Model.Type.ToString()); var tablelist = getDataBase(tableinfo).IDatabase.GetDtByCondition <TableInfo>(data.Model.Type.ToString(), criteria, list.ToArray()); //获取对应字段,的table信息 DataTable dt = null != tablelist ? tablelist[0].Table : null; condition.OperType = Enum_operType.Update; //设为修改类型 foreach (DataRow item in dt.Rows) { if (item[ModelXml] != DBNull.Value && item != null) { List <FieldsDic> Fileds = new List <FieldsDic>(); // 最终字典 DataSet ds = BaseDataProvider.CreateDataSet(data.Model); //穿件数据集 BaseDataProvider.ReadXml(ds, item[ModelXml].ToString()); var files = condition.ConditionDic; //获取到的字典 if (!files.Exists(delegate(FieldsDic f) { if (string.Compare(f.Key, ModelXml, true) == 0) { return(true); } else { return(false); } })) //添加XML扩展字段 { files.Add(new FieldsDic(ModelXml, string.Empty)); } foreach (var file in files) { if (!file.Key.ToUpper().Equals(condition.PriMaryKeyName) && ds.Tables[data.Table.Name].Columns.Contains(file.Key)) { ds.Tables[data.Table.Name].Rows[0][file.Key] = file.Value; //赋值 if (!Fileds.Exists(delegate(FieldsDic f) { if (string.Compare(f.Key, condition.HasModelXml, true) == 0) { return(true); } else { return(false); } })) { files.Add(new FieldsDic(file.Key, file.Value)); } } } Fileds.Find(delegate(FieldsDic f) { if (string.Compare(f.Key, ModelXml, true) == 0) { f.Value = BaseDataProvider.GetXml(ds); //拿到XML 赋值 return(true); } else { return(false); } }); TableInfo ti = new TableInfo(data.Model.Type.ToString(), item[condition.PriMaryKeyName].ToString(), Fileds); list.Remove(condition.PriMaryKeyName); TryUpData(condition, list, ti, data.Model.Type.ToString(), true); } } QueryCondition.SetMessage(condition, "模型字段:" + condition.HasModelXml, false, "修改", string.Empty, dt.Rows.Count); } }
/// <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" })); }
Criteria CreateCriteriaByAll(ArticleQuery query) { string parameters; string modelname = ChannelHelper.GetModelName(query.ChannelID, out parameters); Criteria c = new Criteria(CriteriaType.None); if (string.IsNullOrEmpty(modelname) && !string.IsNullOrEmpty(query.EnumState)) { Criteria csubC = new Criteria(); csubC.Name = "EnumState"; csubC.Value = query.EnumState; if (query.ExcludeThisChannel) { csubC.Type = CriteriaType.NotEquals; } else { csubC.Type = CriteriaType.Equals; } csubC.Adorn = Adorns.SubString; csubC.Start = EnumLibrary.Position[(int)EnumLibrary.Business.ArticleType]; csubC.Length = EnumLibrary.PlaceLength; c.Criterias.Add(csubC); } if (string.IsNullOrEmpty(query.ModelName) || Constants.ArticleModelName.Equals(query.ModelName, StringComparison.OrdinalIgnoreCase)) { AppendModelCondition(c); } if (query.State != ArticleStates.All) { c.Add(CriteriaType.Equals, "State", (int)query.State); } if (query.ArticleType > 0) { c.Add(CriteriaType.Equals, "ContentType", query.ArticleType); } else { c.Add(CriteriaType.NotEquals, "ContentType", 16); } if (!string.IsNullOrEmpty(query.KeyWord)) { Criteria keyCriteria = new Criteria(CriteriaType.None); keyCriteria.Mode = CriteriaMode.Or; keyCriteria.AddOr(CriteriaType.Like, "Title", "%" + query.KeyWord + "%"); keyCriteria.AddOr(CriteriaType.Like, "Description", "%" + query.KeyWord + "%"); c.Criterias.Add(keyCriteria); } if (!string.IsNullOrEmpty(query.Author)) { c.Add(CriteriaType.Like, "Author", "%" + query.Author + "%"); } if (query.BeginDate <= query.EndDate) { if (query.BeginDate != DateTime.MinValue) { c.Add(CriteriaType.MoreThanEquals, "Updated", query.BeginDate); } if (query.EndDate != DateTime.MinValue && query.EndDate != DateTime.MaxValue) { c.Add(CriteriaType.LessThanEquals, "Updated", query.EndDate.AddDays(1)); } } else { if (query.EndDate != DateTime.MinValue) { c.Add(CriteriaType.MoreThanEquals, "Updated", query.EndDate); } if (query.BeginDate != DateTime.MaxValue) { c.Add(CriteriaType.LessThanEquals, "Updated", query.BeginDate.AddDays(1)); } } if (!We7Helper.IsEmptyID(query.ChannelID)) { if (CheckModel(modelname)) { c.Add(CriteriaType.Equals, "ModelName", modelname); if (!string.IsNullOrEmpty(parameters)) { CriteriaExpressionHelper.Execute(c, parameters); } } else { if (query.ExcludeThisChannel) { if (query.IncludeAllSons) { c.Add(CriteriaType.NotLike, "ChannelFullUrl", query.ChannelFullUrl + "%"); } else { c.Add(CriteriaType.NotEquals, "OwnerID", query.ChannelID); } } else { if (query.IncludeAllSons) { c.Add(CriteriaType.Like, "ChannelFullUrl", query.ChannelFullUrl + "%"); } else { if (query.ChannelID.Contains(",")) { string[] oids = query.ChannelID.Split(','); Criteria subC = new Criteria(CriteriaType.None); subC.Mode = CriteriaMode.Or; foreach (string oid in oids) { subC.Add(CriteriaType.Equals, "OwnerID", oid); } c.Criterias.Add(subC); } else { c.Add(CriteriaType.Equals, "OwnerID", query.ChannelID); } } } } } if (!We7Helper.IsEmptyID(query.AccountID)) { Channel channel = ChannelHelper.GetChannel(query.ChannelID, null); if (query.IncludeAdministrable) { List <string> channels = AccountHelper.GetObjectsByPermission(query.AccountID, "Channel.Article"); Criteria keyCriteria = new Criteria(CriteriaType.None); if (channels != null && channels.Count > 0) { keyCriteria.Mode = CriteriaMode.Or; foreach (string ownerID in channels) { keyCriteria.AddOr(CriteriaType.Equals, "OwnerID", ownerID); } } keyCriteria.AddOr(CriteriaType.Equals, "AccountID", query.AccountID); if (keyCriteria.Criterias.Count > 0) { c.Criterias.Add(keyCriteria); } } else { c.Add(CriteriaType.Equals, "AccountID", query.AccountID); } } if (query.IsShowHome != null && query.IsShowHome == "1") { c.Add(CriteriaType.Equals, "IsShow", 1); } if (!string.IsNullOrEmpty(query.Tag)) { c.Add(CriteriaType.Like, "Tags", "%" + query.Tag + "%"); } if (query.IsImage != null && query.IsImage == "1") { c.Add(CriteriaType.Equals, "IsImage", 1); } if (query.Overdue) { Criteria subC = new Criteria(CriteriaType.None); subC.Mode = CriteriaMode.Or; Criteria subChildC1 = new Criteria(CriteriaType.MoreThanEquals, "Overdue", DateTime.Now); subC.Criterias.Add(subChildC1); Criteria subChildC2 = new Criteria(CriteriaType.Equals, "Overdue", DateTime.MinValue); subC.Criterias.Add(subChildC2); Criteria subChildC3 = new Criteria(CriteriaType.LessThanEquals, "Overdue", DateTime.Today.AddYears(-30)); subC.Criterias.Add(subChildC3); c.Criterias.Add(subC); } if (!string.IsNullOrEmpty(query.ArticleParentID)) { c.Add(CriteriaType.Equals, "ParentID", query.ArticleParentID); } //if (!string.IsNullOrEmpty(query.SearcherKey)) if (!string.IsNullOrEmpty(query.ArticleID)) { c.Add(CriteriaType.Like, "ListKeys", "%" + query.ArticleID + "%"); } return(c); }