Beispiel #1
0
        public virtual void SaveHtmlPath()
        {
            String htmlPath = strUtil.SubString(ctx.Post("htmlPath"), 30);

            if (strUtil.IsNullOrEmpty(htmlPath))
            {
                echoError("请填写内容");
                return;
            }

            ContentApp     app = ctx.app.obj as ContentApp;
            ContentSetting s   = app.GetSettingsObj();

            if (htmlPath == s.StaticPath)
            {
                echoError("您没有修改目录名称");
                return;
            }

            if (HtmlHelper.IsHtmlDirError(htmlPath, ctx.errors))
            {
                echoError();
                return;
            }

            s.StaticPath = htmlPath;

            app.Settings = Json.ToString(s);
            app.update();

            echoToParentPart(lang("opok"));
        }
Beispiel #2
0
        public void SaveHtmlDir()
        {
            String htmlDir = strUtil.SubString(ctx.Post("htmlDir"), 30);

            if (strUtil.IsNullOrEmpty(htmlDir))
            {
                echoError("请填写内容");
                return;
            }

            if (HtmlHelper.IsHtmlDirError(htmlDir, ctx.errors))
            {
                echoError();
                return;
            }

            ContentApp     app = ctx.app.obj as ContentApp;
            ContentSetting s   = app.GetSettingsObj();

            s.StaticDir = htmlDir;

            app.Settings = Json.ToString(s);
            app.update();

            echoToParentPart(lang("opok"));
        }
 // Token: 0x060002EB RID: 747 RVA: 0x000124C1 File Offset: 0x000106C1
 internal MovePolicyItems(ContentSetting elcPolicy, ProvisionedFolder provisionedFolder, MailboxDataForFolders mailboxData, string itemClass)
 {
     this.elcPolicy    = elcPolicy;
     this.sourceFolder = provisionedFolder;
     this.mailboxData  = mailboxData;
     this.InitItemList(itemClass);
 }
Beispiel #4
0
        // Token: 0x06000447 RID: 1095 RVA: 0x0001E574 File Offset: 0x0001C774
        private void UpdateContentSettings(bool tagChanged, Guid updatedTagGuid)
        {
            if (!tagChanged && updatedTagGuid.Equals(Guid.Empty))
            {
                PropertySynchronizerBase.Tracer.TraceDebug <FolderPropertySynchronizer>((long)this.GetHashCode(), "{0}: No need to update ContentSettings since tag is null and there was no change.", this);
                return;
            }
            if (tagChanged && updatedTagGuid.Equals(Guid.Empty))
            {
                PropertySynchronizerBase.Tracer.TraceDebug <FolderPropertySynchronizer>((long)this.GetHashCode(), "{0}: Tag is null, so we need to delete the retention period property.", this);
                if (this.originalRetentionPeriod != -1)
                {
                    base.PropertiesToBeDeleted.Add(StoreObjectSchema.RetentionPeriod);
                    base.FolderProperties[4] = null;
                }
                return;
            }
            ContentSetting retentionEnabledSettingForTag = base.ElcUserTagInformation.GetRetentionEnabledSettingForTag(updatedTagGuid);
            int            num;

            if (retentionEnabledSettingForTag == null || retentionEnabledSettingForTag.AgeLimitForRetention == null)
            {
                num = 0;
            }
            else
            {
                num = (int)retentionEnabledSettingForTag.AgeLimitForRetention.Value.TotalDays;
            }
            if (num != this.originalRetentionPeriod)
            {
                PropertySynchronizerBase.Tracer.TraceDebug <FolderPropertySynchronizer>((long)this.GetHashCode(), "{0}: Retention period needs to be updated.", this);
                base.PropertiesToBeUpdated.Add(StoreObjectSchema.RetentionPeriod, num);
                base.FolderProperties[4] = num;
            }
        }
