Esempio n. 1
0
        public async Task <(CarOwnersOutputDto, int)> GetCarOwners(GetCarOwners query)
        {
            var page     = query.Page ?? 1 - 1;
            var pageSize = query.PageSize ?? 10;

            var car = await _carRepository.Queryable()
                      .Include(x => x.Owners)
                      .FirstOrDefaultAsync(x => x.Id == query.CarId);

            var owners = car.Owners
                         .Skip(page * pageSize)
                         .Take(pageSize);

            var outputOwners = new List <OwnerOutPutDto>();

            foreach (var owner in owners)
            {
                outputOwners.Add(MapperOwnerToOwnerOutputDto(owner));
            }

            CarOwnersOutputDto carOwnersOutputDto = new CarOwnersOutputDto {
                Owners = outputOwners, ActiveOwnerId = car.ActiveOwnerId
            };

            (CarOwnersOutputDto carOwnersPage, int allOwnersCount)result
                = (carOwnersOutputDto, car.Owners.Count);

            return(result);
        }
        public async Task <IActionResult> GetCarOwnersAsync(GetCarOwners query)
        {
            var result = await _carService.GetCarOwners(query);

            return(Ok(new { pageResult = result.Item1, pageCount = result.Item2 }));
        }