public async Task <PagedResultOutput <DeliveryDto> > GetDeliverys(GetDeliverysInput input)
 {
     using (CurrentUnitOfWork.EnableFilter(AbpZeroTemplateConsts.AdminCommunityFilterClass.Name))
     {
         using (CurrentUnitOfWork.SetFilterParameter(AbpZeroTemplateConsts.AdminCommunityFilterClass.Name, AbpZeroTemplateConsts.AdminCommunityFilterClass.ParameterName, await GetAdminCommunityIdList()))
         {
             return(await ProcessGet(input));
         }
     }
 }
Example #2
0
        public async virtual Task <IHttpActionResult> GetDeliverys(string userName, string token, int skipCount, int maxResultCount, string sorting = null, int?tenantId = null)
        {
            base.AuthUser();
            using (CurrentUnitOfWork.SetTenantId(tenantId))
            {
                var homeOwerUser = await _homeOwerUserManager.GetHomeOwerUserByUserName(userName);

                if (homeOwerUser.HomeOwerId == 0)
                {
                    throw ErrorCodeTypeUtils.ThrowError(ErrorCodeType.HomeOwerNotExists);
                }
                var input = new GetDeliverysInput();
                input.HomeOwerId     = homeOwerUser.HomeOwerId;
                input.MaxResultCount = maxResultCount;
                input.SkipCount      = skipCount;
                if (!string.IsNullOrEmpty(sorting))
                {
                    input.Sorting = sorting;
                }

                return(Ok(await _deliveryService.GetAllDeliverys(input)));
            }
        }
        private async Task <PagedResultOutput <DeliveryDto> > ProcessGet(GetDeliverysInput input)
        {
            //var query = _manager.FindDeliveryList(input.Sorting);

            var query = from d in _manager.DeliveryRepository.GetAll()
                        orderby input.Sorting
                        select new
            {
                d.Id,
                d.CommunityId,
                CommunityName = d.CommunityName,
                BuildingId    = d.BuildingId,
                d.BuildingName,
                d.HomeOwer,
                d.HomeOwerId,
                HomeOwerName = d.HomeOwer.Forename + "" + d.HomeOwer.Surname,
                d.Title,
                d.Content,
                d.IsReplace,
                d.Token,
                d.CreationTime,
                d.IsGather,
                d.FlatNo,
                GatherTime          = !d.GatherTime.HasValue ? "N/A" : d.GatherTime.ToString(),
                ReplaceHomeOwerName = d.ReplaceHomeOwer != null ? (d.HomeOwer.Forename + "" + d.HomeOwer.Surname) : string.Empty,
                CreationTimeStr     = d.CreationTime.ToString(),
                d.Barcode
            };

            if (input.HomeOwerId.HasValue)
            {
                //业主ID,用于app端获取数据
                query = query.Where(d => d.HomeOwer.Id == input.HomeOwerId.Value);
            }
            if (input.CommunityId.HasValue)
            {
                query = query.Where(d => d.CommunityId == input.CommunityId.Value);
            }
            if (!string.IsNullOrEmpty(input.Keywords))
            {
                //小区 / 业主名称
                query = query.Where(d => d.HomeOwer.Forename.Contains(input.Keywords) ||
                                    d.HomeOwer.Surname.Contains(input.Keywords) ||
                                    d.HomeOwer.CommunityName.Contains(input.Keywords) ||
                                    d.BuildingName.Contains(input.Keywords) ||
                                    d.FlatNo.Contains(input.Keywords)
                                    //|| d.HomeOwer.Buildings.Any(b => b.BuildingName.Contains(input.Keywords))
                                    );
            }
            if (input.BuildingId.HasValue)
            {
                //单元楼
                query = query.Where(d => d.BuildingId == input.BuildingId.Value);
            }
            if (input.StartDate.HasValue)
            {
                //开始时间
                query = query.Where(d => d.CreationTime >= input.StartDate.Value);
            }
            if (input.EndDate.HasValue)
            {
                input.EndDate = input.EndDate.Value.AddDays(1).AddSeconds(-1);
                //结束时间
                query = query.Where(d => d.CreationTime <= input.EndDate.Value);
            }
            if (input.IsGather.HasValue)
            {
                //是否收取
                query = query.Where(d => d.IsGather == input.IsGather.Value);
            }
            var totalCount = await query.CountAsync();

            var items = await query.OrderByDescending(d => d.CreationTime).PageBy(input).ToListAsync();

            return(new PagedResultOutput <DeliveryDto>(
                       totalCount,
                       items.Select(
                           item =>
            {
                return Mapper.DynamicMap <DeliveryDto>(item);
                //var dto = item.MapTo<DeliveryDto>();
                //return dto;
            }
                           ).ToList()
                       ));
        }
 public async Task <PagedResultOutput <DeliveryDto> > GetAllDeliverys(GetDeliverysInput input)
 {
     return(await ProcessGet(input));
 }