public async Task <PopularResult <byte[]> > GetBytesAsync(MaintenanceQueryDto dto) { var result = new PopularResult <byte[]>(); var query = _maintenanceRepository.Where(x => x.IsDelete == dto.IsDelete); var maintenances = await AsyncExecuter.ToListAsync(query); //转换为导出对象 var dtos = ObjectMapper.Map <List <MaintenanceEntity>, List <MaintenanceDto> >(maintenances); var stream = EPPlusHelper.GetMemoryStream(dtos); result.Success(stream.ToArray()); return(result); }
public async Task <PopularResult <byte[]> > GetExportAsync(MaintenanceQueryDto dto) { return(await _maintenanceService.GetBytesAsync(dto)); }
public async Task <PopularResult <PagedResultDto <MaintenanceDto> > > GetPageAsync([FromQuery] MaintenanceQueryDto dto) { return(await _maintenanceService.GetListAsync(dto)); }
public async Task <PopularResult <PagedResultDto <MaintenanceDto> > > GetListAsync(MaintenanceQueryDto dto) { var result = new PopularResult <PagedResultDto <MaintenanceDto> >(); var countQuery = _maintenanceRepository.Where(x => x.IsDelete == dto.IsDelete); //.WhereIf(!dto.License.IsNullOrWhiteSpace(), maintenance => maintenance.Vehicle.License.Contains(dto.License)); var query = from m in _maintenanceRepository.OrderBy(x => x.CreateTime).PageBy(dto.ToSkipCount(), dto.ToMaxResultCount()).Where(x => x.IsDelete == dto.IsDelete) join v in _vehicleRepository on m.VehicleId equals v.Id into cls from c in cls.DefaultIfEmpty() join d in _dictRepository on m.CostTypeId equals d.Id into md from s in md.DefaultIfEmpty() select new MaintenanceEntity(m.Id) { Address = m.Address, CostType = s, CostTypeId = m.CostTypeId, Expend = m.Expend, RecordTime = m.RecordTime, Vehicle = c, VehicleId = m.VehicleId, //IsDelete = m.IsDelete, CreateTime = m.CreateTime, Creator = m.Creator, Remark = m.Remark, }; var maintenances = await AsyncExecuter.ToListAsync(query); var totalCount = await AsyncExecuter.CountAsync(countQuery); var dtos = ObjectMapper.Map <List <MaintenanceEntity>, List <MaintenanceDto> >(maintenances); result.Success(new PagedResultDto <MaintenanceDto>(totalCount, dtos)); return(result); }