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)); }
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(); }
public async Task OnRideAcceptedByDriver(Guid rideId) { var ride = await _ridesRepository.GetByIdAsync(rideId); await Clients.Groups(UserRoles.Driver, ride.CustomerId).SendAsync(RefreshRidesList); }