예제 #1
0
        /// <summary>
        /// Search Department
        /// </summary>
        public IEnumerable <Department> SearchDepartment(DepartmentSearchRequest request, out int rowCount)
        {
            int fromRow = (request.PageNo - 1) * request.PageSize;
            int toRow   = request.PageSize;
            Expression <Func <Department, bool> > query =
                department =>
                (string.IsNullOrEmpty(request.DepartmentFilterText) ||
                 (department.DepartmentCode.Contains(request.DepartmentFilterText)) ||
                 (department.DepartmentName.Contains(request.DepartmentFilterText))) &&
                (string.IsNullOrEmpty(request.DepartmentTypeText) ||
                 (department.DepartmentType.Contains(request.DepartmentTypeText))) &&
                (!request.CompanyId.HasValue || request.CompanyId == department.CompanyId);

            rowCount = DbSet.Count(query);
            return(request.IsAsc
                ? DbSet.Where(query)
                   .OrderBy(departmentOrderByClause[request.OperationOrderBy])
                   .Skip(fromRow)
                   .Take(toRow)
                   .ToList()
                : DbSet.Where(query)
                   .OrderByDescending(departmentOrderByClause[request.OperationOrderBy])
                   .Skip(fromRow)
                   .Take(toRow)
                   .ToList());
        }
예제 #2
0
 /// <summary>
 /// Get Departments
 /// </summary>
 public Models.DepartmentSearchRequestResponse Get([FromUri] DepartmentSearchRequest oppRequest)
 {
     if (oppRequest == null || !ModelState.IsValid)
     {
         throw new HttpException((int)HttpStatusCode.BadRequest, "Invalid Request");
     }
     return(departmentService.SearchDepartment(oppRequest).CreateFrom());
 }
예제 #3
0
        /// <summary>
        /// Search Department
        /// </summary>
        public DepartmentSearchRequestResponse SearchDepartment(DepartmentSearchRequest request)
        {
            int rowCount;

            return(new DepartmentSearchRequestResponse
            {
                Departments = departmentRepository.SearchDepartment(request, out rowCount),
                TotalCount = rowCount
            });
        }
예제 #4
0
        public async Task <IEnumerable <DepartmentModel> > SearchAsync(DepartmentSearchRequest request)
        {
            var criteria = _mapper.Map <DepartmentCriteria>(request);

            criteria.Deleted = false;

            return(await DataContext.Departments
                   .AsNoTracking()
                   .Include(x => x.SubDepartments)
                   .Query(criteria)
                   .OrderBy(x => x.Name)
                   .Select(x => _mapper.Map <DepartmentModel>(x))
                   .ToListAsync());
        }
예제 #5
0
        public async Task <IActionResult> Index([FromBody] DepartmentSearchRequest request)
        {
            try
            {
                var response = await _roleAppService.Search(request);

                return(Json(response));
            }
            catch (Exception e)
            {
                _logger.LogError(e, Common.Common.GetMethodName(), request);
                throw;
            }
        }
예제 #6
0
        public async Task <DepartmentSearchResponse> Search(DepartmentSearchRequest request)
        {
            DepartmentSearchResponse response = new DepartmentSearchResponse();

            try
            {
                RefSqlPaging  sqlPaging   = new RefSqlPaging(request.PageIndex, request.PageSize);
                RDepartment[] departments = await _roleService.DepartmentSearchFromDb(request.Name, request.Status, sqlPaging);

                response.TotalRow    = sqlPaging.TotalRow;
                response.Departments = departments.Select(p => p.ToModel()).ToArray();
                response.PageIndex   = sqlPaging.PageIndex;
                response.PageSize    = sqlPaging.PageSize;
                response.SetSucess();
            }
            catch (Exception e)
            {
                response.SetFail(e);
                _logger.LogError(e, e.Message, request);
            }
            return(response);
        }
예제 #7
0
 public Task <IEnumerable <DepartmentModel> > SearchAsync([FromQuery] DepartmentSearchRequest request)
 {
     return(DepartmentService.SearchAsync(request));
 }