Exemple #1
0
 /// <summary>
 /// Get max data row for orderby Id
 /// </summary>
 /// <param name="orderBy"></param>
 /// <param name="isTrack"></param>
 /// <returns></returns>
 public static async Task <T> MaxAsync(IOrderByClause <T> orderBy, bool isTrack = true)
 {
     using (DataRepository <T> repoSystemCode = new DataRepository <T>(new ColligoO365RMOEntities()))
     {
         return(await repoSystemCode.MaxAsync(orderBy, isTrack));
     }
 }
Exemple #2
0
        /// <summary>
        /// Get max data row for orderby Id
        /// </summary>
        /// <param name="orderBy"></param>
        /// <param name="isTrack"></param>
        /// <returns></returns>
        public async Task <T> MaxAsync(IOrderByClause <T> orderBy, bool isTrack = true)
        {
            IQueryable <T> data        = isTrack ? this.objectSet.AsQueryable <T>() : this.objectSet.AsNoTracking <T>();
            bool           isFirstSort = true;

            data = orderBy.ApplySort(data, isFirstSort);
            return(await data.FirstOrDefaultAsync());
        }
Exemple #3
0
 internal OrderByClause(
     ISelectQuery selectQuery,
     IOrderByClause clone,
     Dictionary <ICloneableElement, ICloneableElement> objectTree,
     Predicate <ICloneableElement> doClone)
     : base(selectQuery)
 {
     Items.AddRange(clone.Items.Select(item => (IOrderByItem)item.Clone(objectTree, doClone)));
 }
 /// <summary>
 /// 克隆
 /// </summary>
 /// <param name="sqlBuilder">源生成器</param>
 protected void Clone(SqlBuilderBase sqlBuilder)
 {
     EntityMatedata    = sqlBuilder.EntityMatedata;
     _parameterManager = sqlBuilder._parameterManager?.Clone();
     EntityResolver    = sqlBuilder.EntityResolver ?? new EntityResolver(EntityMatedata);
     AliasRegister     = sqlBuilder.AliasRegister?.Clone() ?? new EntityAliasRegister();
     _selectClause     = sqlBuilder._selectClause?.Clone(this, AliasRegister);
     _fromClause       = sqlBuilder._fromClause?.Clone(AliasRegister);
     _joinClause       = sqlBuilder._joinClause?.Clone(this, AliasRegister);
     _whereClause      = sqlBuilder._whereClause?.Clone(AliasRegister, _parameterManager);
     _groupByClause    = sqlBuilder._groupByClause?.Clone(AliasRegister);
     _orderByClause    = sqlBuilder._orderByClause?.Clone(AliasRegister);
     _pager            = sqlBuilder._pager;
 }
 /// <summary>
 /// 复制Sql生成器
 /// </summary>
 /// <param name="sqlBuilder">源生成器</param>
 protected void Clone(SqlBuilderBase sqlBuilder)
 {
     EntityMatedata    = sqlBuilder.EntityMatedata;
     _parameterManager = sqlBuilder._parameterManager?.Clone();
     EntityResolver    = sqlBuilder.EntityResolver ?? new EntityResolver(EntityMatedata);
     AliasRegister     = sqlBuilder.AliasRegister?.Clone() ?? new EntityAliasRegister();
     _selectClause     = sqlBuilder._selectClause?.Clone(this, AliasRegister);
     _fromClause       = sqlBuilder._fromClause?.Clone(this, AliasRegister);
     _joinClause       = sqlBuilder._joinClause?.Clone(this, AliasRegister, _parameterManager);
     _whereClause      = sqlBuilder._whereClause?.Clone(this, AliasRegister, _parameterManager);
     _groupByClause    = sqlBuilder._groupByClause?.Clone(AliasRegister);
     _orderByClause    = sqlBuilder._orderByClause?.Clone(AliasRegister);
     Pager             = sqlBuilder.Pager;
     OffsetParam       = sqlBuilder.OffsetParam;
     LimitParam        = sqlBuilder.LimitParam;
     UnionItems        = sqlBuilder.UnionItems.Select(t => new BuilderItem(t.Name, t.Builder.Clone())).ToList();
     CteItems          = sqlBuilder.CteItems.Select(t => new BuilderItem(t.Name, t.Builder.Clone())).ToList();
 }
