public ForumMessageDTO CreateForumMessage(ForumMessageCreateDTO newForumMessage)
        {
            ForumMessage entity = mapper.Map <ForumMessage>(newForumMessage);
            var          user   = _userMockRepository.GetUserByID(entity.SenderID);

            if (user == null)
            {
                throw new NotFoundException("There is no user with that ID!");
            }

            try
            {
                var forumMessage = _forumMessageRepository.CreateForumMessage(entity);
                _forumMessageRepository.SaveChanges();
                return(mapper.Map <ForumMessageDTO>(forumMessage));
            }
            catch (Exception ex)
            {
                throw new ErrorOccurException(ex.Message);
            }
        }
Ejemplo n.º 2
0
        public ActionResult <ForumMessageDTO> CreateForumMessage([FromHeader] string key, [FromBody] ForumMessageCreateDTO newForumMessage)
        {
            if (!_authorizationService.AuthorizeUser(key))
            {
                return(StatusCode(StatusCodes.Status401Unauthorized, "User authorization failed!"));
            }

            var newmess = newForumMessage;

            if (newmess.ForumID == 0 || newmess.Body == "" || _forumMessageService.GetForumMessagesByForumID(newmess.ForumID) == null)
            {
                return(StatusCode(StatusCodes.Status400BadRequest, "Unvalid message! Check your data!"));
            }
            if (_forumService.GetForumByID(newmess.ForumID).IsOpen == false)
            {
                return(StatusCode(StatusCodes.Status400BadRequest, "Forum is closed! You can not send message!"));
            }

            try
            {
                var created = _forumMessageService.CreateForumMessage(newForumMessage);

                return(created);
            }
            catch (Exception ex)
            {
                logger.LogError(ex, "Error creating new forum message: " + ex.Message);

                return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message));
            }
        }