public void Create(NewMessageBoardModel model)
        {
            var from =
                _systemUserRepository.GetFirstOrDefault(predicate: a => a.SystemUserId == model.FromSystemUserId,
                                                        include: a => a.Include(b => b.Business));

            if (from == null)
            {
                throw new ApplicationException("From Id is invalid.");
            }

            var to =
                _systemUserRepository.GetFirstOrDefault(predicate: a => a.SystemUserId == model.ToSystemUserId,
                                                        include: a => a.Include(b => b.Business));

            if (to == null)
            {
                throw new ApplicationException("To Id is invalid.");
            }

            var businessToBusiness = _businessToBusinessRepository.GetFirstOrDefault(predicate: a =>
                                                                                     a.BusinessId1 == from.BusinessId && a.BusinessId2 == to.BusinessId); if (businessToBusiness == null)

            {
                throw new ApplicationException("The Connection is not found.");
            }

            if (businessToBusiness.IsPending == false)
            {
                throw new ApplicationException("Your connection is not pending anymore");
            }
            var requester = businessToBusiness.CreatedBy == from.SystemUserId ? from : to;
            var accepter  = requester.SystemUserId == from.SystemUserId ? to : from;

            var message = new MentifiMessage
            {
                Subject          = "Message Board Post",
                Body             = model.Body,
                DateSent         = DateTime.UtcNow,
                FromBusinessId   = requester.BusinessId,
                FromSystemUserId = requester.SystemUserId,
                ToSystemUserId   = accepter.SystemUserId,
                ToBusinessId     = accepter.BusinessId,
            };
            var messagePostChecker = new MentifiMessageBoardPostChecker()
            {
                CreatedBy      = model.FromSystemUserId,
                HubMessageId   = message.MentifiMessageId,
                MentifiMessage = message
            };

            _mentifiMessageBoardPostRepository.Insert(messagePostChecker);
            CreateNotif(model.ToSystemUserId, model.FromSystemUserId, Constant.NOTIFTYPE_MENTIFIMESSAGEBOARD,
                        message.MentifiMessageId.ToString());

            _unitOfWork.SaveChanges();
        }
 public IActionResult Post([FromBody] NewMessageBoardModel model)
 {
     _messageBoardService.Create(model);
     return(Ok(MessageHelper.Success("The message has been sent.")));
 }