public ActionResult DeleteUserMessage(int messageId)
        {
            try
            {
                if (messageId < 1)
                {
                    throw new ArgumentException(
                              MessagingConstants.MessageArgumentWrongValue(nameof(messageId), messageId));
                }

                _messagingService.DeleteUserMessage(messageId);
                return(StatusCode(200));
            }
            catch (DbUpdateException)
            {
                return(StatusCode(507));
            }
            catch (MessageNotFoundException)
            {
                return(StatusCode(404));
            }
            catch (Exception)
            {
                return(StatusCode(500));
            }
        }
        public ActionResult <List <UserMessages> > GetUserMessagesByAdvertismentId(int advertId, string currentUserId)
        {
            try
            {
                ArgumentsValidator.Validate(nameof(currentUserId), currentUserId);

                if (advertId < 1)
                {
                    throw new ArgumentException(
                              MessagingConstants.MessageArgumentWrongValue(nameof(advertId), advertId));
                }

                var response = _messagingService.GetUserMessagesByAdvertismentId(advertId, currentUserId);
                return(StatusCode(200, response));
            }
            catch (ArgumentNullException)
            {
                return(StatusCode(400));
            }
            catch (ArgumentException)
            {
                return(StatusCode(400));
            }
            catch (Exception)
            {
                return(StatusCode(500));
            }
        }
        public ActionResult UpdateMessageReadStatus(int messageId, bool newReadStatus)
        {
            try
            {
                if (messageId < 1)
                {
                    throw new ArgumentException(
                              MessagingConstants.MessageArgumentWrongValue(nameof(messageId), messageId));
                }

                _messagingService.UpdateMessageReadStatus(messageId, newReadStatus);
                return(StatusCode(204));
            }
            catch (MessageNotFoundException)
            {
                return(StatusCode(404));
            }
            catch (ArgumentException)
            {
                return(StatusCode(400));
            }
            catch (Exception)
            {
                return(StatusCode(500));
            }
        }