예제 #1
0
        public ArticleStruct Post([FromBody] CreateArticleRequest content)
        {
            try
            {
                var publicationDate = DateTime.Parse(content.PublicationDate);
                var parent          = _articleUtil.GenerateDailyFolder(content.PublicationID, publicationDate);
                var rinsedName      = ItemUtil.ProposeValidItemName(content.Name);
                var articleCreate   = _sitecoreMasterService.Create <IArticle, IArticle_Date_Folder>(parent, rinsedName);

                //Hack to start the workflow
                var articleItem  = _sitecoreMasterService.GetItem <Item>(articleCreate._Id);
                var savedArticle = _sitecoreMasterService.GetItem <ArticleItem>(articleCreate._Id);
                //var intialWorkflow = _sitecoreMasterService.Database.WorkflowProvider.GetWorkflow("{926E6200-EB76-4AD4-8614-691D002573AC}");
                var intialWorkflow = _sitecoreMasterService.Database.WorkflowProvider.GetWorkflow(savedArticle.Crawl <ISite_Root>().Workflow.ToString());
                intialWorkflow.Start(articleItem);

                var article = _sitecoreMasterService.GetItem <IArticle__Raw>(articleCreate._Id);
                article.Title = content.Name;
                article.Planned_Publish_Date = publicationDate;
                article.Created_Date         = DateTime.Now;
                article.Article_Number       = SitecoreUtil.GetNextArticleNumber(_articleSearch.GetNextArticleNumber(content.PublicationID), content.PublicationID);
                _sitecoreMasterService.Save(article);
                savedArticle = _sitecoreMasterService.GetItem <ArticleItem>(articleCreate._Id);
                var articleStruct = _articleUtil.GetArticleStruct(savedArticle);
                return(articleStruct);
            }
            catch (Exception ex)
            {
                return(new ArticleStruct {
                    RemoteErrorMessage = ex.ToString()
                });
            }
        }
예제 #2
0
        protected void MoveArticleIfNecessary(ArticleItem article, ArticleStruct articleStruct)
        {
            var item = _sitecoreMasterService.GetItem <Item>(article._Id);

            using (new SecurityDisabler())
            {
                var publicationItem = ArticleExtension.GetAncestorItemBasedOnTemplateID(item);
                if (publicationItem != null)
                {
                    var publication = publicationItem.ID.Guid;
                    var newParent   = _articleUtil.GenerateDailyFolder(publication, articleStruct.WebPublicationDate);
                    if (newParent != null)
                    {
                        _sitecoreMasterService.Move(article, newParent);
                    }
                    //TODO - Verify if this feautre needs to be there or not.
                    //_wordDocToMediaLibrary.MoveWordDocIfNecessary(article, articleStruct, oldIssueID);
                }
            }
        }