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() }); } }
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); } } }