public async Task <IEnumerable <ServiceRequestResponse> > Get() { 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.GetAllServiceRequestResponsesAsync()); } else { var userIdClaim = claims.Where(claim => claim.Type == "user_id").First(); if (userIdClaim == null) { throw new Exception("user_id claim not found"); } if (!int.TryParse(userIdClaim.Value, out int userId)) { throw new Exception("Invalid value for user_id in users claims"); } return(await campingTripRepository.GetAllServiceRequestResponsesByProviderIdAsync(userId)); } }