コード例 #1
0
        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;
            }
        }
コード例 #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());
            }
        }
コード例 #3
0
        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;
            }
        }