public async Task <Status> Put(int id, [FromBody] CampingTripId tripId)
        {
            var campingTripId = tripId.CampingTripID;

            var identity = (ClaimsIdentity)User.Identity;

            IEnumerable <Claim> claims = identity.Claims;

            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");
            }

            if (id != userId)
            {
                return new Status
                       {
                           IsOk       = false,
                           StatusCode = 5003,
                           Message    = "Invalid id"
                       }
            }
            ;

            return(await this.signUpForTheTrip.AsMemberAsync(id, campingTripId));
        }
        public void Join(object trip)
        {
            var tokenResponse = tokenClient.RequestRefreshTokenAsync(ConfigurationSettings.AppSettings["refreshToken"]).Result;

            httpClient.SetBearerToken(tokenResponse.AccessToken);
            var campingTrip = (trip as TripsInProgress).CampingTrip;
            var tripInfo    = JsonConvert.SerializeObject(campingTrip);

            var campingTripId = campingTrip.ID;

            var tripId = new CampingTripId()
            {
                CampingTripID = campingTrip.ID,
            };

            var response = httpClient.PutAsync($"api/MembersOfCampingTrip/{user.Id}", new StringContent(JsonConvert.SerializeObject(tripId), Encoding.UTF8, "application/json")).Result;


            if (response.IsSuccessStatusCode)
            {
                campingTrip.IAmJoined = true;
                campingTrip.CanIJoin  = false;
                if (campingTrip.MembersOfCampingTrip == null)
                {
                    campingTrip.MembersOfCampingTrip = new ObservableCollection <UserInfo>();
                }
                campingTrip.CountOfMembers++;
                campingTrip.MembersOfCampingTrip.Add(new UserInfo()
                {
                    Id = this.user.Id
                });
            }
        }
 public async void Put(int id, [FromBody] CampingTripId campingTripID)
 {
     await this.signUpForTheTrip.AsDriver(id, campingTripID.CampingTripID);
 }