Example #1
0
        //public override void FeatureActivated(SPFeatureReceiverProperties properties)
        //{
        //}
        //public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
        //{
        //}

        /// <summary>
        /// Occurs after a Feature is installed.
        /// </summary>
        /// <param name="properties">An <see cref="T:Microsoft.SharePoint.SPFeatureReceiverProperties" /> object that represents the properties of the event.</param>
        public override void FeatureInstalled(SPFeatureReceiverProperties properties)
        {
            try
            {
                if (!System.Diagnostics.EventLog.SourceExists(SourceName))
                {
                    System.Diagnostics.EventLog.CreateEventSource(new System.Diagnostics.EventSourceCreationData(SourceName, "Application"));
                }
                WebsiteModelExtensions.RegisterLoggerSource();
                WebsiteModelExtensions.TraceEvent
                    (String.Format("CAS.SmartFactory.CW.WebsiteModel FeatureInstalled: {0}", properties.Definition.DisplayName), 54, TraceSeverity.High, WebsiteModelExtensions.LoggingCategories.FeatureActivation);
                IServiceLocator       _serviceLocator = SharePointServiceLocator.GetCurrent();
                IServiceLocatorConfig _typeMappings   = _serviceLocator.GetInstance <IServiceLocatorConfig>();
                _typeMappings.RegisterTypeMapping <ICWAccountFactory, CWAccountData>();
                WebsiteModelExtensions.TraceEvent("CAS.SmartFactory.CW.WebsiteModel TypeMapping registered", 59, TraceSeverity.High, WebsiteModelExtensions.LoggingCategories.FeatureActivation);
            }
            catch (Exception _ex)
            {
                System.Diagnostics.EventLog.WriteEvent(SourceName, new System.Diagnostics.EventInstance(63, 0)
                {
                    EntryType = System.Diagnostics.EventLogEntryType.Error
                }, _ex);
                throw;
            }
        }
Example #2
0
        /// <summary>
        /// Create a new instance of the service locator and possibly fill it with farm and
        /// site level mappings.
        /// </summary>
        /// <returns>The service locator instance for the site.  Combines site and farm level mappings</returns>
        private IServiceLocator CreateServiceLocatorInstance(SPSite site)
        {
            IEnumerable <TypeMapping> configuredTypeMappings = this.FarmLocatorConfig.GetTypeMappings();
            IServiceLocatorFactory    factory = GetServiceLocatorFactory(configuredTypeMappings);
            var entry = new SiteLocatorEntry();

            entry.LoadTime = DateTime.Now;
            IServiceLocatorConfig siteserviceLocatorConfig = GetServiceLocatorConfig(site);

            entry.SiteMappings = siteserviceLocatorConfig.GetTypeMappings();
            entry.locator      = factory.Create();

            lock (syncRoot)
            {
                var farmLocator = this.GetCurrentFarmLocator();

                if (farmLocator.GetType() == typeof(ActivatingServiceLocator))
                {
                    // call order is important, the mappings at the site will override the mappings at the service.
                    factory.LoadTypeMappings(entry.locator, ((ActivatingServiceLocator)farmLocator).GetTypeMappings());
                    factory.LoadTypeMappings(entry.locator, entry.SiteMappings);
                }
                else
                {
                    //since registering runtime registeration is a feature of activating service locator, we will
                    //assume that if it is not an activating locator, it is not supporting runtime registration.
                    SetupCustomLocator(factory, entry.locator, entry.SiteMappings);
                }

                siteLocators[site.ID] = entry;
            }

            return(entry.locator);
        }
Example #3
0
        public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
        {
            try
            {
                IServiceLocator       serviceLocator = SharePointServiceLocator.GetCurrent();
                IServiceLocatorConfig typeMappings   = serviceLocator.GetInstance <IServiceLocatorConfig>();
                typeMappings.Site = SPContext.Current.Site;
                typeMappings.RemoveTypeMappings <LicenseRepository>();
                typeMappings.RemoveTypeMappings <PageLayoutRepository>();
                typeMappings.RemoveTypeMappings <MasterPageRepository>();
            }
            catch (Exception ex)
            {
                ex.ToString();
            }

            try
            {
                SPUserCodeService userCodeService = SPUserCodeService.Local;

                RemoveProxyOperation(userCodeService, ContainsKeyDataArgs.OperationAssemblyName, ContainsKeyDataArgs.OperationTypeName);
                RemoveProxyOperation(userCodeService, ReadConfigArgs.OperationAssemblyName, ReadConfigArgs.OperationTypeName);
                RemoveProxyOperation(userCodeService, ProxyInstalledArgs.OperationAssemblyName, ProxyInstalledArgs.OperationTypeName);
                userCodeService.Update();
            }
            catch (Exception ex)
            {
                ex.ToString();
            }
        }
