public List <Pet> GetPetsByOwnerId(int ownerId) { var request = new PetsSearchByOwnerRequest { OwnerId = ownerId }; var response = _findMyPetClient.JsonClient().Post(request); return(response.Result); }
public async Task <PagedResponse <Pet> > Post(PetsSearchByOwnerRequest request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } return(await _petProvider.PetsByOwnerPagedAsync(request) .ConfigureAwait(false)); }
public PagedResponseViewModel <Pet> GetPetsPagedByOwnerId(int ownerId, int pageSize, int pageNumber) { var request = new PetsSearchByOwnerRequest { OwnerId = ownerId, PageSize = pageSize, PageNumber = pageNumber }; var response = _findMyPetClient.JsonClient().Post(request); return(new PagedResponseViewModel <Pet> { Result = response.Result, TotalPages = response.TotalPages, TotalRecords = response.TotalRecords }); }
public async Task <PagedResponse <Pet> > PetsByOwnerPagedAsync(PetsSearchByOwnerRequest request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } var pagedResult = await _petDataAccess.GetPetsByOwnerPagedAsync(request) .ConfigureAwait(false); return(new PagedResponse <Pet> { TotalRecords = pagedResult.TotalRecords, TotalPages = pagedResult.TotalPages, Result = pagedResult.Result.ConvertAll(p => _petMapper.MapPetTableToPet(p, false)) }); }
public async Task <PagedResponse <PetTableModel> > GetPetsByOwnerPagedAsync(PetsSearchByOwnerRequest request) { var response = new PagedResponse <PetTableModel>(); var records = new List <PetTableModel>(); int totalRecords = 0; int totalPages = 0; using (var dbConnection = _dbConnectionFactory.Open()) { var q = dbConnection.From <PetTableModel>() .Join <PetTableModel, OwnerPetTableModel>((p, po) => p.Id == po.PetTableModelId && po.OwnerTableModelId == request.OwnerId) .Select().OrderBy(x => x.Name); //Micky: Place this logic into a helper to be available to all clases totalRecords = await dbConnection.SqlScalarAsync <int>(q.ToCountStatement()); if ( (request.PageSize.HasValue && request.PageNumber.HasValue) && totalRecords > request.PageSize ) { totalPages = (int)((totalRecords + (request.PageSize - 1)) / request.PageSize); if (request.PageNumber <= 1) { request.PageNumber = 1; q = q.Take(request.PageSize); } else { if (request.PageNumber > totalPages) { request.PageNumber = totalPages; } q = q.Skip((request.PageNumber - 1) * request.PageSize).Take(request.PageSize); } records = await dbConnection.SelectAsync <PetTableModel>(q) .ConfigureAwait(false); } else { totalPages = 1; records = await dbConnection.SelectAsync <PetTableModel>(q) .ConfigureAwait(false); } if (records.Any()) { foreach (var item in records) { await dbConnection.LoadReferencesAsync(item); } } } response.TotalRecords = totalRecords; response.TotalPages = totalPages; response.Result = records; return(response); }