Exemplo n.º 1
0
 /// <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;
 }
Exemplo n.º 2
0
        public bool DoesSearchQueryContain(string queryBy)
        {
            if (IsSearchQuery())
            {
                return(QueryBy.IndexOf(queryBy, StringComparison.OrdinalIgnoreCase) >= 0);
            }

            return(false);
        }
Exemplo n.º 3
0
        public List <string> GetSplittedQueryBy()
        {
            if (IsSearchQuery())
            {
                return(QueryBy
                       .Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries)
                       .Select(q => q.Trim())
                       .ToList());
            }

            return(new List <string>());
        }
Exemplo n.º 4
0
        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;
        }
Exemplo n.º 5
0
 public XmlDocument Query(QueryBy queryBy,
     ParameterCollection parameters,
     IEnumerable<string> ids)
 {
     return Query(queryBy, parameters, ids, _highLimits ? 500 : 50, true);
 }
Exemplo n.º 6
0
 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;
 }
Exemplo n.º 8
0
        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;
 }