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); } } }
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); }
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); }
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); }