Beispiel #5
0
        public virtual void Index()
        {
            ContentApp     app     = ctx.app.obj as ContentApp;
            ContentSetting setting = app.GetSettingsObj();

            ctx.Page.Title       = ctx.app.Name;
            ctx.Page.Description = setting.MetaDescription;

            if (strUtil.HasText(setting.MetaKeywords))
            {
                this.Page.Keywords = setting.MetaKeywords;
            }
            else
            {
                this.Page.Keywords = ctx.app.Name;
            }

            set("app.Style", app.Style);
            set("app.SkinStyle", app.SkinStyle);
            set("lnkSendPost", to(new Submit.PostController().Index));

            List <ContentSection> sections = SectionService.GetByApp(ctx.app.Id);

            bindRows(app, sections);
        }
        public void bindSettings(ContentSetting s)
        {
            String chk = "checked=\"checked\"";

            set("s.AllowComment", s.AllowComment == 1 ? chk : "");
            set("s.AllowAnonymousComment", s.AllowAnonymousComment == 1 ? chk : "");
            set("s.EnableSubmit", s.EnableSubmit == 1 ? chk : "");

            set("s.ListPostPerPage", dropList("ListPostPerPage", 3, 100, s.ListPostPerPage));
            set("s.ListPicPerPage", dropList("ListPicPerPage", 3, 100, s.ListPicPerPage));
            set("s.ListVideoPerPage", dropList("ListVideoPerPage", 3, 100, s.ListVideoPerPage));

            set("s.RankPosts", dropList("RankPosts", 3, 20, s.RankPosts));
            set("s.RankPics", dropList("RankPics", 1, 20, s.RankPics));
            set("s.RankVideos", dropList("RssCount", 1, 20, s.RankVideos));

            set("s.CacheSeconds", dropList("CacheSeconds", 0, 600, s.CacheSeconds));
            set("s.SummaryLength", dropList("SummaryLength", 50, 600, s.SummaryLength));

            Dictionary <string, string> dic = new Dictionary <string, string>();

            dic.Add("简单列表", ArticleListMode.TitleOnly.ToString());
            dic.Add("摘要列表", ArticleListMode.Summary.ToString());

            dropList("contentSetting.ArticleListMode", dic, s.ArticleListMode.ToString());
        }
        // Token: 0x060003D3 RID: 979 RVA: 0x0001B870 File Offset: 0x00019A70
        private void EvaluateAndEnlistItem(object[] itemProperties, PropertyIndexHolder propertyIndexHolder)
        {
            string text;

            if (!this.PreScreenPassed(itemProperties, propertyIndexHolder, out text))
            {
                return;
            }
            ContentSetting retentionEnabledSettingForTag = ((ElcUserTagInformation)base.MailboxDataForTags.ElcUserInformation).GetRetentionEnabledSettingForTag(((ElcUserTagInformation)base.MailboxDataForTags.ElcUserInformation).DefaultArchiveAdTag, text);

            if (retentionEnabledSettingForTag == null)
            {
                ExpirationTagEnforcer.Tracer.TraceDebug <ExpirationTagEnforcer>((long)this.GetHashCode(), "{0}: Could not find a default archive Content Setting for this item. Skipping it.", this);
                return;
            }
            Dictionary <Guid, AdTagData> allTags    = ((ElcUserTagInformation)base.MailboxDataForTags.ElcUserInformation).GetAllTags();
            Dictionary <Guid, string>    dictionary = new Dictionary <Guid, string>();

            foreach (KeyValuePair <Guid, AdTagData> keyValuePair in allTags)
            {
                dictionary.Add(keyValuePair.Key, keyValuePair.Value.Tag.Name);
            }
            if (ExpirationTagEnforcer.IsTimeToDie(itemProperties, retentionEnabledSettingForTag.AgeLimitForRetention.Value, text, propertyIndexHolder, base.MailboxDataForTags.MailboxSession, this.GetHashCode(), this.ToString(), ExpirationTagEnforcer.Tracer, base.MailboxDataForTags.UtcNow))
            {
                ExpirationTagEnforcer.Tracer.TraceDebug <ExpirationTagEnforcer, string>((long)this.GetHashCode(), "{0}: Item of class {1} is old enough to die. Sniff.", this, text);
                this.tagExpirationExecutor.AddToReportAndDoomedList(itemProperties, propertyIndexHolder, retentionEnabledSettingForTag, dictionary, ItemData.EnforcerType.ExpirationTagEnforcer, false);
                this.numberItemsMovedByDefault++;
            }
        }
Beispiel #8
0
        private int getPageSize(long appId)
        {
            ContentApp     app = ContentApp.findById(appId);
            ContentSetting s   = app.GetSettingsObj();

            return(s.ListPostPerPage);
        }
 // Token: 0x06000374 RID: 884 RVA: 0x00017D20 File Offset: 0x00015F20
 internal void RemovePolicy(ContentSetting policyToRemove)
 {
     if (policyToRemove == null)
     {
         return;
     }
     this.elcPolicies.RemoveAll((ElcPolicySettings policy) => policy.ContentSettings.Guid.Equals(policyToRemove.Guid));
 }
