Exemplo n.º 1
0
        private bool DoesUserExist(string emailAddress)
        {
            var responseAddress = Guid.NewGuid().ToString().Substring(0, 6);

            responseAddress = ".\\private$\\" + responseAddress;
            try
            {
                using (var responseQueue = msmq.MessageQueue.Create(responseAddress))
                {
                    var doesUserExistRequest = new DoesUserExistRequest
                    {
                        EmailAddress = emailAddress
                    };
                    using (var requestQueue = new msmq.MessageQueue(
                               ".\\private$\\sixeyed.messagequeue.doesuserexist"))
                    {
                        var message = new msmq.Message();
                        message.BodyStream    = doesUserExistRequest.ToJsonStream();
                        message.Label         = doesUserExistRequest.GetMessageType();
                        message.ResponseQueue = responseQueue;
                        requestQueue.Send(message);
                    }
                    var response     = responseQueue.Receive();
                    var responseBody = response.BodyStream.ReadFromJson <DoesUserExistResponse>();
                    return(responseBody.Exists);
                }
            }
            finally
            {
                if (msmq.MessageQueue.Exists(responseAddress))
                {
                    msmq.MessageQueue.Delete(responseAddress);
                }
            }
        }
Exemplo n.º 2
0
        private static void CheckUserExists(DoesUserExistRequest doesUserExistRequest, msmq.Message message)
        {
            Console.WriteLine("Starting CheckUserExists for: {0}, at: {1}", doesUserExistRequest.EmailAddress, DateTime.Now.TimeOfDay);
            var doesUserExistResponse = new DoesUserExistResponse
            {
                Exists = DoesUserExist.Execute(doesUserExistRequest.EmailAddress)
            };

            using (var queue = message.ResponseQueue)
            {
                var response = new msmq.Message();
                response.BodyStream = doesUserExistResponse.ToJsonStream();
                response.Label      = doesUserExistResponse.GetMessageType();
                queue.Send(response);
            }
            Console.WriteLine("Returned: {0} for CheckUserExists for: {1}, at: {2}", doesUserExistResponse.Exists, doesUserExistRequest.EmailAddress, DateTime.Now.TimeOfDay);
        }
        /// <summary>
        /// Sends a message to check for the existance of a user using Request-Response pattern
        /// </summary>
        /// <param name="emailAddress"></param>
        /// <returns></returns>
        private bool DoesUserExist(string emailAddress)
        {
            var exists = false;

            var doesUserExist = new DoesUserExistRequest {
                EmailAddress = emailAddress
            };
            var message = new Message
            {
                Body = doesUserExist,
                ResponseConnection = _userExistResponse.Connection
            };

            _userExist.Send(message);

            _userExistResponse.Receive(msg => exists = msg.BodyAs <DoesUserExistResponse>().Exists);

            return(exists);
        }
Exemplo n.º 4
0
        private static void CheckUserExists(DoesUserExistRequest doesUserExistRequest, Message requestMessage,
                                            IMessageQueue requestQueue)
        {
            Console.WriteLine("Starting CheckUserExists for: {0}, at: {1}", doesUserExistRequest.EmailAddress,
                              DateTime.Now.TimeOfDay);
            var validator    = new UserValidator(doesUserExistRequest.EmailAddress);
            var responseBody = new DoesUserExistResponse
            {
                Exists = validator.Exists()
            };
            var responseQueue = requestQueue.GetReplyQueue(requestMessage);

            responseQueue.Send(new Message
            {
                Body = responseBody
            });
            Console.WriteLine("Returned: {0} for DoesUserExist, EmailAddress: {1}, to: {2}, at: {3}",
                              responseBody.Exists,
                              doesUserExistRequest.EmailAddress, responseQueue.Address, DateTime.Now.TimeOfDay);
        }
Exemplo n.º 5
0
        private bool DoesUserExist(string emailAddress)
        {
            var exists = false;

            var doesUserExistRequest = new DoesUserExistRequest
            {
                EmailAddress = emailAddress
            };

            var queue         = MessageQueueFactory.CreateOutbound("doesuserexist", MessagePattern.RequestResponse);
            var responseQueue = queue.GetResponseQueue();

            queue.Send(new Message
            {
                Body            = doesUserExistRequest,
                ResponseAddress = responseQueue.Address
            });
            responseQueue.Receive(x => exists = x.BodyAs <DoesUserExistResponse>().Exists);

            return(exists);
        }