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);
        }
Esempio n. 3
0
        public async Task <IResultModel> Query(DepartmentQueryModel model)
        {
            var result = new QueryResultModel <DepartmentEntity>
            {
                Rows  = await _repository.Query(model),
                Total = model.TotalCount
            };

            return(ResultModel.Success(result));
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
 public Task <IResultModel> Query([FromQuery] DepartmentQueryModel model)
 {
     return(_service.Query(model));
 }