Example #4
0
        /// <summary>
        /// Gets the caching interval for the site collection locator.
        /// </summary>
        /// <returns>The interval for caching a site service locator</returns>
        public int GetSiteCacheInterval()
        {
            IServiceLocatorConfig config = GetServiceLocatorConfig();
            int cacheInterval            = config.GetSiteCacheInterval();

            if (cacheInterval == -1)
            {
                cacheInterval = defaultSiteCacheIntervalInSeconds;
            }

            return(cacheInterval);
        }
Example #5
0
 /// <summary>
 /// Occurs when a Feature is uninstalled.
 /// </summary>
 /// <param name="properties">An <see cref="T:Microsoft.SharePoint.SPFeatureReceiverProperties" /> object that represents the properties of the event.</param>
 public override void FeatureUninstalling(SPFeatureReceiverProperties properties)
 {
     try
     {
         // Get the ServiceLocatorConfig service from the service locator.
         WebsiteModelExtensions.TraceEvent
             (String.Format("CAS.SmartFactory.CW.WebsiteModel FeatureUninstalling: {0}", properties.Definition.DisplayName), 76, TraceSeverity.Monitorable, WebsiteModelExtensions.LoggingCategories.FeatureActivation);
         IServiceLocator       _serviceLocator = SharePointServiceLocator.GetCurrent();
         IServiceLocatorConfig _typeMappings   = _serviceLocator.GetInstance <IServiceLocatorConfig>();
         _typeMappings.RemoveTypeMapping <ICWAccountFactory>(null);
         WebsiteModelExtensions.TraceEvent
             ("CAS.SmartFactory.CW.WebsiteModel TypeMapping removed: ICWAccountFactory", 82, TraceSeverity.High, WebsiteModelExtensions.LoggingCategories.FeatureActivation);
         WebsiteModelExtensions.UnregisterLoggerSource();
     }
     catch (Exception _ex)
     {
         System.Diagnostics.EventLog.WriteEvent(SourceName, new System.Diagnostics.EventInstance(63, 0)
         {
             EntryType = System.Diagnostics.EventLogEntryType.Error
         }, _ex);
         throw;
     }
 }
 private static void registerTypeMappings(IServiceLocatorConfig typeMappings)
 {
     LogUtility logger = new LogUtility();
     logger.TraceDebugInformation("starting registerTypeMappings", typeof(ServiceLocationRegistration));
     typeMappings.RegisterTypeMapping<IServiceLocatorConfig, ServiceLocatorConfig>();
     typeMappings.RegisterTypeMapping<IAddSandboxedSolutions, AddSandboxedSolutions>();
     typeMappings.RegisterTypeMapping<IContentTypeOperations, ContentTypeOperations>();
     typeMappings.RegisterTypeMapping<IDocIconOperations, DocIconOperations>();
     typeMappings.RegisterTypeMapping<IFeatureActivator, FeatureActivator>();
     typeMappings.RegisterTypeMapping<IFieldOperations, FieldOperations>();
     typeMappings.RegisterTypeMapping<IListOperations, ListOperations>();
     //typeMappings.RegisterTypeMapping<ILogUtility, SPListLogger>();
     typeMappings.RegisterTypeMapping<ILogUtility, LogUtility>();
     typeMappings.RegisterTypeMapping<IManagedMetaDataOperations, ManagedMetaDataOperations>();
     typeMappings.RegisterTypeMapping<IModifyContentType, ModifyContentType>();
     typeMappings.RegisterTypeMapping<IViewOperations, ModifyViewClass>();
     typeMappings.RegisterTypeMapping<INavigationCustomization, NavigationCustomization>();
     typeMappings.RegisterTypeMapping<ISiteColumnOperations, SiteColumnOperations>();
     typeMappings.RegisterTypeMapping<ISPFileOperations, SPFileOperations>();
     typeMappings.RegisterTypeMapping<ISPUserOperations, SPUserOperations>();
     typeMappings.RegisterTypeMapping<ITimerJobOperations, TimerJobOperations>();
     typeMappings.RegisterTypeMapping<IWebPartOperations, WebPartOperations>();
     typeMappings.RegisterTypeMapping<IWorkflowOperations, WorkflowOperations>();
     typeMappings.RegisterTypeMapping<IFaceBookGraphAPIOperations, FaceBookGraphAPIOperations>();
     typeMappings.RegisterTypeMapping<IWorkflowMessageParser, WorkflowMessageParser>();
     typeMappings.RegisterTypeMapping<IUserParser, UserParser>();
     typeMappings.RegisterTypeMapping<ISLAMConfigurationGenerator, SLAMConfigurationGenerator>();
     typeMappings.RegisterTypeMapping<IListTemplateFinder, ListTemplateFinder>();
     typeMappings.RegisterTypeMapping<IWikiPagesOperations, WikiPagesOperations>();
     typeMappings.RegisterTypeMapping<IContentOrganizerRuleCreationData, ContentOrganizerRuleCreationData>();
     typeMappings.RegisterTypeMapping<IContentOrganizerConditionalData, ContentOrganizerConditionalData>();
     typeMappings.RegisterTypeMapping<IContentOrganizerCreator, ContentOrganizerCreator>();
     typeMappings.RegisterTypeMapping<ICustomContentOrganizerRouterRegistrar, CustomContentOrganizerRouterRegistrar>();
     typeMappings.RegisterTypeMapping<ILinkToDocumentCreator, LinkToDocumentCreator>();
     logger.TraceDebugInformation("Finishing registerTypeMappings", typeof(ServiceLocationRegistration));
 }
