Exemplo n.º 1
0
        public async Task Handle(RideFinishedNotification notification, CancellationToken cancellationToken)
        {
            var ride = await _ridesRepository.GetByIdAsync(notification.RideId);

            await _ridesService.FetchMoneyForRideAsync(ride);

            await _unitOfWork.SaveAsync();
        }
        protected override async Task Handle(StartRideCommand request, CancellationToken cancellationToken)
        {
            var ride = await _ridesRepository.GetByIdAsync(request.RideId);

            ride.StartRide(request.Address, request.DestinationLatitude, request.DestinationLongitude);

            await _unitOfWork.SaveAsync();
        }
        public async Task <bool> Handle(PayForRideCommand request, CancellationToken cancellationToken)
        {
            var ride = await _ridesRepository.GetByIdAsync(request.RideId);

            var isPaymentSuccessful = await _ridesService.FetchMoneyForRideAsync(ride);

            return(isPaymentSuccessful);
        }
        protected override async Task Handle(CancelRequestedRideCommand request, CancellationToken cancellationToken)
        {
            var ride = await _ridesRepository.GetByIdAsync(request.RideId);

            ride.Cancel();

            ride.Version = request.Version;
            await _unitOfWork.SaveAsync();
        }
        protected override async Task Handle(FinishRideCommand request, CancellationToken cancellationToken)
        {
            var ride = await _ridesRepository.GetByIdAsync(request.RideId);

            _ridesService.FinishRide(ride, request.KilometersTraveled);
            await _unitOfWork.SaveAsync();

            await _mediator.Publish(new RideFinishedNotification(ride.Id));
        }
Exemplo n.º 6
0
        protected override async Task Handle(PickUpRideCommand request, CancellationToken cancellationToken)
        {
            var userId = _identityProvider.GetUserId();

            var driver = await _driversRepository.GetByIdAsync(userId);

            var ride = await _ridesRepository.GetByIdAsync(request.RideId);

            ride.AssignDriver(driver);

            ride.Version = request.Version;
            await _unitOfWork.SaveAsync();
        }
Exemplo n.º 7
0
        public async Task OnRideAcceptedByDriver(Guid rideId)
        {
            var ride = await _ridesRepository.GetByIdAsync(rideId);

            await Clients.Groups(UserRoles.Driver, ride.CustomerId).SendAsync(RefreshRidesList);
        }