예제 #1
0
        public IEnumerable <RideRequestDto> GetPassengerRequests(string email)
        {
            IEnumerable <RideRequest> entityRequest = _rideRequestRepository.GetPassengerRequests(email);

            var notes           = _rideRequestNoteLogic.GetNoteByPassenger(email);
            var driverSeenNotes = _driverSeenNoteReposiotory.GetNotesByPassenger(email);
            IEnumerable <RideRequestDto> converted = ConvertRequestsToDto(entityRequest, false);

            foreach (var request in converted)
            {
                var note       = notes.FirstOrDefault(x => x.RideRequestId == request.RideRequestId);
                var driverNote = _driverNoteLogic.GetNoteByRide(request.RideId);

                if (driverNote != null)
                {
                    request.RideNote     = driverNote.Text;
                    request.RideNoteSeen = driverSeenNotes.Single(x => x.RideRequestId == request.RideRequestId).Seen;
                }
                else
                {
                    request.RideNoteSeen = true;
                }

                if (note != null)
                {
                    request.RequestNote = note.Text;
                }
            }

            return(converted.OrderByDescending(x => !x.SeenByPassenger).ThenByDescending(x => x.Status == Dto.Status.WAITING).ThenByDescending(x => x.Status == Dto.Status.ACCEPTED).ToList());
        }
예제 #2
0
        public async Task <IEnumerable <RideRequestDto> > GetUsersRequests(bool driver, string email)
        {
            IEnumerable <RideRequest> entityRequest;

            if (driver)
            {
                entityRequest = _rideRequestRepository.GetDriverRequests(email);
            }
            else
            {
                entityRequest = _rideRequestRepository.GetPassengerRequests(email);
            }

            IEnumerable <RideRequestDto> converted = await ConvertRequestsToDtoAsync(entityRequest, driver);

            return(SortRequests(converted));
        }