Beispiel #10
0
        public virtual void EditAutoHtml()
        {
            target(SaveAutoHtml);
            ContentApp     app         = ctx.app.obj as ContentApp;
            ContentSetting s           = app.GetSettingsObj();
            String         chkAutoHtml = s.IsAutoHtml == 1 ? "checked=\"checked\"" : "";

            set("chkAutoHtml", chkAutoHtml);
        }
Beispiel #11
0
        public override void Layout()
        {
            ContentApp  app = ctx.app.obj as ContentApp;
            ContentSkin s   = ContentSkin.findById(app.SkinId);

            set("skinPath", strUtil.Join(sys.Path.Skin, s.StylePath));

            set("adminUrl", to(new Admin.ContentController().Index));
            set("appUrl", to(new ContentController().Index));

            set("adminCheckUrl", t2(new SecurityController().CanAppAdmin, app.Id) + "?appType=" + typeof(ContentApp).FullName);

            // 当前app/module所有页面,所属的首页
            List <String> moduleUrlList = new List <string>();

            moduleUrlList.Add(to(new ContentController().Index));
            moduleUrlList.Add(HtmlLink.ToApp(app));

            ContentSetting setting = app.GetSettingsObj();

            if (strUtil.HasText(setting.StaticPath))
            {
                // 把所有可能的路径都加到 _moduleUrl 中
                moduleUrlList.Add(setting.StaticPath);               //news/default.html
                moduleUrlList.Add(getStaticDir(setting.StaticPath)); //news/
            }

            ctx.SetItem("_moduleUrl", moduleUrlList.ToArray());

            // admin link
            set("allPostsLink", to(new Admin.Common.PostController().List, 0));
            set("trashPostsLink", to(new Admin.Common.PostController().Trash));
            set("settingLink", to(new Admin.SettingController().Index));
            set("defaultLink", to(new Admin.ContentController().Home));
            set("commentLink", to(new CommentController().List));

            IBlock htmlBlock = getBlock("html");

            if (ctx.owner.obj is Site)
            {
                htmlBlock.Set("staticLink", to(new Admin.HtmlController().Index));
                htmlBlock.Next();
            }

            if (app.GetSettingsObj().EnableSubmit == 1)
            {
                String slnk = string.Format("<li><a href=\"{0}\" class=\"frmLink\" loadTo=\"contentPage\" nolayout=3>{1}</a></li>",
                                            to(new Admin.SubmitSettingController().List),
                                            "投递员管理");
                set("submitterLink", slnk);
            }
            else
            {
                set("submitterLink", "");
            }
        }
Beispiel #12
0
        // Token: 0x060002DB RID: 731 RVA: 0x00011F20 File Offset: 0x00010120
        private ContentSetting GetDestinationPolicy(ProvisionedFolder destProvisionedFolder, string itemClass)
        {
            ContentSetting applyingPolicy = ElcPolicySettings.GetApplyingPolicy(destProvisionedFolder.ElcPolicies, itemClass, destProvisionedFolder.ItemClassToPolicyMapping);

            if (applyingPolicy == null || !ElcPolicySettings.ArePolicyPropertiesValid(applyingPolicy, TraceContext.Get(), this.mailboxSession.MailboxOwner.MailboxInfo.PrimarySmtpAddress.ToString()))
            {
                return(null);
            }
            return(applyingPolicy);
        }
        // Token: 0x06000420 RID: 1056 RVA: 0x0001D690 File Offset: 0x0001B890
        private ContentSetting GetDefaultContentSettingForMsgClass(Guid updatedTagGuid, string messageClass)
        {
            ContentSetting contentSettingForMsgClassBasedOnTag = this.GetContentSettingForMsgClassBasedOnTag(updatedTagGuid, messageClass);

            if (contentSettingForMsgClassBasedOnTag != null && contentSettingForMsgClassBasedOnTag.RetentionEnabled)
            {
                return(contentSettingForMsgClassBasedOnTag);
            }
            return(null);
        }
