private void CreateMembership(Site site, CreateSiteOptions options) { site = Get(site); var membershipName = site.Membership; //如果用户没有指定新的Membership名称,直接使用站点原来使用的名称。(有可能是导入的情况) if (!string.IsNullOrEmpty(options.MembershipName)) { //如果有父站点,新的子站点的Membership名称使用 指定的名称+"_"+子站点的名称 if (site.Parent != null) { membershipName = options.MembershipName + "_" + site.Name; } else { membershipName = options.MembershipName; } } site.Membership = membershipName; if (!string.IsNullOrEmpty(membershipName)) { var membership = new Kooboo.CMS.Membership.Models.Membership(membershipName).AsActual(); if (membership == null) { var membershipFile = GetSiteRelatedFile(site, MembershipFileName); if (!string.IsNullOrEmpty(membershipFile) && File.Exists(membershipFile)) { using (FileStream fs = new FileStream(membershipFile, FileMode.Open, FileAccess.Read)) { _membershipProvider.Import(membershipName, fs); } try { File.Delete(membershipFile); } catch (Exception e) { Kooboo.HealthMonitoring.Log.LogException(e); } } else if (site.Parent != null && !string.IsNullOrEmpty(site.Membership)) { site.Membership = Get(site.Parent).Membership; } else { site.Membership = null; } } } Save(site); foreach (var childSite in ChildSites(site)) { CreateMembership(childSite, options); } }
public ActionResult Import(string name, string @return) { var data = new JsonResultData(ModelState); data.RunWithTry((resultData) => { if (Request.Files.Count > 0 && Request.Files[0].ContentLength > 0) { _provider.Import(name, Request.Files[0].InputStream); } data.RedirectUrl = @return; }); return(Json(data, "text/plain", System.Text.Encoding.UTF8)); }
private Site CreateMembership(Site site, string membershipName) { //Create the repository if the repository does not exists. site = site.AsActual(); if (!string.IsNullOrEmpty(membershipName)) { var membership = new Kooboo.CMS.Membership.Models.Membership(membershipName).AsActual(); if (membership == null) { var membershipFile = GetSiteRelatedFile(site, MembershipFileName); if (!string.IsNullOrEmpty(membershipFile) && File.Exists(membershipFile)) { using (FileStream fs = new FileStream(membershipFile, FileMode.Open, FileAccess.Read)) { _membershipProvider.Import(membershipName, fs); } site.Membership = membershipName; try { File.Delete(membershipFile); } catch (Exception e) { Kooboo.HealthMonitoring.Log.LogException(e); } } else if (site.Parent != null) { site.Membership = site.Parent.AsActual().Membership; } else { site.Membership = null; } } } Save(site); foreach (var childSite in ChildSites(site)) { CreateMembership(childSite, membershipName); } return(site); }