public async Task <ActionResult <Walk> > GetWalk([FromHeader] string token, [FromHeader] string email, [FromRoute] string id, [FromHeader] bool isUser) { // if user and not authenticated if (isUser && !await _walkerRepository.Authenticated(token, email)) { return(Unauthorized()); } // is safewalker and not authenticated else if (!isUser && !await _safewalkerRepository.Authenticated(token, email)) { return(Unauthorized()); } var walk = await _walkRepository.Get(id); if (walk == null) { return(NotFound()); } // Check if person is part of the walk if (isUser && walk.UserEmail != email) { return(Unauthorized()); } else if (!isUser && walk.WalkerEmail != email) { return(Unauthorized()); } return(Ok(walk)); }