예제 #1
0
        public async Task <IActionResult> Register(RegisterUserViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new User {
                    UserName = model.Username
                };

                var createResult = await _userManager.CreateAsync(user, model.Password);

                if (createResult.Succeeded)
                {
                    //TODO: Create and store an Email into database
                    Guid emailId     = Guid.NewGuid();//set this equal to the Id of the created Email
                    var  queueConfig = _configuration.GetSection("QueueConfiguration");
                    var  msSender    = new MessageQueueSender <QueueItem>(queueConfig["HostName"], queueConfig["UserName"], queueConfig["Password"]);
                    msSender.Send(new QueueItem {
                        Id = emailId
                    }, queueConfig["Exchange"], queueConfig["RoutingKey"]);

                    await _signInManager.SignInAsync(user, false);

                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    foreach (var error in createResult.Errors)
                    {
                        ModelState.AddModelError("", error.Description);
                    }
                }
            }
            return(View());
        }
        public void TestRequest()
        {
            // arrange
            var mq = new MessageQueueMock();

            mq.Setup();

            using (var scope = Factory.Current.BeginLifetimeScope(b =>
            {
                b.RegisterInstance(mq.Object).As <IMessageQueue>();
            }))
                using (Factory.SetCurrentScope(scope))
                {
                    var sender = new MessageQueueSender();

                    var handler = new Mock <IRemoteResponseHandler <string, string> >();

                    // act
                    sender.Request("foo", "test", handler.Object);

                    // assert
                    var messageQueueRequest = Entity.GetByField <MessageQueueRequest>("reply_foo", MessageQueueRequest.MessageQueueRequestKey_Field)
                                              .OrderByDescending(e => e.CreatedDate)
                                              .FirstOrDefault();

                    messageQueueRequest.Should().NotBeNull();

                    mq.Respond("foo").Should().Be("\"test\"");
                }
        }
예제 #3
0
        public static void SendMailToQueue(Email email, string queuePath)
        {
            if (email != null)
            {
                var EmailQueue = new MessageQueueSender(queuePath);

                EmailQueue.SendMessage(email);
            }
        }
예제 #4
0
 public static void SendMailsToQueue(Email[] emails, string queuePath)
 {
     if (emails.Count() != 0)
     {
         var EmailQueue = new MessageQueueSender(queuePath);
         foreach (Email email in emails)
         {
             EmailQueue.SendMessage(email);
         }
     }
 }
        public void TestPublish()
        {
            // arrange
            var mq = new MessageQueueMock();

            mq.Setup();

            using (var scope = Factory.Current.BeginLifetimeScope(b =>
            {
                b.RegisterInstance(mq.Object).As <IMessageQueue>();
            }))
                using (Factory.SetCurrentScope(scope))
                {
                    var sender = new MessageQueueSender();

                    // act
                    sender.Publish("foo", "test");

                    // assert
                    mq.Subscribe("foo").Should().Be("\"test\"");
                }
        }