public async Task <ActionResult <Result> > Post([FromBody] PushRequestCommand command)
        {
            if (command == null)
            {
                return(UnprocessableEntity(new Result(false, new List <string> {
                    "PushRequestCommand required"
                })));
            }

            // meditator call PushRequestCommandHandler.Handle method in application lib
            var result = await Mediator.Send(command);

            if (!result.Succeeded)
            {
                return(UnprocessableEntity(result));
            }

            return(result);
        }
        /// <summary>
        /// method use for push new request that come form user
        /// </summary>
        public Task <Result> Push(PushRequestCommand request)
        {
            QueueConfiguration queueConfiguration = _queueConfiguration[((IEnumerable <string>)request.Queues.Split(",", StringSplitOptions.None)).First()];

            Message message = new Message()
            {
                CallBackOAuthRequest = request.CallBackOAuthRequest,
                CallBackRequest      = request.CallBackRequest,
                TargetOAuthRequest   = request.TargetOAuthRequest,
                TargetRequest        = request.TargetRequest,
                Queues          = request.Queues,
                Retry           = queueConfiguration.QueueRetry,
                ReferenceNumber = _referenceNumber.ReferenceNumber,
                Headers         = _allHeaders.Headrs
            };

            _rabbitProducers.PushMessage(message, queueConfiguration);

            return(Task.FromResult(new Result(true, null)
            {
                ReferenceNumber = _referenceNumber.ReferenceNumber
            }));
        }