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());
            }
        }
Пример #2
0
        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());
            }
        }