Example #7
0
 public static void Reset()
 {
     ReplaceCurrentServiceLocator(null);
     _farmServiceLocatorConfig = null;
     _siteLocators.Clear();
 }
Example #8
0
        public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {
            try
            {
                IServiceLocator       serviceLocator = SharePointServiceLocator.GetCurrent();
                IServiceLocatorConfig typeMappings   = serviceLocator.GetInstance <IServiceLocatorConfig>();

                //SPSite site = properties.Feature.Parent as SPSite;
                SPWeb web = properties.Feature.Parent as SPWeb;
                typeMappings.Site = web.Site;
                typeMappings.RegisterTypeMapping <ILicenseRepository, LicenseRepository>();
                typeMappings.RegisterTypeMapping <IPageLayoutRepository, PageLayoutRepository>();
                typeMappings.RegisterTypeMapping <IMasterPageRepository, MasterPageRepository>();
                typeMappings.RegisterTypeMapping <IKeywordRepository, KeywordRepository>();
                web.Update();
            }
            catch (Exception ex)
            {
                SPDiagnosticsService.Local.WriteTrace(0, new SPDiagnosticsCategory(ex.Source, TraceSeverity.High, EventSeverity.Error), TraceSeverity.High, ex.Message, ex.Data);
                //ex.ToString();
            }

            try
            {
                SPWeb web = properties.Feature.Parent as SPWeb;

                if (web.WebTemplate.ToLower() == "websiteroot")
                {
                    //Hemrika.SharePresence.WebSite.Modules.WebPageModule.WebPageModule, Hemrika.SharePresence.WebSite, Version=1.0.0.0, Culture=neutral, PublicKeyToken=11e6604a27f32a11
                    CreateWorkItem(web, "Hemrika.SharePresence.WebSite.Modules.WebPageModule.WebPageModule", "Hemrika.SharePresence.WebSite, Version=1.0.0.0, Culture=neutral, PublicKeyToken=11e6604a27f32a11");
                    //Hemrika.SharePresence.WebSite.Modules.LicenseModule.LicenseModule, Hemrika.SharePresence.WebSite, Version=1.0.0.0, Culture=neutral, PublicKeyToken=11e6604a27f32a11
                    CreateWorkItem(web, "Hemrika.SharePresence.WebSite.Modules.LicenseModule.LicenseModule", "Hemrika.SharePresence.WebSite, Version=1.0.0.0, Culture=neutral, PublicKeyToken=11e6604a27f32a11");
                    //Hemrika.SharePresence.WebSite.Modules.SemanticModule.SemanticModule, Hemrika.SharePresence.WebSite, Version=1.0.0.0, Culture=neutral, PublicKeyToken=11e6604a27f32a11
                    CreateWorkItem(web, "Hemrika.SharePresence.WebSite.Modules.SemanticModule.SemanticModule", "Hemrika.SharePresence.WebSite, Version=1.0.0.0, Culture=neutral, PublicKeyToken=11e6604a27f32a11");
                }
            }
            catch (Exception ex)
            {
                SPDiagnosticsService.Local.WriteTrace(0, new SPDiagnosticsCategory(ex.Source, TraceSeverity.High, EventSeverity.Error), TraceSeverity.High, ex.Message, ex.Data);
                //ex.ToString();
            }

            /*
             * IConfigManager configManager = serviceLocator.GetInstance<IConfigManager>();
             * configManager.SetWeb(SPContext.Current.Site.RootWeb);
             * IPropertyBag bag = configManager.GetPropertyBag(ConfigLevel.CurrentSPSite);
             */

            try
            {
                SPUserCodeService userCodeService = SPUserCodeService.Local;

                AddProxyOperation(userCodeService, ContainsKeyDataArgs.OperationAssemblyName, ContainsKeyDataArgs.OperationTypeName);
                AddProxyOperation(userCodeService, ReadConfigArgs.OperationAssemblyName, ReadConfigArgs.OperationTypeName);
                AddProxyOperation(userCodeService, ProxyInstalledArgs.OperationAssemblyName, ProxyInstalledArgs.OperationTypeName);
                userCodeService.Update();
            }
            catch (Exception ex)
            {
                SPDiagnosticsService.Local.WriteTrace(0, new SPDiagnosticsCategory(ex.Source, TraceSeverity.High, EventSeverity.Error), TraceSeverity.High, ex.Message, ex.Data);
                //ex.ToString();
            }
        }
 private static void unregisterTypeMappings(IServiceLocatorConfig typeMappings)
 {
     typeMappings.RemoveTypeMapping<IAddSandboxedSolutions>(null);
     typeMappings.RemoveTypeMapping<IContentTypeOperations>(null);
     typeMappings.RemoveTypeMapping<IDocIconOperations>(null);
     typeMappings.RemoveTypeMapping<IFeatureActivator>(null);
     typeMappings.RemoveTypeMapping<IFieldOperations>(null);
     typeMappings.RemoveTypeMapping<IListOperations>(null);
     typeMappings.RemoveTypeMapping<ILogUtility>(null);
     typeMappings.RemoveTypeMapping<IManagedMetaDataOperations>(null);
     typeMappings.RemoveTypeMapping<IModifyContentType>(null);
     typeMappings.RemoveTypeMapping<IViewOperations>(null);
     typeMappings.RemoveTypeMapping<INavigationCustomization>(null);
     typeMappings.RemoveTypeMapping<ISiteColumnOperations>(null);
     typeMappings.RemoveTypeMapping<ISPFileOperations>(null);
     typeMappings.RemoveTypeMapping<ISPUserOperations>(null);
     typeMappings.RemoveTypeMapping<ITimerJobOperations>(null);
     typeMappings.RemoveTypeMapping<IWebPartOperations>(null);
     typeMappings.RemoveTypeMapping<IWorkflowOperations>(null);
     typeMappings.RemoveTypeMapping<IFaceBookGraphAPIOperations>(null);
     typeMappings.RemoveTypeMapping<IUserParser>(null);
     typeMappings.RemoveTypeMapping<ISLAMConfigurationGenerator>(null);
     typeMappings.RemoveTypeMapping<IListTemplateFinder>(null);
     typeMappings.RemoveTypeMapping<IWikiPagesOperations>(null);
     typeMappings.RemoveTypeMapping<IContentOrganizerRuleCreationData>(null);
     typeMappings.RemoveTypeMapping<IContentOrganizerConditionalData>(null);
     typeMappings.RemoveTypeMapping<IContentOrganizerCreator>(null);
     typeMappings.RemoveTypeMapping<ILinkToDocumentCreator>(null);
 }