Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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);
        }