public async Task <TPAnnouncementDto> CreateAsync(TPAnnouncementDto announcementDto, Guid loggedInUserId) { try { var tpToAnnounceTo = await _travelPlanService.GetAsync(announcementDto.TravelPlanId); if (tpToAnnounceTo.CreatedById != loggedInUserId) { throw new InsufficientRightsException("User doesn't have rights to delete"); } var newAnnouncement = new TPAnnouncement { Title = announcementDto.Title, Description = announcementDto.Description, CreatedDate = DateTime.UtcNow, CreatedById = loggedInUserId, TravelPlanId = announcementDto.TravelPlanId, TravelPlanActivityId = announcementDto.TravelPlanActivityId }; var addedAnnouncement = await _announcementRepository.CreateAsync(newAnnouncement); return(new TPAnnouncementDto(addedAnnouncement)); } catch (Exception) { throw; } }
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()); } }
public async Task <TravelPlanActivityDto> CreateAsync(TravelPlanActivityDto activityDto, Guid userId) { try { var travelPlan = await _travelPlanService.GetAsync(activityDto.TravelPlanId); if (travelPlan == null) { throw new Exception("Travel Plan Not Found"); } //map here var newActivity = new TravelPlanActivity { Name = activityDto.Name, StartTime = activityDto.StartTime, EndTime = activityDto.EndTime, Category = activityDto.Category, Location = new Location { Address = activityDto.Location.Address, Latitude = activityDto.Location.Latitude, Longitude = activityDto.Location.Longitude, }, HostId = userId, TravelPlanId = activityDto.TravelPlanId }; var addedActivity = await _travelPlanActivityRepository.CreateAsync(newActivity); return(new TravelPlanActivityDto(addedActivity)); } catch (Exception) { throw; } }