public async Task <IActionResult> GetDriverTripRoute(Guid tripHistoryId)
        {
            var trip = await _tripsRepository.GetTripHistory(tripHistoryId);

            if (trip == null)
            {
                return(NotFound());
            }

            var driverId = User.Claims.FirstOrDefault(c => c.Type == Helpers.Constants.Strings.JwtClaimIdentifiers.DriverId)?.Value;

            if (trip.DriverId != Guid.Parse(driverId))
            {
                return(StatusCode(403));
            }

            var tripRoute = await _tripsRepository.GetTripRouteNodes(tripHistoryId);

            var routesDto = new List <RouteNodeDto>();

            foreach (var r in tripRoute)
            {
                routesDto.Add(Mapper.Map <RouteNodeDto>(r));
            }

            return(Ok(routesDto));
        }
Example #2
0
        public async Task <IActionResult> GetPaymentById(Guid tripHistoryId)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var history = await _tripsRepository.GetTripHistory(tripHistoryId);

            if (history == null)
            {
                return(NotFound());
            }
            var customer = _usersRepository.GetCustomerById(history.CustomerId);

            var payment = await Payment.GetById((ulong)history.ContractId,
                                                new User()
            {
                PrivateKey = customer.Identity.PrivateKey
            }, ModelState);

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            return(Ok(payment));
        }