/// <summary> /// Create department sub site from site template /// </summary> /// <param name="currentWeb">SharePoint Current web</param> /// <param name="departmentItem">Department List Item</param> public void CreateDepartmentSite(Guid siteId, Guid webId, SPListItem departmentItem) { SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite site = new SPSite(siteId)) { using (SPWeb currentWeb = site.OpenWeb(webId)) { var webTemplates = currentWeb.Site.RootWeb.GetAvailableWebTemplates(1033); SPWebTemplate webTemplate = null; for (var i = 0; i < webTemplates.Count; i++) { var webTemplateSearchName = webTemplates[i].Title; if (!webTemplateSearchName.Contains(DepartmentTemplateName)) { continue; } webTemplate = webTemplates[i]; break; } if (webTemplate == null) { return; } var department = ParseToEntity(departmentItem); // check web existed or not var webExisted = currentWeb.Webs.FirstOrDefault(w => w.Title == department.Name); if (webExisted != null) { CreateUpdateDepartmentGroup(webExisted, currentWeb, department.Name); return; } // Default language English var newSite = currentWeb.Webs.Add(department.Code, department.Name, department.Name, Convert.ToUInt16(1033), webTemplate, false, false); newSite.AllowUnsafeUpdates = true; newSite.Navigation.UseShared = false; //Set default home pages var rootFolder = newSite.RootFolder; rootFolder.WelcomePage = "SitePages/Home.aspx"; rootFolder.Update(); //SPHelper.ActiveInstalledLanguage(newSite); // Update language resource for Site title CreateUpdateDepartmentGroup(newSite, currentWeb, department.Name); SPHelper.ActiveInstalledLanguage(newSite); foreach (var culture in newSite.SupportedUICultures) { switch (culture.LCID) { case 1066: newSite.TitleResource.SetValueForUICulture(culture, department.VietnameseName); break; default: newSite.TitleResource.SetValueForUICulture(culture, department.Name); break; } } newSite.Update(); } } }); }