public async Task <int> CreateAsync(MessageModel messageModel)
        {
            await _messageModelValidator.ValidateAndThrowAsync(messageModel);

            var messageEntity = MessageModel.FillUp(messageModel);

            messageEntity.State = EntityStatus.ExistsValue;

            await _messagesRepository.CreateAsync(messageEntity);

            return(messageEntity.Id);
        }
        public async Task <int> UpdateAsync(int messageId, MessageModel messageModel)
        {
            await _messageModelValidator.ValidateAndThrowAsync(messageModel);

            var messageEntity = await _messagesRepository.GetByIdAsync(messageId);

            if (messageEntity == null)
            {
                throw new NotFoundCustomException("Message was not found");
            }

            messageEntity = MessageModel.FillUp(messageModel);

            await _messagesRepository.UpdateAsync(messageEntity);

            return(messageEntity.Id);
        }