public async Task <Pagination <DepartmentViewModel> > GetAllAsync(DepartmentQueryModel queryModel) { var query = from dept in _dataContext.Departments.Include(x => x.Organization).AsNoTracking() select new DepartmentViewModel { Id = dept.Id, Name = dept.Name, Code = dept.Code, OrganizationId = dept.OrganizationId, Organization = AutoMapperUtils.AutoMap <Organization, OrganizationViewModel>(dept.Organization), LastModifiedOnDate = dept.LastModifiedOnDate }; if (queryModel.ListTextSearch != null && queryModel.ListTextSearch.Count > 0) { foreach (var ts in queryModel.ListTextSearch) { query = query.Where(q => q.Name.Contains(ts) || q.Code.Contains(ts) ); } } if (queryModel.OrganizationId != null && queryModel.OrganizationId != Guid.Empty) { query = query.Where(x => x.OrganizationId == queryModel.OrganizationId); } return(await query.GetPagedAsync(queryModel.CurrentPage.Value, queryModel.PageSize.Value, queryModel.Sort)); }
public async Task <IList <DepartmentEntity> > Query(DepartmentQueryModel model) { var paging = model.Paging(); var query = Db.Find(m => m.CompanyId == model.CompanyId); var parentId = model.ParentId ?? Guid.Empty; query.Where(m => m.ParentId == parentId); query.WhereIf(model.Name.NotNull(), m => m.Name.Contains(model.Name)); if (!paging.OrderBy.Any()) { query.OrderBy(m => m.Sort); } var joinQuery = query.LeftJoin <UserEntity>((x, y) => x.Leader == y.Id) .LeftJoin <AccountEntity>((x, y, z) => x.CreatedBy == z.Id) .Select((x, y, z) => new { x, LeaderName = y.Name, Creator = z.Name }); var result = await joinQuery.PaginationAsync(paging); model.TotalCount = paging.TotalCount; return(result); }
public async Task <IResultModel> Query(DepartmentQueryModel model) { var result = new QueryResultModel <DepartmentEntity> { Rows = await _repository.Query(model), Total = model.TotalCount }; return(ResultModel.Success(result)); }
public async Task <IList <DepartmentEntity> > Query(DepartmentQueryModel model) { var paging = model.Paging(); var query = Db.Find(m => m.ParentId == model.ParentId); query.WhereNotNull(model.Name, m => m.Name.Contains(model.Name)); query.WhereNotNull(model.Code, m => m.Code == model.Code); var joinQuery = query.LeftJoin <AccountEntity>((x, y) => x.CreatedBy == y.Id); if (!paging.OrderBy.Any()) { joinQuery.OrderBy((x, y) => x.Sort); } joinQuery.Select((x, y) => new { x, Creator = y.Name }); var result = await joinQuery.PaginationAsync(paging); model.TotalCount = paging.TotalCount; return(result); }
public Task <IResultModel> Query([FromQuery] DepartmentQueryModel model) { return(_service.Query(model)); }