Example #1
0
        protected override async Task Handle(UpdateRideRequestCommand request, CancellationToken cancellationToken)
        {
            var rideRequest = await _rideRequestRepository.GetByIdAsync(request.RideRequestId, cancellationToken);

            if (rideRequest.RideOwnerId != request.TokenUserId)
            {
                throw new ApiException("User does not have access to update group invite",
                                       StatusCodes.Status403Forbidden);
            }

            rideRequest.IsAccepted = request.IsAccepted;
            rideRequest.IsPending  = false;

            if (request.IsAccepted)
            {
                await _stopRepository.AddStopToRideAsync(
                    new Stop(rideRequest.RequestingUserId,
                             rideRequest.Location,
                             rideRequest.RideId),
                    cancellationToken);
            }

            try
            {
                await _unitOfWork.SaveAsync(cancellationToken);
            }
            catch (DbUpdateException ex)
            {
                throw new ApiException(ex);
            }
        }
Example #2
0
        protected override async Task Handle(ResignRideRequestCommand request, CancellationToken cancellationToken)
        {
            var rideRequest = await _rideRequestRepository.GetByIdAsync(request.RideRequestId, cancellationToken);

            if (rideRequest.RequestingUserId != request.RequestingUserId)
            {
                throw new ApiException(StatusCodes.Status403Forbidden);
            }

            _rideRequestRepository.Delete(rideRequest);

            try
            {
                await _unitOfWork.SaveAsync(cancellationToken);
            }
            catch (DbUpdateException ex)
            {
                throw new ApiException(ex);
            }
        }