/// <summary> /// A post query is always associated with a nav. /// </summary> /// <param name="navSlug"></param> public PostQuery(Nav nav, QueryBy queryBy, int pageIndex) { this.Nav = nav; this.QueryBy = queryBy; this.PageIndex = pageIndex; this.PageSize = BlogConfig.PostList_PageSize; }
public bool DoesSearchQueryContain(string queryBy) { if (IsSearchQuery()) { return(QueryBy.IndexOf(queryBy, StringComparison.OrdinalIgnoreCase) >= 0); } return(false); }
public List <string> GetSplittedQueryBy() { if (IsSearchQuery()) { return(QueryBy .Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries) .Select(q => q.Trim()) .ToList()); } return(new List <string>()); }
public XmlDocument Query(QueryBy queryBy, ParameterCollection parameters, IEnumerable<string> ids, int limit, bool all) { string keyword = ""; switch (queryBy) { case QueryBy.IDs: keyword = "pageids"; break; case QueryBy.Revisions: keyword = "revids"; break; case QueryBy.Titles: keyword = "titles"; break; } XmlDocument document = new XmlDocument(); StringBuilder idsString = new StringBuilder(); int index = 0; foreach (string id in ids) { if (index < limit) { idsString.Append("|" + id); ++index; } else { idsString.Remove(0, 1); ParameterCollection localParameters = new ParameterCollection(parameters); localParameters.Add(keyword, idsString.ToString()); string query = PrepareQuery(Action.Query, localParameters); Enumerate(localParameters, document, all); index = 1; idsString = new StringBuilder("|" + id); } } if (index > 0) { idsString.Remove(0, 1); ParameterCollection localParameters = new ParameterCollection(parameters); localParameters.Add(keyword, idsString.ToString()); string query = PrepareQuery(Action.Query, localParameters); Enumerate(localParameters, document, all); } return document; }
public XmlDocument Query(QueryBy queryBy, ParameterCollection parameters, IEnumerable<string> ids) { return Query(queryBy, parameters, ids, _highLimits ? 500 : 50, true); }
public XmlDocument Query(QueryBy queryBy, ParameterCollection parameters, string id) { return Query(queryBy, parameters, new string[] { id }, _highLimits ? 500 : 50, true); }
public GetClubAircraftListQuery(QueryBy queryBy, string clubName, int id) { QueryBy = queryBy; ClubName = clubName; Id = id; }
public string Select() { var parameterIndex = -1; SelectBy = "*"; FromBy = GetFromBy(); #region WhereBy var whereBy = new List <string>(); var types = new ParameterType[] { ParameterType.WorkOf, ParameterType.PrimaryOf, ParameterType.UserOf, ParameterType.KeyOf, ParameterType.Where }; foreach (var type in types) { var builder = new List <string>(); var parameters = Query.Parameters.Where(p => p.Type == type).ToList(); if (parameters == null || parameters.Count == 0) { continue; } foreach (var parameter in parameters) { parameterIndex++; if (parameter.Type == ParameterType.KeyOf) { builder.Add($"{parameter.Field} Like %@{parameterIndex}%"); } else { builder.Add($"{parameter.Field}=@{parameterIndex}"); } if (parameter.Value == null) { ValueBy.Add(string.Empty); } else { ValueBy.Add(parameter.Value.ToString().ToLowerInvariant()); } } if (parameters.Count > 1) { whereBy.Add("(" + string.Join(Query.IsAny ? " OR " : " AND ", builder) + ")"); } else { whereBy.Add(string.Join(Query.IsAny ? " OR " : " AND ", builder)); } } #endregion WhereBy = string.Join(" AND ", whereBy); if (Query.OrderBy.Count > 0) { var direction = Query.OrderBy.Direction == OrderByDirection.Asc ? "Asc" : Query.OrderBy.Direction == OrderByDirection.Desc ? "Desc" : "Asc"; OrderBy = string.Join(",", Query.OrderBy) + " " + direction; } var queryBy = new QueryBy(); queryBy.Add($"SELECT {SelectBy}"); queryBy.Add($"FROM {FromBy}"); if (Query.HasParameters) { queryBy.Add($"WHERE {whereBy}"); } if (Query.HasOrderBy) { queryBy.Add($"ORDER BY {OrderBy}"); } if (Query.HasPager) { queryBy.Add($"LIMIT {Take} OFFSET {Skip}"); } return(string.Join(" ", queryBy)); }
public GetClubMembersListQuery(QueryBy queryBy, string clubName, int id) { QueryBy = queryBy; ClubName = clubName; Id = id; }