public static SPFeature ActivateFeatureIfNecessary(SPSite site, Guid featureGuid)
        {
            site.RequireNotNull("site");
            featureGuid.Require(Guid.Empty != featureGuid, "featureGuid");

            SPFeature feature = site.Features[featureGuid];
            if (null == feature)
            {
                feature = site.Features.Add(featureGuid);
            }

            return feature;
        }
 public static SPUserSolution AddSandboxedSolution(SPSite site, string path, string solutionName)
 {
     site.RequireNotNull("site");
     path.RequireNotNullOrEmpty("path");
     solutionName.RequireNotNullOrEmpty("solutionName");
     if (!File.Exists(path))
     {
         throw new FileNotFoundException("File not found!", path);
     }
     return AddSandboxedSolution(site, File.ReadAllBytes(path), solutionName);
 }
        public static SPUserSolution AddSandboxedSolution(SPSite site, byte[] fileData, string solutionName)
        {
            site.RequireNotNull("site");
            fileData.RequireNotNull("fileData");
            solutionName.RequireNotNullOrEmpty("solutionName");

            SPDocumentLibrary solutionGallery = site.GetCatalog(SPListTemplateType.SolutionCatalog) as SPDocumentLibrary;
            if (null != solutionGallery)
            {
                solutionGallery.ParentWeb.AllowUnsafeUpdates = true;
                string solutionPath = Path.Combine(solutionGallery.RootFolder.ServerRelativeUrl, solutionName);
                if (!site.RootWeb.GetFile(solutionPath).Exists)
                {
                    SPFile solutionFile = solutionGallery.RootFolder.Files.Add(solutionName, fileData);
                    SPUserSolution solution = site.Solutions.Add(solutionFile.Item.ID);
                    return solution;
                }
            }

            return null;
        }
        public static SPFeature ActivateFeatureIfNecessary(SPSite site, Guid featureGuid, bool force, SPFeatureDefinitionScope sPFeatureDefinitionScope)
        {
            site.RequireNotNull("site");
            featureGuid.Require(Guid.Empty != featureGuid, "featureGuid");

            SPFeature feature = site.Features[featureGuid];
            if (null == feature || force)
            {
                feature = site.Features.Add(featureGuid, force, sPFeatureDefinitionScope);
            }

            return feature;
        }
 public static void Unregister(SPSite site)
 {
     site.RequireNotNull("site");
     elevatedPrivilegesUnRegisterTypes(site);
 }
        private static void UnregisterTypes(SPSite site)
        {
            site.RequireNotNull("site");
            LogUtility logUtility = new LogUtility();
            try
            {
                logUtility.TraceDebugInformation("Deactivating Local utilities", typeof(ServiceLocationRegistration));
                IServiceLocator serviceLocator = SharePointServiceLocator.GetCurrent();
                IServiceLocatorConfig typeMappings = serviceLocator.GetInstance<IServiceLocatorConfig>();
                typeMappings.Site = site;
                unregisterTypeMappings(typeMappings);
                logUtility.TraceDebugInformation("Successfully deactivated Local utilities", typeof(ServiceLocationRegistration));
            }
            catch (Exception exception)
            {
                logUtility.TraceDebugException("Error while deactivating Local utilities", typeof(ServiceLocationRegistration), exception);
            }

            finally
            {
                logUtility.TraceDebugInformation("Finished deactivating Local utilities", typeof(ServiceLocationRegistration));
            }
        }
 private static void RegisterTypes(SPSite site)
 {
     site.RequireNotNull("site");
     LogUtility logger = new LogUtility();
     try
     {
         logger.TraceDebugInformation("Registering types for use across farms", typeof(ServiceLocationRegistration));
         IServiceLocator serviceLocator = SharePointServiceLocator.GetCurrent();
         IServiceLocatorConfig typeMappings = serviceLocator.GetInstance<IServiceLocatorConfig>();
         typeMappings.Site = site;
         registerTypeMappings(typeMappings);
     }
     catch (Exception exception)
     {
         logger.TraceDebugException("Exception while registering types!", typeof(ServiceLocationRegistration), exception);
     }
     finally
     {
         logger.TraceDebugInformation("Finished registering types for use across farms", typeof(ServiceLocationRegistration));
     }
 }