高级搜索模型 - AddIQueryItemByAdvSearchAssist
2017-02-19 10:20:13 访问(1559) 赞(0) 踩(0)
-
/// <summary>
/// 高级搜索模型 - AddIQueryItemByAdvSearchAssist
/// </summary>
/// <param name="_listAdvSearchAssist"></param>
/// <param name="_theValue"></param>
public void AddIQueryItemByAdvSearchAssist
(
List<AdvSearchAssist> _listAdvSearchAssist,
string _theValue
)
{
if (_listAdvSearchAssist == null)
return;
int nameLen = _listAdvSearchAssist.Count;
if (nameLen == 0)
return;
if (_theValue == null || _theValue.Length == 0)
return;
_theValue = _theValue.Trim();
if (_theValue.Length == 0)
return;
string[] valueArray = _theValue.Split(new char[] { ' ' });
int valueLen = valueArray.Length;
if (valueLen == 0)
return;
AdvSearchAssist advSearchAssistValue = null;
if (nameLen == 1)
{
if (valueLen == 1)
{
advSearchAssistValue = _listAdvSearchAssist[0];
if (advSearchAssistValue.isLike)
{
if (advSearchAssistValue.isLower)
{
m_ListIQueryItem.Add
(
new DataColumnQueryItem
(
advSearchAssistValue.info,
SlowX.Core.CoreClasses.DataColumnQueryAssist.dataColumnQueryAssistEmStringCaseLower,
SlowX.Core.Enums.SqlLink.EmSqlLink._Like_,
valueArray[0].Trim().ToLower()
)
);
}
else
{
m_ListIQueryItem.Add
(
new DataColumnQueryItem
(
advSearchAssistValue.info,
SlowX.Core.Enums.SqlLink.EmSqlLink._Like_,
valueArray[0].Trim()
)
);
}
}
else
{
if (advSearchAssistValue.isLower)
{
m_ListIQueryItem.Add
(
new DataColumnQueryItem
(
advSearchAssistValue.info,
SlowX.Core.CoreClasses.DataColumnQueryAssist.dataColumnQueryAssistEmStringCaseLower,
SlowX.Core.Enums.SqlLink.EmSqlLink.Like,
valueArray[0].Trim().ToLower()
)
);
}
else
{
m_ListIQueryItem.Add
(
new DataColumnQueryItem
(
advSearchAssistValue.info,
SlowX.Core.Enums.SqlLink.EmSqlLink.Like,
valueArray[0].Trim()
)
);
}
}
}
else
{
GroupQueryItem gi = new GroupQueryItem(Enums.SqlConditionLink.EmSqlConditionLink.and);
m_ListIQueryItem.Add
(
gi
);
foreach (string sValue in valueArray)
{
if (sValue == null || sValue.Trim().Length == 0)
continue;
gi.AddIQueryItemWithEntityFieldInfoParams
(
Enums.SqlConditionLink.EmSqlConditionLink.and,
advSearchAssistValue.info,
advSearchAssistValue.isLower,
advSearchAssistValue.isLike,
sValue.Trim()
);
}
}
}
else
{
string tmpValue = "";
if (valueLen == 1)
{
tmpValue = valueArray[0].Trim();
GroupQueryItem gi = new GroupQueryItem(Enums.SqlConditionLink.EmSqlConditionLink.and);
m_ListIQueryItem.Add
(
gi
);
for (int i = 0; i < nameLen; ++i)
{
advSearchAssistValue = _listAdvSearchAssist[i];
gi.AddIQueryItemWithEntityFieldInfoParams
(
Enums.SqlConditionLink.EmSqlConditionLink.or,
advSearchAssistValue.info,
advSearchAssistValue.isLower,
advSearchAssistValue.isLike,
tmpValue
);
}
}
else
{
GroupQueryItem gTotal = new GroupQueryItem(Enums.SqlConditionLink.EmSqlConditionLink.and);
GroupQueryItem gi = null;
m_ListIQueryItem.Add
(
gTotal
);
foreach (string sValue in valueArray)
{
if (sValue == null)
continue;
tmpValue = sValue.Trim();
if (tmpValue.Length == 0)
continue;
gi = new GroupQueryItem(Enums.SqlConditionLink.EmSqlConditionLink.and);
gTotal.AddGroupQueryItem
(
gi
);
for (int i = 0; i < nameLen; ++i)
{
advSearchAssistValue = _listAdvSearchAssist[i];
gi.AddIQueryItemWithEntityFieldInfoParams
(
Enums.SqlConditionLink.EmSqlConditionLink.or,
advSearchAssistValue.info,
advSearchAssistValue.isLower,
advSearchAssistValue.isLike,
tmpValue
);
}
}
}
}
}
-
using System;
using System.Collections.Generic;
using System.Text;
using SlowX.Core.ICoreClasses;
using SlowX.Core.Classes;
using System.Reflection;
namespace SlowX.Core.CoreClasses
{
/// <summary>
/// 高级搜索的辅助配置
/// </summary>
[Serializable]
public class AdvSearchAssist
{
/// <summary>
/// 字段查询的辅助配置
/// </summary>
/// <param name="_info"></param>
/// <param name="_isLower"></param>
/// <param name="_isLike"></param>
public AdvSearchAssist
(
EntityFieldInfo _info,
bool _isLower,
bool _isLike
)
{
m_info = _info;
m_isLike = _isLike;
m_isLower = _isLower;
}
/// <summary>
///
/// </summary>
protected EntityFieldInfo m_info = null;
/// <summary>
/// 获得
/// </summary>
public EntityFieldInfo info
{
get
{
return m_info;
}
}
/// <summary>
/// 是否小写查询
/// </summary>
protected bool m_isLower = true;
/// <summary>
/// 是否小写查询
/// </summary>
public bool isLower
{
get
{
return m_isLower;
}
}
/// <summary>
/// 是否Like查询
/// </summary>
protected bool m_isLike = true;
/// <summary>
/// 是否Like查询
/// </summary>
public bool isLike
{
get
{
return m_isLike;
}
}
}
}
标签:
高级搜索模型 - AddIQueryItemByAdvSearchAssist 


上一条:
下一条:
相关评论
发表评论