コード例 #1
0
        public async ValueTask <IActionResult> Create(string id)
        {
            if (string.IsNullOrEmpty(id))
            {
                return(NotFound());
            }
            var validate = (await _siteService.LoadSiteSettingsAsync())?.As <PublishSetting>()?.ListContentItemIds.Contains(id) ?? false;

            if (!validate)
            {
                return(NotFound());
            }

            var contentItem = await _contentManager.NewAsync(PublishContent);

            var shape = await _contentItemDisplayManager.UpdateEditorAsync(contentItem, _updateModelAccessor.ModelUpdater, true);

            var model = new PublishContentViewModel()
            {
                TargetId = id,
                Shape    = shape
            };

            return(View(model));
        }
コード例 #2
0
        public async ValueTask <IActionResult> CreatePost(PublishContentViewModel model)
        {
            if (string.IsNullOrEmpty(model?.TargetId))
            {
                return(NotFound());
            }
            var validate = (await _siteService.LoadSiteSettingsAsync())?.As <PublishSetting>()?.ListContentItemIds.Contains(model.TargetId) ?? false;

            if (!validate)
            {
                return(NotFound());
            }

            var contentItem = await _contentManager.NewAsync(PublishContent);

            contentItem.Alter <ContainedPart>(x =>
            {
                x.ListContentItemId = model.TargetId;
            });
            contentItem.Owner = User.Identity.Name;

            var shape = await _contentItemDisplayManager.UpdateEditorAsync(contentItem, _updateModelAccessor.ModelUpdater, true);

            if (!ModelState.IsValid)
            {
                await _session.CancelAsync();

                return(View("Create", model));
            }
            await _contentManager.CreateAsync(contentItem, VersionOptions.Draft);

            await _contentManager.PublishAsync(contentItem);

            _notifier.Success(H["发布成功"]);
            return(RedirectToAction("index"));
        }