public async Task selecting_invalid_tenant_organization_should_fail()
        {
            var command = new SelectTenantOrganizationCommand("bar", "some/url");

            organizations.All()
            .Returns(Enumerable.Empty <Organization>().AsAsyncQueryable());

            var result = await handler.Handle(command);

            Assert.IsInstanceOfType(result, typeof(FailureResult));

            tenantKeyManager.DidNotReceive()
            .SetTenantKey(command.TenantKey);
        }
        public async Task Can_select_tenant_organization()
        {
            var command = new SelectTenantOrganizationCommand("foo", "some/url");

            organizations.All()
            .Returns(new[] { new Organization {
                                 Abbreviation = "foo"
                             } }.AsAsyncQueryable());

            var result = await handler.Handle(command);

            Assert.IsInstanceOfType(result, typeof(SuccessResult));

            tenantKeyManager.Received()
            .SetTenantKey(command.TenantKey);

            tenantUrlHelper.Received()
            .TransformTenantUrl(command.ReturnUrl, command.TenantKey);
        }
예제 #3
0
        public async Task <ActionResult> Select(string tenantKey, string returnUrl)
        {
            Logger.Trace("Select::{0}", tenantKey);

            if (string.IsNullOrWhiteSpace(tenantKey))
            {
                return(await Select(returnUrl));
            }

            var command = new SelectTenantOrganizationCommand(tenantKey, returnUrl);
            var result  = await mediator.SendAsync(command);

            if (result.IsSuccess)
            {
                return(new RedirectResult(result.Result as string));
            }

            ModelState.AddModelError("", result.Result.ToString());

            return(await Select(returnUrl));
        }