Beispiel #14
0
 private void bindListCommon(int sectionId, ContentSection section, ContentSetting s,
                             DataPage <ContentPost> posts)
 {
     Page.Title = section.Title;
     if (s.ArticleListMode == ArticleListMode.Summary)
     {
         view("ListSummary");
     }
     bindPostList(section, posts, s);
 }
Beispiel #15
0
        // Token: 0x06000446 RID: 1094 RVA: 0x0001E360 File Offset: 0x0001C560
        private void UpdateArchiveSettings()
        {
            PropertySynchronizerBase.Tracer.TraceDebug <FolderPropertySynchronizer>((long)this.GetHashCode(), "{0}: Processing archive tag on a folderfolder.", this);
            Guid           value          = ElcMailboxHelper.GetGuidFromBytes(base.FolderProperties[7], new Guid?(Guid.Empty), false, base.FolderDisplayName).Value;
            Guid           value2         = ElcMailboxHelper.GetGuidFromBytes(base.FolderProperties[10], new Guid?(Guid.Empty), false, base.FolderDisplayName).Value;
            ContentSetting contentSetting = null;

            this.effectiveArchiveGuid = null;
            if (value2 != Guid.Empty)
            {
                if (base.ElcUserTagInformation.ContainsTag(value2))
                {
                    contentSetting = base.ElcUserTagInformation.GetRetentionEnabledSettingForTag(value2);
                    base.PropertiesToBeDeleted.Add(StoreObjectSchema.ExplicitArchiveTag);
                    this.effectiveArchiveGuid = new Guid?(value2);
                    base.PropertiesToBeUpdated.Add(StoreObjectSchema.ArchiveTag, this.effectiveArchiveGuid.Value.ToByteArray());
                    base.AddAdriftTagToFai(value2);
                    this.taggedByPersonalArchiveTag = true;
                }
            }
            else if (value != Guid.Empty)
            {
                if (base.ElcUserTagInformation.ContainsTag(value))
                {
                    contentSetting            = base.ElcUserTagInformation.GetRetentionEnabledSettingForTag(value);
                    this.effectiveArchiveGuid = new Guid?(value);
                    base.AddAdriftTagToFai(value);
                }
                else
                {
                    base.PropertiesToBeUpdated.Add(StoreObjectSchema.ExplicitArchiveTag, value.ToByteArray());
                    base.PropertiesToBeDeleted.Add(StoreObjectSchema.ArchiveTag);
                    base.AddDeletedTag(value);
                    this.taggedByPersonalArchiveTag = true;
                }
            }
            this.explicitArchive = FlagsMan.IsExplicitArchiveSet(this.originalRetentionFlags);
            if (contentSetting != null && contentSetting.AgeLimitForRetention != null)
            {
                int num = (int)contentSetting.AgeLimitForRetention.Value.TotalDays;
                if (base.FolderProperties[8] is int)
                {
                    int num2 = (int)base.FolderProperties[8];
                    if (num != num2)
                    {
                        base.PropertiesToBeUpdated.Add(StoreObjectSchema.ArchivePeriod, num);
                        return;
                    }
                }
                else
                {
                    base.PropertiesToBeUpdated.Add(StoreObjectSchema.ArchivePeriod, num);
                }
            }
        }
Beispiel #16
0
        public virtual void SaveAutoHtml()
        {
            ContentApp     app = ctx.app.obj as ContentApp;
            ContentSetting s   = app.GetSettingsObj();

            s.IsAutoHtml = ctx.PostIsCheck("IsAutoHtml");

            app.Settings = Json.ToString(s);
            app.update();

            echoToParentPart(lang("opok"));
        }
Beispiel #17
0
        // 静态配置
        private void setStaticPath(ContentApp app, string staticPath)
        {
            ContentSetting setting = app.GetSettingsObj();

            setting.IsAutoHtml      = 1;
            setting.StaticPath      = staticPath;
            setting.ArticleListMode = 1; // 摘要列表

            app.Settings = Json.ToString(setting);

            app.update();
        }
