public RouteValueDictionary GetFilterRouteValues() { if (StatelessFilter != null) { return(StatelessFilter.GetFilterRouteValues()); } return(null); }
public string GetWhereClause(bool ignoreChildTables = false, int?limitByUserId = null) { var sb = new StringBuilder(); var parentType = typeof(T); var linkedTableInfos = GetLinkedTableInfos(); foreach (var columnInfo in GetDataBoundColumnInfosNotIdColumns()) { var linkedTable = linkedTableInfos.FirstOrDefault(c => c.ColumnName == columnInfo.Data); var searchValue = !string.IsNullOrEmpty(SearchValue) ? GetLikeSearchValue() : (!string.IsNullOrEmpty(columnInfo.SearchValue) ? columnInfo.GetLikeSearchValue() : string.Empty); if (!string.IsNullOrEmpty(searchValue)) { if (linkedTable != null) { if (!ignoreChildTables) { sb.Append(sb.Length == 0 ? "WHERE (" : " OR "); sb.AppendFormat("[{0}].[{1}] LIKE '{2}'", linkedTable.LinkedTableName, linkedTable.LinkedTableColumnName, searchValue); } } else { sb.Append(sb.Length == 0 ? "WHERE (" : " OR "); sb.AppendFormat("[{0}].[{1}] LIKE '{2}'", parentType.Name, columnInfo.Data, searchValue); } } } if (sb.Length > 0) { sb.Append(")"); } if (limitByUserId.HasValue) { if (!typeof(T).ImplementsIUserData()) { throw new LimitByUserIdException(); } sb.Append(sb.Length == 0 ? "WHERE " : " AND "); sb.AppendFormat("[{0}].[UserId] = {1}", parentType.Name, limitByUserId.Value); } if (StatelessFilter != null && StatelessFilter.IsSet()) { sb.Append(sb.Length == 0 ? "WHERE " : " AND "); sb.AppendFormat("[{0}].[{1}] = {2}", parentType.Name, StatelessFilter.Key, StatelessFilter.Id); } sb.Append(sb.Length == 0 ? "WHERE " : " AND "); sb.Append($"[{parentType.Name}].[IsDeleted] = 0"); return(sb.ToString()); }