public async Task <IActionResult> List([FromQuery] string id) { try { var userId = HttpContext.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier).Value; var travelPlanId = new Guid(id); var travelers = await _userTravelPlanService.GetTravelersForActivityAsync(travelPlanId); if (travelers.Count() == 0) { //travel plan doesn't exist return(BadRequest(new { Message = "Error occurred retrieving activities for travel plan" })); } if (!travelers.Contains(new Guid(userId))) { return(Forbid()); } var lstActivityDto = await _activityService.ListAsync(travelPlanId); return(Ok(lstActivityDto)); } catch { return(BadRequest()); } }
public async Task <IActionResult> Details([FromQuery] string id) { try { var travelPlanId = new Guid(id); var userId = HttpContext.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier).Value; var travelers = await _userTravelPlanService.GetTravelersForActivityAsync(travelPlanId); if (!travelers.Contains(new Guid(userId))) { return(Forbid()); } var userTravelers = await _userRepository.GetUsersAsync(travelers); var travelPlanDTO = await _travelPlanService.GetAsync(travelPlanId, includeStatus : true); travelPlanDTO.Travelers = userTravelers.ToList(); return(Ok(travelPlanDTO)); } catch { return(BadRequest()); } }