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() }); } }
public string GetLastArticleNumber(Guid publicationGuid) { IArticleSearchFilter filter = _articleSearcher.CreateFilter(); var results = _articleSearcher.Search(filter); if (!results.Articles.Any()) { return(0.ToString(Constants.ArticleNumberLength)); } IEnumerable <string> articles = results.Articles.Select(a => a.Article_Number).OrderByDescending(b => b); string num = articles.First().Replace(SitecoreUtil.GetPublicationPrefix(publicationGuid), ""); int n = int.Parse(num); return((n + 1).ToString(Constants.ArticleNumberLength)); }
public UserStatusStruct Post([FromBody] LoginModel content) { return(SitecoreUtil.GetUserStatus(content.Username, content.Password)); }