Beispiel #1
0
        public async Task <IList <DepartureDetailsDTO> > GetAllDetailsAsync()
        {
            var departures = await _unitOfWork.Set <Departure>().DetailsAsync();

            var crews = await _unitOfWork.Set <Crew>()
                        .DetailsAsync(x => departures.Any(y => x.Id == y.CrewId));

            var planes = await _unitOfWork.Set <Plane>()
                         .DetailsAsync(x => departures.Any(y => x.Id == y.PlaneId));

            return(await departures.ToAsyncEnumerable().Select(x =>
            {
                var plane = planes.First(p => p.Id == x.PlaneId);
                var crew = crews.First(c => c.Id == x.CrewId);
                return DepartureDetailsDTO.Create(x, PlaneDetailsDTO.Create(plane), CrewDetailsDTO.Create(crew));
            }).ToList());
        }
Beispiel #2
0
        public async Task <DepartureDetailsDTO> GetDetailsAsync(int id)
        {
            var departure = await _unitOfWork.Set <Departure>()
                            .DetailsAsync(id);

            if (departure == null)
            {
                throw new NotFoundException("Departure with such id was not found");
            }

            var crew = await _unitOfWork.Set <Crew>()
                       .DetailsAsync(departure.CrewId);

            var plane = await _unitOfWork.Set <Plane>()
                        .DetailsAsync(departure.PlaneId);

            return(DepartureDetailsDTO.Create(departure, PlaneDetailsDTO.Create(plane), CrewDetailsDTO.Create(crew)));
        }
Beispiel #3
0
        public DepartureDetailsDTO GetDetails(int id)
        {
            var departure = _unitOfWork.Set <Departure>()
                            .Details(x => x.Id == id).FirstOrDefault();

            if (departure == null)
            {
                throw new NotFoundException("Departure with such id was not found");
            }

            var crew = _unitOfWork.Set <Crew>()
                       .Details(x => x.Id == departure.CrewId)
                       .Select(CrewDetailsDTO.Create).First();
            var plane = _unitOfWork.Set <Plane>()
                        .Details(x => x.Id == departure.PlaneId)
                        .Select(PlaneDetailsDTO.Create).First();

            return(DepartureDetailsDTO.Create(departure, plane, crew));
        }
Beispiel #4
0
        public IList <DepartureDetailsDTO> GetAllDetails()
        {
            var departures = _unitOfWork.Set <Departure>().Details();

            var crews = _unitOfWork.Set <Crew>()
                        .Details(x => departures.Any(y => x.Id == y.CrewId))
                        .Select(CrewDetailsDTO.Create);

            var planes = _unitOfWork.Set <Plane>()
                         .Details(x => departures.Any(y => x.Id == y.PlaneId))
                         .Select(PlaneDetailsDTO.Create);

            return(departures.Select(x =>
            {
                var plane = planes.First(p => p.Id == x.PlaneId);
                var crew = crews.First(c => c.Id == x.CrewId);
                return DepartureDetailsDTO.Create(x, plane, crew);
            }).ToList());
        }