Beispiel #18
0
 // Token: 0x060002D1 RID: 721 RVA: 0x00011000 File Offset: 0x0000F200
 internal bool IsPolicyValid(ProvisionedFolder provisionedFolder, ContentSetting policy, string itemClass, MailboxDataForFolders mailboxData)
 {
     if (!ElcPolicySettings.ArePolicyPropertiesValid(policy, TraceContext.Get(), this.mailboxSession.MailboxOwner.MailboxInfo.PrimarySmtpAddress.ToString()))
     {
         return(false);
     }
     FolderProcessor.CircularPolicyType circularPolicyType = this.LookForCircularPolicies(provisionedFolder, policy, itemClass, mailboxData);
     if (circularPolicyType == FolderProcessor.CircularPolicyType.BadCycle)
     {
         throw new SkipException(Strings.descCycleInPolicies(this.mailboxSession.MailboxOwner.MailboxInfo.PrimarySmtpAddress.ToString(), policy.Name));
     }
     return(true);
 }
Beispiel #19
0
        public virtual void EditHtmlPath()
        {
            target(SaveHtmlPath);

            ContentApp     app = ctx.app.obj as ContentApp;
            ContentSetting s   = app.GetSettingsObj();

            String htmlPath = HomeMaker.GetAppPath(app.Id).TrimStart('/');

            set("htmlPath", htmlPath);

            set("host", ctx.url.SiteAndAppPath);
        }
Beispiel #20
0
        private bool isAutoMakeHtml(int appId)
        {
            ContentApp app = ContentApp.findById(appId);

            if (app == null)
            {
                return(false);
            }

            ContentSetting setting = app.GetSettingsObj();

            return(setting.IsAutoHtml == 1);
        }
        ///<summary>
        ///Set campaign content
        ///</summary>
        internal async Task <dynamic> SetCampaignContentAsync(string campaign_id, ContentSetting setting)
        {
            string endpoint = Authenticate.EndPoint(TargetTypes.campaigns, SubTargetType.content, SubTargetType.not_applicable, campaign_id);

            RootContent content = new RootContent()
            {
                plain_text = setting.plain_text,
                html       = setting.html,
                url        = setting.url
            };

            return(await BaseOperation.PutAsync <RootContent>(endpoint, content));
        }
        // Token: 0x060002F6 RID: 758 RVA: 0x00012AE4 File Offset: 0x00010CE4
        private void SetDestPolicyType(StoreObjectId destFolderId, string itemClass)
        {
            ContentSetting    contentSetting = null;
            ProvisionedFolder folderFromId   = this.mailboxData.FolderProcessor.GetFolderFromId(destFolderId);

            if (folderFromId != null)
            {
                contentSetting = ElcPolicySettings.GetApplyingPolicy(folderFromId.ElcPolicies, itemClass, folderFromId.ItemClassToPolicyMapping);
            }
            if (contentSetting != null && contentSetting.RetentionEnabled && contentSetting.TriggerForRetention == RetentionDateType.WhenMoved && contentSetting.AgeLimitForRetention != null && contentSetting.AgeLimitForRetention.Value.TotalDays > 0.0)
            {
                this.setDateWhileMoving = true;
            }
        }
Beispiel #23
0
        public void EditHtmlDir()
        {
            target(SaveHtmlDir);

            ContentApp     app = ctx.app.obj as ContentApp;
            ContentSetting s   = app.GetSettingsObj();

            String htmlDir = HomeMaker.GetlAppDirName(app.Id);

            htmlDir = htmlDir.TrimStart('/').TrimEnd('/');

            set("htmlDir", htmlDir);

            set("host", ctx.url.SiteAndAppPath);
        }
        public void Save()
        {
            ContentSetting s = ctx.PostValue <ContentSetting>();

            s.AllowComment          = ctx.PostIsCheck("contentSetting.AllowComment");
            s.AllowAnonymousComment = ctx.PostIsCheck("contentSetting.AllowAnonymousComment");
            s.EnableSubmit          = ctx.PostIsCheck("contentSetting.EnableSubmit");

            ContentApp app = ctx.app.obj as ContentApp;

            app.Settings = JsonString.ConvertObject(s);
            app.update();

            echoRedirect(lang("opok"));
        }