Exemple #6
0
        public void Init(
            IInsertClause insert,
            IUpdateClause update,
            IDeleteClause delete,
            ISelectClause select,
            IFromClause from,
            IWhereClause where,
            IGroupByClause groupBy,
            IWhereClause having,
            IOrderByClause orderBy,
            LinkedList <IUnion> unions,
            ISelectQuery parentSelect,
            ICreateTableStatement createTable,
            bool parameterDependent,
            List <ISqlParameter> parameters)
        {
            Insert               = insert;
            Update               = update;
            Delete               = delete;
            Select               = select;
            From                 = from;
            Where                = where;
            GroupBy              = groupBy;
            Having               = having;
            OrderBy              = orderBy;
            Unions               = unions;
            ParentSelect         = parentSelect;
            CreateTable          = createTable;
            IsParameterDependent = parameterDependent;

            Parameters.AddRange(parameters);

            foreach (var col in select.Columns)
            {
                col.Parent = this;
            }

            Select.SetSqlQuery(this);
            From.SetSqlQuery(this);
            Where.SetSqlQuery(this);
            GroupBy.SetSqlQuery(this);
            Having.SetSqlQuery(this);
            OrderBy.SetSqlQuery(this);
        }
 /// <summary>
 /// 清空OrderBy子句
 /// </summary>
 public ISqlBuilder ClearOrderBy()
 {
     _orderByClause = CreateOrderByClause();
     return(this);
 }
Exemple #8
0
 /// <summary>
 /// 清空OrderBy子句
 /// </summary>
 public void ClearOrderBy()
 {
     _orderByClause = CreateOrderByClause();
 }
        public async Task <ListResultDto <Employee> > GetAllPaging(string txtFirstOrLastName, string orderByField,
                                                                   string sortOrder, int page, int pageSize)
        {
            var totalRow = await _employeeRepository.Count();

            var orderClause = new IOrderByClause <Employee>[] {
                new OrderByClause <Employee, int>(one => one.Id, SortDirection.Ascending)
            };

            if (sortOrder == "Asc")
            {
                if (orderByField == "FirstName")
                {
                    orderClause = new IOrderByClause <Employee>[] {
                        new OrderByClause <Employee, string>(one => one.FirstName, SortDirection.Ascending)
                    };
                }
                else if (orderByField == "LastName")
                {
                    orderClause = new IOrderByClause <Employee>[] {
                        new OrderByClause <Employee, string>(one => one.LastName, SortDirection.Ascending)
                    };
                }
            }
            else
            {
                if (sortOrder == "Desc")
                {
                    if (orderByField == "FirstName")
                    {
                        orderClause = new IOrderByClause <Employee>[] {
                            new OrderByClause <Employee, string>(one => one.FirstName, SortDirection.Descending)
                        };
                    }
                    else if (orderByField == "LastName")
                    {
                        orderClause = new IOrderByClause <Employee>[] {
                            new OrderByClause <Employee, string>(one => one.LastName, SortDirection.Descending)
                        };
                    }
                }
            }

            var items = await _employeeRepository.GetMultiSortingPaging(
                null,
                orderClause,
                page, pageSize, null);

            if (!String.IsNullOrEmpty(txtFirstOrLastName) && txtFirstOrLastName != "null")
            {
                txtFirstOrLastName = txtFirstOrLastName.ToLower();
                items = await _employeeRepository.GetMultiSortingPaging(
                    x => x.FirstName.ToLower().Contains(txtFirstOrLastName) || x.LastName.ToLower().Contains(txtFirstOrLastName),
                    orderClause,
                    page, pageSize, null);
            }
            return(new ListResultDto <Employee>()
            {
                Total = totalRow,
                Items = items,
            });
        }
Exemple #10
0
 public static IUnionStatement OrderBy(this IUnionStatement union, IOrderByClause orderby)
 {
     union.OrderBy = orderby;
     return(union);
 }
Exemple #11
0
 public static ISelectStatement OrderBy(this ISelectStatement select, IOrderByClause orderby)
 {
     select.OrderBy = orderby;
     return(select);
 }
Exemple #12
0
 public static IUnionStatement OB(this IUnionStatement union, IOrderByClause orderby)
 {
     return(OrderBy(union, orderby));
 }
Exemple #13
0
 public static ISelectStatement OB(this ISelectStatement select, IOrderByClause orderby)
 {
     return(OrderBy(select, orderby));
 }