private Uri GetPartnerHomePageUrl(string siteCollectionUrl, string queryStringParameterValue, Uri redirectUrl)
        {
            // If the querystring parameter equals 'home', then the user is redirected to it's home page.
            if (!string.IsNullOrEmpty(queryStringParameterValue) &&
                !string.Equals(queryStringParameterValue, "home", StringComparison.OrdinalIgnoreCase))
            {
                IBusinessEventTypeConfigurationRepository businessEventConfigRepository
                    = SharePointServiceLocator.Current.GetInstance <IBusinessEventTypeConfigurationRepository>();

                BusinessEventTypeConfiguration businessEventConfig = null;
                RunElevated(delegate
                {
                    businessEventConfig = businessEventConfigRepository.GetBusinessEventTypeConfiguration(queryStringParameterValue);
                });

                if (businessEventConfig != null)
                {
                    using (SPSite site = new SPSite(siteCollectionUrl))
                    {
                        using (SPWeb web = site.OpenWeb(businessEventConfig.TopLevelSiteRelativeUrl))
                        {
                            if (web.Exists)
                            {
                                redirectUrl = new Uri(web.Url);
                            }
                        }
                    }
                }
            }
            return(redirectUrl);
        }
            public BusinessEventTypeConfiguration GetBusinessEventTypeConfiguration(string businessEvent)
            {
                BusinessEventTypeConfiguration configuration = new BusinessEventTypeConfiguration();

                configuration.BusinessEventIdKey      = "unittestkey";
                configuration.SiteTemplate            = "unittesttemplate";
                configuration.TopLevelSiteRelativeUrl = "/unittest";

                return(configuration);
            }
Ejemplo n.º 3
0
        public void BusinessEventIdKeyTest()
        {
            BusinessEventTypeConfiguration target = new BusinessEventTypeConfiguration();
            string expected = "test";
            string actual;

            target.BusinessEventIdKey = expected;
            actual = target.BusinessEventIdKey;
            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 4
0
        public void SiteTemplateTest()
        {
            BusinessEventTypeConfiguration target = new BusinessEventTypeConfiguration();
            string expected = "test";
            string actual;

            target.SiteTemplate = expected;
            actual = target.SiteTemplate;
            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 5
0
        public void TopLevelSiteRelativeUrlTest()
        {
            BusinessEventTypeConfiguration target = new BusinessEventTypeConfiguration();
            string expected = "test";
            string actual;

            target.TopLevelSiteRelativeUrl = expected;
            actual = target.TopLevelSiteRelativeUrl;
            Assert.AreEqual(expected, actual);
        }
        /// <summary>
        /// Executes the workflow activity. This will query the Business Event type configuration list through the
        /// <see cref="IBusinessEventTypeConfigurationRepository"/>.
        /// </summary>
        /// <param name="executionContext">The excecution context.</param>
        /// <returns>Returns the status after the workflow activity has run. </returns>
        protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
        {
            IBusinessEventTypeConfigurationRepository configurationRepository
                = SharePointServiceLocator.Current.GetInstance <IBusinessEventTypeConfigurationRepository>();

            BusinessEventTypeConfiguration configuration = configurationRepository.GetBusinessEventTypeConfiguration(this.BusinessEventName);

            this.SiteTemplateName        = configuration.SiteTemplate;
            this.TopLevelSiteRelativeUrl = configuration.TopLevelSiteRelativeUrl;
            this.BusinessEventIdKey      = configuration.BusinessEventIdKey;

            return(ActivityExecutionStatus.Closed);
        }
        public void GetBusinessEventTypeConfigurationTest()
        {
            MockConfigManager.ReturnValue = "http://localhost";
            SharePointServiceLocator.ReplaceCurrentServiceLocator(new ActivatingServiceLocator().RegisterTypeMapping <IHierarchicalConfig, MockConfigManager>());

            SPSite fakeSite = Isolate.Fake.Instance <SPSite>(Members.ReturnRecursiveFakes);

            Isolate.Swap.NextInstance <SPSite>().With(fakeSite);

            SPWeb fakeWeb = Isolate.Fake.Instance <SPWeb>(Members.ReturnRecursiveFakes);

            Isolate.WhenCalled(() => fakeSite.OpenWeb()).WillReturn(fakeWeb);

            Guid SiteTemplateFieldId            = new Guid("84267e40-7f47-4f40-b3be-4004312eb467");
            Guid BusinessEventIdKeyFieldId      = new Guid("3D6B9777-FDA5-4639-9316-B39D3E060573");
            Guid TopLevelSiteRelativeUrlFieldId = new Guid("E87A0DE5-29D7-461e-9C83-67C2D291B54C");

            SPList fakeList = fakeWeb.Lists["Business Event Type Configuration"];
            SPListItemCollection fakeItems = fakeList.GetItems(new SPQuery());

            Isolate.WhenCalled(() => fakeItems.Count).WillReturn(1);

            var fakeItem = fakeItems[0];

            Isolate.WhenCalled(() => fakeItem[SiteTemplateFieldId]).WithExactArguments().WillReturn("TESTSTP");
            Isolate.WhenCalled(() => fakeItem[BusinessEventIdKeyFieldId]).WithExactArguments().WillReturn("TESTKEY");
            Isolate.WhenCalled(() => fakeItem[TopLevelSiteRelativeUrlFieldId]).WithExactArguments().WillReturn("http://testurl");

            SPFarmPropertyBag spFarmPropertyBag = Isolate.Fake.Instance <SPFarmPropertyBag>();

            Isolate.Swap.NextInstance <SPFarmPropertyBag>().With(spFarmPropertyBag);

            string businessEvent = string.Empty;
            BusinessEventTypeConfiguration expected = new BusinessEventTypeConfiguration();

            expected.BusinessEventIdKey      = "TESTKEY";
            expected.SiteTemplate            = "TESTSTP";
            expected.TopLevelSiteRelativeUrl = "http://testurl";

            BusinessEventTypeConfigurationRepository target = new BusinessEventTypeConfigurationRepository();
            BusinessEventTypeConfiguration           actual;

            actual = target.GetBusinessEventTypeConfiguration(businessEvent);
            Assert.AreEqual(expected.BusinessEventIdKey, actual.BusinessEventIdKey);
            Assert.AreEqual(expected.SiteTemplate, actual.SiteTemplate);
            Assert.AreEqual(expected.TopLevelSiteRelativeUrl, actual.TopLevelSiteRelativeUrl);
        }