示例#1
0
文件: Query.cs 项目: zorkind/dargus
        public override string ToString()
        {
            if (ConsultQuery == null)
            {
                return(base.ToString());
            }

            return(ConsultQuery.ToString());
        }
示例#2
0
文件: Query.cs 项目: zorkind/dargus
        public void BuildQuery()
        {
            if (ConsultQuery.Length != 0)
            {
                ConsultQuery.Clear();
            }

            //Setup Top
            if (Top != null && Top != 0)
            {
                ConsultQuery.AppendLine("select top ").Append(Top.Value.ToString()).Append(" ").Append(Fields.ToString()).Append(Entities.ToString()).Append(Where.ToString());
            }
            else
            {
                ConsultQuery.AppendLine("select ").Append(Fields.ToString()).Append(Entities.ToString()).Append(Where.ToString());
            }

            if (EnableGroupBy)
            {
                ConsultQuery.AppendFormat("group by {0}", FieldsWithoutAlias.ToString());
            }

            //Setup OrderBy
            if (OrderBy.Length != 0)
            {
                ConsultQuery.Append(" order by ").AppendLine(string.Join(", ", OrderBy));
            }

            //Setup Pagination
            if (Paginate.Enabled)
            {
                StringBuilder TotalRowsCount = new StringBuilder();
                if (EnableGroupBy)
                {
                    TotalRowsCount.Append("set @totalRows = (select count(*) from (select 1 as [1] ")
                    .Append(Entities.ToString())
                    .Append(Where.ToString())
                    .AppendFormat("group by {0}", FieldsWithoutAlias.ToString())
                    .Append(") as tbCC)").AppendLine().AppendLine();
                }
                else
                {
                    TotalRowsCount.Append("set @totalRows = (select count(*) ").Append(Entities.ToString()).Append(Where.ToString()).Append(")").AppendLine().AppendLine();
                }

                ConsultQuery.Insert(0, TotalRowsCount).AppendLine(" OFFSET ((@PageNumber - 1) * @RowspPage) ROWS").AppendLine(" FETCH NEXT @RowspPage ROWS ONLY");
            }
        }
 public async Task <IActionResult> Page(ConsultQuery consultQuery)
 {
     return(Success(await _consultService.PageAsync(consultQuery)));
 }
 public async Task <IActionResult> Get(ConsultQuery consultQuery)
 {
     return(Success(await _consultService.RetrieveAsync(consultQuery)));
 }