コード例 #1
0
 public void Add(ABSiteSetting item)
 {
     if (null != item)
     {
         UpdateOrAdd(item, item);
     }
 }
コード例 #2
0
        public ABSiteSetting Get(ABSiteSetting dummy)
        {
            var temp = _dbContext.ABSiteSettings.Where(it => it.UUID.Equals(dummy.UUID, StringComparison.OrdinalIgnoreCase) &&
                                                       it.SiteName.Equals(dummy.MainSite, StringComparison.OrdinalIgnoreCase))
                       .ToList()
                       .Select(it => it.ToABSiteSetting())
                       .FirstOrDefault();

            return(temp);
        }
コード例 #3
0
        public static T ToABSiteSettingEntity <T>(this ABSiteSetting model, T entity)
            where T : IABSiteSettingEntity
        {
            entity.UUID = model.UUID;
            if (!String.IsNullOrEmpty(model.MainSite))
            {
                entity.SiteName = model.MainSite;
            }

            entity.ObjectXml = DataContractSerializationHelper.SerializeAsXml(model, KnownTypes);
            return(entity);
        }
コード例 #4
0
        public void Remove(ABSiteSetting item)
        {
            ((IPersistable)item).OnSaving();
            var dummy = _dbContext.ABSiteSettings.FirstOrDefault(it => it.UUID.Equals(item.UUID, StringComparison.OrdinalIgnoreCase) &&
                                                                 it.SiteName.Equals(item.MainSite, StringComparison.OrdinalIgnoreCase));

            if (null != dummy)
            {
                _dbContext.ABSiteSettings.Remove(dummy);
                _dbContext.SaveChanges();
            }
            ((IPersistable)item).OnSaved();
        }
コード例 #5
0
        public static ABSiteSetting ToABSiteSetting(this IABSiteSettingEntity entity)
        {
            if (entity == null)
            {
                return(null);
            }

            var dummy = new ABSiteSetting();

            dummy.UUID     = entity.UUID;
            dummy.MainSite = entity.SiteName;

            var result = DataContractSerializationHelper.DeserializeFromXml <ABSiteSetting>(entity.ObjectXml, KnownTypes);

            ((IPersistable)result).Init(dummy);

            return(result);
        }
コード例 #6
0
        private void UpdateOrAdd(ABSiteSetting item, ABSiteSetting oldItem)
        {
            ((IPersistable)item).OnSaving();
            var dummy = _dbContext.ABSiteSettings.FirstOrDefault(it => it.UUID.Equals(oldItem.UUID, StringComparison.OrdinalIgnoreCase) &&
                                                                 it.SiteName.Equals(oldItem.MainSite, StringComparison.OrdinalIgnoreCase));

            if (null != dummy)
            {
                item.ToABSiteSettingEntity <ABSiteSettingEntity>(dummy);
            }
            else
            {
                dummy = item.ToABSiteSettingEntity <ABSiteSettingEntity>();
                _dbContext.ABSiteSettings.Add(dummy);
            }
            _dbContext.SaveChanges();
            ((IPersistable)item).OnSaved();
        }
コード例 #7
0
        protected virtual Site MatchSiteByVisitRule(Site site)
        {
            ABSiteSetting abSiteSetting = null;
            var           httpContext   = new HttpContextWrapper(HttpContext.Current);
            var           matchedSite   = Kooboo.CMS.Common.Runtime.EngineContext.Current.Resolve <Kooboo.CMS.Sites.Services.ABSiteSettingManager>().MatchRule(site, httpContext, out abSiteSetting);

            if (matchedSite != site && abSiteSetting != null && abSiteSetting.RedirectType != null && abSiteSetting.RedirectType.Value != RedirectType.Transfer)
            {
                string url    = null;
                var    rawUrl = RequestUrl;
                if (!string.IsNullOrEmpty(httpContext.Request.Url.Query))
                {
                    rawUrl = rawUrl + httpContext.Request.Url.Query;
                }
                if (this.RequestChannel == FrontRequestChannel.Debug)
                {
                    url = FrontUrlHelper.WrapperUrl(rawUrl, matchedSite, FrontRequestChannel.Debug).ToString();
                }
                else
                {
                    var domain = matchedSite.FullDomains.FirstOrDefault();
                    if (!string.IsNullOrEmpty(domain))
                    {
                        var baseUri = httpContext.Request.Url.Scheme + "://" + domain;
                        url = new Uri(new Uri(baseUri), rawUrl).ToString();
                    }
                }
                if (!string.IsNullOrEmpty(url))
                {
                    if (abSiteSetting.RedirectType.Value == RedirectType.Found_Redirect_302)
                    {
                        httpContext.Response.Redirect(url);
                    }
                    else if (abSiteSetting.RedirectType.Value == RedirectType.Moved_Permanently_301)
                    {
                        httpContext.Response.RedirectPermanent(url);
                    }
                }
            }
            return(matchedSite);
        }
コード例 #8
0
        public virtual void Remove(ABSiteSetting item)
        {
            var fileStorage = GetFileStorage();

            fileStorage.Remove(item);
        }
コード例 #9
0
        public virtual void Update(ABSiteSetting @new, ABSiteSetting old)
        {
            var fileStorage = GetFileStorage();

            fileStorage.Update(@new, old);
        }
コード例 #10
0
        public virtual void Add(ABSiteSetting item)
        {
            var fileStorage = GetFileStorage();

            fileStorage.Add(item);
        }
コード例 #11
0
 public static T ToABSiteSettingEntity <T>(this ABSiteSetting model)
     where T : IABSiteSettingEntity, new()
 {
     return(ToABSiteSettingEntity(model, new T()));
 }
コード例 #12
0
 public void Update(ABSiteSetting @new, ABSiteSetting old)
 {
     InsertOrUpdate(@new, old);
 }
コード例 #13
0
 private void InsertOrUpdate(ABSiteSetting @new, ABSiteSetting old)
 {
     ((IPersistable)@new).OnSaving();
     DataHelper.StoreObject(new Site(), @new, @new.UUID, ModelExtensions.ABSiteSettingDataType);
     ((IPersistable)@new).OnSaved();
 }
コード例 #14
0
 public void Add(ABSiteSetting item)
 {
     InsertOrUpdate(item, item);
 }
コード例 #15
0
        public ABSiteSetting Get(ABSiteSetting dummy)
        {
            var bucketDocumentKey = ModelExtensions.GetBucketDocumentKey(ModelExtensions.ABSiteSettingDataType, dummy.UUID);

            return(DataHelper.QueryByKey <ABSiteSetting>(new Site(), bucketDocumentKey, createModel));
        }
コード例 #16
0
        public virtual ABSiteSetting Get(ABSiteSetting dummy)
        {
            var fileStorage = GetFileStorage();

            return(fileStorage.Get(dummy));
        }
コード例 #17
0
 public void Remove(ABSiteSetting item)
 {
     DataHelper.DeleteItemByKey(new Site(), ModelExtensions.GetBucketDocumentKey(ModelExtensions.ABSiteSettingDataType, item.UUID));
 }
コード例 #18
0
 public void Update(ABSiteSetting @new, ABSiteSetting old)
 {
     UpdateOrAdd(@new, old);
 }