Exemple #1
0
        public IActionResult DeleteTripForCustomer()
        {
            var customerid = User.Claims.FirstOrDefault(c => c.Type == Helpers.Constants.Strings.JwtClaimIdentifiers.CustomerId)?.Value;

            if (customerid == null)
            {
                return(BadRequest());
            }

            var trip = _tripsRepo.GetTrip(Guid.Parse(customerid));

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

            if (trip.DriverId != null)
            {
                ModelState.AddModelError(nameof(Trip), "Driver already assigned");
                return(BadRequest(ModelState));
            }
            //TODO : refund
            var customer = _usersRepository.GetCustomerById(Guid.Parse(customerid));

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

            var res = Refund.Create((ulong)trip.ContractId, new DefaultControllerPattern(),
                                    new User {
                PrivateKey = customer.Identity.PrivateKey
            }, ModelState);

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

            var result = _tripsRepo.RemoveTrip(Guid.Parse(customerid));

            if (!result)
            {
                return(Conflict());
            }

            return(NoContent());
        }