コード例 #1
0
        public async Task <Page <Vehicle> > GetByStatus(SearchVehicleStatus vehicleStatus, [FromQuery] PagingOptions pagingOptions)
        {
            pagingOptions.Offset = pagingOptions.Offset ?? _defaultPagingOptions.Offset;
            pagingOptions.Limit  = pagingOptions.Limit ?? _defaultPagingOptions.Limit;

            return(await _vehiclesService.GetByStatus(vehicleStatus, pagingOptions));
        }
コード例 #2
0
        public async Task <Page <Customer> > Get([FromQuery] string name = "", [FromQuery] PagingOptions pagingOptions = null, [FromQuery] bool getVehicles = true,
                                                 [FromQuery] SearchVehicleStatus vehicleStatus = SearchVehicleStatus.Any)
        {
            pagingOptions.Offset = pagingOptions.Offset ?? _defaultPagingOptions.Offset;
            pagingOptions.Limit  = pagingOptions.Limit ?? _defaultPagingOptions.Limit;

            return(await _customersService.GetAsyncByName(name, pagingOptions, getVehicles, vehicleStatus));
        }
コード例 #3
0
ファイル: VehiclesService.cs プロジェクト: melmasry/vehicles
        public async Task <Page <Vehicle> > GetByStatus(SearchVehicleStatus vehicleStatus, PagingOptions pagingOptions)
        {
            IQueryable <Vehicle> query;

            using (IDbConnection connection = _vehiclesRepository.Connection)
            {
                query = (await _vehiclesRepository.GetByStatus(vehicleStatus)).AsQueryable();
            }

            var size = query.Count();

            var items = query
                        .Skip(pagingOptions.Offset.Value)
                        .Take(pagingOptions.Limit.Value)
                        .ToArray();

            return(new Page <Vehicle>
            {
                Items = items,
                TotalSize = size
            });
        }
コード例 #4
0
 public async Task <IEnumerable <Vehicle> > GetByStatus(SearchVehicleStatus searchStatus)
 {
     return(await Connection.QueryAsync <Vehicle>("GetCustomerVehicles", new { IsActive = (int)searchStatus }, commandType : CommandType.StoredProcedure, transaction : Transaction));
 }
コード例 #5
0
ファイル: CustomersService.cs プロジェクト: melmasry/vehicles
        public async Task <Page <Customer> > GetAsyncByName(string name, PagingOptions pagingOptions, bool getVehicles = true, SearchVehicleStatus vehicleStatus = SearchVehicleStatus.Any)
        {
            IQueryable <Customer> query;

            using (IDbConnection connection = _customersRepository.Connection)
            {
                query = (await _customersRepository.GetAsyncByName(name)).AsQueryable();
            }

            var size  = query.Count();
            var items = query.ToArray();

            if (getVehicles)
            {
                using (IUnitOfWork uow = _unitOfWorkFactory.GetInstance())
                {
                    foreach (var customer in items)
                    {
                        customer.Vehicles = await uow.VehiclesRepository.GetByCustomerId(customer.Id, vehicleStatus);
                    }
                }
                if (vehicleStatus != SearchVehicleStatus.Any)
                {
                    items = items.Where(c => c.Vehicles != null && c.Vehicles.Count() > 0).ToArray();
                }
            }

            items = items
                    .Skip(pagingOptions.Offset.Value)
                    .Take(pagingOptions.Limit.Value)
                    .ToArray();

            return(new Page <Customer>
            {
                Items = items,
                TotalSize = items.Count()
            });
        }
コード例 #6
0
ファイル: CustomersService.cs プロジェクト: melmasry/vehicles
 public async Task <Page <Customer> > GetAllAsync(PagingOptions pagingOptions, bool getVehicles = true, SearchVehicleStatus vehicleStatus = SearchVehicleStatus.Any)
 {
     return(await GetAsyncByName(string.Empty, pagingOptions, getVehicles, vehicleStatus));
 }
コード例 #7
0
        public async Task <Page <Customer> > Get([FromQuery] PagingOptions pagingOptions, [FromQuery] bool getVehicles = true, [FromQuery] SearchVehicleStatus vehicleStatus = SearchVehicleStatus.Any)
        {
            //Set default paging options if no paging configuration passed
            pagingOptions.Offset = pagingOptions.Offset ?? _defaultPagingOptions.Offset;
            pagingOptions.Limit  = pagingOptions.Limit ?? _defaultPagingOptions.Limit;

            return(await _customersService.GetAllAsync(pagingOptions, getVehicles, vehicleStatus));
        }