public async Task <CampingTripFull> Get(string campingTripId) { var identity = (ClaimsIdentity)User.Identity; IEnumerable <Claim> claims = identity.Claims; var role = claims.Where(claim => claim.Type == "role").First(); if (role.Value == "Admin") { return(await campingTripRepository.GetUserRegisteredCompletedTripAsync(campingTripId)); } else { var userIdClaim = claims.Where(claim => claim.Type == "user_id")?.FirstOrDefault(); if (!int.TryParse(userIdClaim.Value, out int userId)) { throw new System.Exception("Invalid value for claim user_id"); } return(await campingTripRepository.GetUserRegisteredCompletedTripForUserAsync(campingTripId, userId)); } }