private static void DeployThemeToWebImplementation(Web web, Web rootWeb, string themeName, string colorFilePath, string fontFilePath, string backgroundImagePath, string masterPageName) { // Deploy files one by one to proper location if (!string.IsNullOrEmpty(colorFilePath) && System.IO.File.Exists(colorFilePath)) { rootWeb.DeployFileToThemeFolderSite(colorFilePath); } if (!string.IsNullOrEmpty(fontFilePath) && System.IO.File.Exists(fontFilePath)) { rootWeb.DeployFileToThemeFolderSite(fontFilePath); } if (!string.IsNullOrEmpty(backgroundImagePath) && System.IO.File.Exists(backgroundImagePath)) { rootWeb.DeployFileToThemeFolderSite(backgroundImagePath); } // Let's also add entry to the Theme catalog. This is not actually required, but provides visibility for the theme option, if manually changed web.AddNewThemeOptionToSiteImplementation(rootWeb, themeName, colorFilePath, fontFilePath, backgroundImagePath, masterPageName); }