public ActionResult EditContentItem(ContentItemEditModel model)
        {
            ContentItem item = model.AsContentItem(Request);

            try
            {
                if (item.ContentItemId > 0)
                {
                    contentItemService.Update(item);
                    TempData["StatusMessageData"] = new StatusMessageData(StatusMessageType.Success, "更新成功");
                    //清除标签
                    tagService.ClearTagsFromItem(item.ContentItemId, item.UserId);
                }
                else
                {
                    item.GlobalStickyDate = ValueUtility.GetSafeSqlDateTime(DateTime.MinValue);
                    item.FolderStickyDate = ValueUtility.GetSafeSqlDateTime(DateTime.MinValue);

                    contentItemService.Create(item);
                    TempData["StatusMessageData"] = new StatusMessageData(StatusMessageType.Success, "创建成功");
                }
            }
            catch (Exception)
            {
                TempData["StatusMessageData"]    = new StatusMessageData(StatusMessageType.Error, "创建或者更新失败,请重试");
                TempData["ContentItemEditModel"] = model;
                return(Redirect(SiteUrls.Instance().EditContentItem(item.ContentItemId)));
            }
            if (model.TagNames != null)
            {
                string tags = string.Join(",", model.TagNames);
                if (!string.IsNullOrEmpty(tags))
                {
                    tagService.AddTagsToItem(tags, item.UserId, item.ContentItemId);
                }
            }
            if (item.ContentType != null && item.ContentType.ContentTypeKey == ContentTypeKeys.Instance().NewsLink())
            {
                return(Redirect(SiteUrls.Instance().FolderDetail(item.ContentFolderId)));
            }
            return(Redirect(SiteUrls.Instance().ContentItemDetail(item.ContentItemId)));
        }
Exemple #2
0
        /// <summary>
        /// 投稿
        /// </summary>
        /// <param name="contentItemId"></param>
        /// <returns></returns>
        public ActionResult Contribute(long?contentItemId = null)
        {
            pageResourceManager.InsertTitlePart("编辑资讯");
            var metadataService = new MetadataService();
            ContentTypeDefinition contentType = metadataService.GetContentType(ContentTypeKeys.Instance().News());

            if (contentType == null)
            {
                return(HttpNotFound());
            }
            if (UserContext.CurrentUser == null)
            {
                return(Redirect(SiteUrls.Instance().Login(true)));
            }
            ContentItemEditModel model = TempData.Get <ContentItemEditModel>("ContentItemEditModel", null);

            if (model == null)
            {
                ContentItem item         = null;
                string      errorMessage = string.Empty;

                if (contentItemId.HasValue && contentItemId.Value > 0)
                {
                    item = new ContentItemService().Get(contentItemId.Value);
                    if (item == null)
                    {
                        return(HttpNotFound());
                    }
                    model = item.AsEditModel();

                    if (!authorizer.CMS_EditContentItem(item))
                    {
                        errorMessage = "没有权限编辑资讯:" + item.Title;

                        return(Redirect(SiteUrls.Instance().SystemMessage(TempData, new SystemMessageViewModel
                        {
                            Body = errorMessage,
                            Title = "没有权限",
                            StatusMessageType = StatusMessageType.Hint
                        }, Request.RawUrl)));
                    }
                }
                else
                {
                    model = new ContentItemEditModel {
                        ContentTypeId = contentType.ContentTypeId
                    };
                    if (!authorizer.CMS_Contribute(out errorMessage))
                    {
                        return(Redirect(SiteUrls.Instance().SystemMessage(TempData, new SystemMessageViewModel
                        {
                            Body = errorMessage,
                            Title = "没有权限",
                            StatusMessageType = StatusMessageType.Hint
                        }, Request.RawUrl)));
                    }
                }
            }
            else
            {
                TempData.Remove("ContentItemEditModel");
            }
            return(View(contentItemId.HasValue ? contentType.Page_Edit : contentType.Page_New, model));
        }