public IActionResult CreateTopic([FromBody] TopicCreateDto createTopic)
        {
            if (createTopic == null)
            {
                return(BadRequest());
            }
            if (createTopic.Title == null)
            {
                return(BadRequest());
            }
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }


            var newTopic = _mapper.Map <TraTopic>(createTopic);

            string userGuid = UserHelper.GetUserGuid(_httpContextAccessor);
            var    getUser  = _transActionRepo.GetUsers().FirstOrDefault(c => c.Guid == userGuid);

            newTopic.UserId = getUser.UserId;

            _transActionRepo.CreateTopic(newTopic);

            if (!_transActionRepo.Save())
            {
                return(StatusCode(500, "A problem happened while handling your request."));
            }

            var message = new TraTopicMessage();

            message.UserId  = newTopic.UserId;
            message.TopicId = newTopic.TopicId;
            message.Body    = createTopic.Body;

            _transActionRepo.CreateTopicMessage(message);

            if (!_transActionRepo.Save())
            {
                return(StatusCode(500, "A problem happened while handling your request."));
            }

            var createdPointOfInterestToReturn = _mapper.Map <TopicDto>(newTopic);

            return(CreatedAtRoute("GetThatTopic", new { id = createdPointOfInterestToReturn.TopicId }, createdPointOfInterestToReturn));
        }
Example #2
0
        public IActionResult CreateTopic([FromBody] TopicCreateDto createTopic)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new TransActionResponse(ModelState)));
            }

            var newTopic = _mapper.Map <TraTopic>(createTopic);

            string userGuid = UserHelper.GetUserGuid(_httpContextAccessor);
            var    getUser  = _unitOfWork.User.GetByGuid(userGuid);

            newTopic.UserId = getUser.UserId;
            newTopic.LastMessageTimestamp = DateTime.Now;

            _unitOfWork.Topic.Create(newTopic);
            if (!_unitOfWork.Save())
            {
                return(StatusCode(500, new TransActionResponse("A problem happened while handling your request.")));
            }

            var message = new TraTopicMessage();

            message.UserId  = newTopic.UserId;
            message.TopicId = newTopic.TopicId;
            message.Body    = createTopic.Body;

            _unitOfWork.Message.Create(message);

            if (!_unitOfWork.Save())
            {
                return(StatusCode(500, new TransActionResponse("A problem happened while handling your request.")));
            }

            var createTopicResult = _mapper.Map <TopicDto>(newTopic);

            return(CreatedAtRoute("GetTopic", new { id = createTopicResult.TopicId }, new TransActionResponse(createTopicResult)));
        }
 public void DeleteTopicMessage(TraTopicMessage traTopicMessage)
 {
     _context.TraTopicMessage.Remove(traTopicMessage);
 }
 public void CreateTopicMessage(TraTopicMessage traTopicMessage)
 {
     _context.TraTopicMessage.Add(traTopicMessage);
 }