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