Пример #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 TestSend()
        {
            // 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.Send("foo", "test");

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