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)); }
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)); }
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 }); }
public async Task <IEnumerable <Vehicle> > GetByStatus(SearchVehicleStatus searchStatus) { return(await Connection.QueryAsync <Vehicle>("GetCustomerVehicles", new { IsActive = (int)searchStatus }, commandType : CommandType.StoredProcedure, transaction : Transaction)); }
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() }); }
public async Task <Page <Customer> > GetAllAsync(PagingOptions pagingOptions, bool getVehicles = true, SearchVehicleStatus vehicleStatus = SearchVehicleStatus.Any) { return(await GetAsyncByName(string.Empty, pagingOptions, getVehicles, vehicleStatus)); }
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)); }