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;
            }
        }
Example #2
0
        public async Task <IActionResult> Create([FromBody] TPAnnouncementDto announcementDto)
        {
            try
            {
                var userId = HttpContext.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier).Value;

                var announcement = await _announcementRepo.CreateAsync(announcementDto, new Guid(userId));

                return(Ok(announcement));
            }
            catch (Exception)
            {
                throw;
            }
        }