Beispiel #25
0
        public void List(int sectionId)
        {
            ContentSection section = ctx.Get <ContentSection>();
            ContentApp     app     = ctx.app.obj as ContentApp;
            ContentSetting s       = app.GetSettingsObj();

            DataPage <ContentPost> posts = postService.GetPageBySection(sectionId, s.ListPostPerPage);

            bindListCommon(sectionId, section, s, posts);

            Boolean isMakeHtml = HtmlHelper.IsMakeHtml(ctx);
            String  listLink   = clink.toSection(sectionId, ctx);

            set("page", posts.GetPageBar(listLink, isMakeHtml));
        }
        // Token: 0x06000306 RID: 774 RVA: 0x00013504 File Offset: 0x00011704
        private Participant GetOfficialFileParticipant(ContentSetting policy)
        {
            Participant participant = null;

            if (!this.officialFileParticipantDictionary.TryGetValue(policy, out participant))
            {
                AutoCopyEnforcer.Tracer.TraceDebug <object, string>((long)this.GetHashCode(), "{0}: Getting the archive address for policy {1} from the AD.", TraceContext.Get(), policy.Name);
                IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(ConsistencyMode.IgnoreInvalid, base.MailboxData.MailboxSession.MailboxOwner.MailboxInfo.OrganizationId.ToADSessionSettings(), 590, "GetOfficialFileParticipant", "f:\\15.00.1497\\sources\\dev\\MailboxAssistants\\src\\assistants\\elc\\ManagedFolderAssistant\\AutoCopyEnforcer.cs");
                ADRecipient       adrecipient = tenantOrRootOrgRecipientSession.Read(policy.AddressForJournaling);
                string            arg         = adrecipient.PrimarySmtpAddress.ToString();
                participant = new Participant(adrecipient);
                AutoCopyEnforcer.Tracer.TraceDebug <object, string, string>((long)this.GetHashCode(), "{0}: Archive address for policy {1} is {2}.", TraceContext.Get(), policy.Name, arg);
                this.officialFileParticipantDictionary[policy] = participant;
            }
            return(participant);
        }
Beispiel #27
0
        public void Index()
        {
            ContentApp     app = ctx.app.obj as ContentApp;
            ContentSetting s   = app.GetSettingsObj();

            List <ContentPost> posts = postService.GetRankPost(ctx.app.Id, s.RankPosts, PostCategory.Post);

            bindPosts(posts, "list");

            List <ContentPost> imgs = postService.GetRankPost(ctx.app.Id, s.RankPics, PostCategory.Img);

            bindImgs(imgs, "img");

            List <ContentPost> videos = postService.GetRankPost(ctx.app.Id, s.RankVideos, PostCategory.Video);

            bindVideos(videos, "video");
        }
Beispiel #28
0
        // Token: 0x06000496 RID: 1174 RVA: 0x00021274 File Offset: 0x0001F474
        private bool UpdateDefaultRetentionPeriod(CompositeProperty compositeProperty, string itemClass)
        {
            int            integer = compositeProperty.Integer;
            ContentSetting defaultContentSettingForMsgClass = base.ElcUserTagInformation.GetDefaultContentSettingForMsgClass(itemClass);
            int            num = 0;

            if (defaultContentSettingForMsgClass != null && defaultContentSettingForMsgClass.RetentionEnabled)
            {
                num = (int)defaultContentSettingForMsgClass.AgeLimitForRetention.Value.TotalDays;
            }
            if (integer != num)
            {
                compositeProperty.Integer = num;
                return(true);
            }
            return(false);
        }
Beispiel #29
0
        public void Save()
        {
            ContentApp app = ctx.app.obj as ContentApp;

            ContentSetting s = ctx.PostValue(app.GetSettingsObj()) as ContentSetting;

            s.AllowComment          = ctx.PostIsCheck("contentSetting.AllowComment");
            s.AllowAnonymousComment = ctx.PostIsCheck("contentSetting.AllowAnonymousComment");
            s.EnableSubmit          = ctx.PostIsCheck("contentSetting.EnableSubmit");

            s.MetaDescription = strUtil.CutString(s.MetaDescription, 500);

            app.Settings = Json.ToString(s);
            app.update();

            echoRedirect(lang("opok"));
        }
Beispiel #30
0
        public virtual void Execute()
        {
            logger.Info("begin execute");
            List <ContentApp> apps = ContentApp.find("OwnerType=:otype").set("otype", typeof(Site).FullName).list();

            foreach (ContentApp app in apps)
            {
                ContentSetting setting = app.GetSettingsObj();
                if (setting.IsAutoHtml == 0)
                {
                    logger.Info("skip home, appId=" + app.Id);
                    continue;
                }

                HtmlMaker.GetHome().Process(app.Id);
                logger.Info("make home, appId=" + app.Id);
            }
        }