public async Task SearchCostCenter_Call_PagedList_in_repository()
        {
            //Arrange
            var bus    = A.Fake <IBus>();
            var mapper = A.Fake <IMapper>();
            var repo   = A.Fake <IQueryDataAccess <CostCenterDTO> >();

            var appService = new CostCenterApplicationService(bus, repo, mapper);
            var page       = 1;
            var pageSize   = 10;

            var request = new CostCenterSearchRequest()
            {
                Name = "xxxxx", Page = page, PageSize = pageSize
            };

            A.CallTo(() => repo.ListPagedAsync(null, 0, 0, null, null)).WithAnyArguments().Returns(Task.FromResult(new Query.Common.PagedList <CostCenterDTO>()));

            //Act
            var resp = await appService.SearchCostCenterByNameAsync(request);

            //Assert
            Assert.NotNull(resp);
            A.CallTo(() => repo.ListPagedAsync(null, 0, 0, null, null)).WithAnyArguments().MustHaveHappened(Repeated.NoMoreThan.Once);
        }
        public async Task <ResponseDTO <PagedList <CostCenterDTO> > > Search(CostCenterSearchRequest search)
        {
            var resp = await _costCenterApplicationService.SearchCostCenterByNameAsync(search);

            return(resp);
        }
Ejemplo n.º 3
0
        public async Task <ResponseDTO <PagedList <CostCenterDTO> > > SearchCostCenterByNameAsync(CostCenterSearchRequest search)
        {
            List <OrderExpression <CostCenterDTO> > orderExpressionList = new List <OrderExpression <CostCenterDTO> >();

            orderExpressionList.Add(new OrderExpression <CostCenterDTO>(OrderType.Desc, p => p.CostCenterId));

            Expression <Func <CostCenterDTO, bool> > queryFilter = c => c.RowStatus;

            if (!string.IsNullOrEmpty(search.Name))
            {
                queryFilter = queryFilter.And(p => p.Name.Contains(search.Name));
            }

            if (!string.IsNullOrEmpty(search.Code))
            {
                queryFilter = queryFilter.And(p => p.Code.Contains(search.Code));
            }

            var costCenter = await _costCenterDataAccess.ListPagedAsync(queryFilter, search.Page, search.PageSize, orderExpressionList.ToArray());

            var pagedResult = new PagedList <CostCenterDTO>()
            {
                Items    = costCenter.Items,
                PageSize = costCenter.PageSize,
                Page     = costCenter.Page,
                Total    = costCenter.Total
            };

            return(ResponseBuilder.Correct(pagedResult));
        }