Как обновить NewsItem.LastModified в sitefinity? - PullRequest
0 голосов
/ 08 ноября 2019

Как и заголовок, я передаю этот код в документ sitefinity. https://www.progress.com/documentation/sitefinity-cms/for-developers-edit-content часть изменить элемент по id этой версии. Это работает хорошо, но я пытаюсь изменить "LastModified" newsItem => это автоматическое обновление о текущей дате.

private void ModifyItemByLiveIDNativeAPI(Guid liveId)
{
    NewsManager manager = NewsManager.GetManager();
    NewsItem live = manager.GetNewsItems().Where(newsItem => newsItem.Id == liveId).FirstOrDefault();

    if (live != null)
    {
        //Edit the item to get the master version.
        NewsItem master = manager.Lifecycle.Edit(live) as NewsItem;

        //Check out the master to get a temp version.
        NewsItem temp = manager.Lifecycle.CheckOut(master) as NewsItem;

        //Make the modifications to the temp version.
        temp.Title = "New Title";
        temp.LastModified = new DateTime(2011,1,1);

        //Checkin the temp and get the updated master version. 
        //After the check in the temp version is deleted.
        master = manager.Lifecycle.CheckIn(temp) as NewsItem;

        manager.SaveChanges();

        //Publish the news item.
        var bag = new Dictionary<string, string>();
        bag.Add("ContentType", typeof(NewsItem).FullName);
        WorkflowManager.MessageWorkflow(master.Id, typeof(NewsItem), null, "Publish", false, bag);
   }
}

Название => обновление. но temp.LastModified => автоматическое обновление до текущей даты. Я не знаю почему, и я ищу в Google изменения LastModified, но не имею результата. Спасибо

1 Ответ

0 голосов
/ 08 ноября 2019

Метод CheckIn внутренне обновляет свойство LastModified, поэтому попробуйте установить LastModified непосредственно на Master после CheckIn.

master = manager.Lifecycle.CheckIn(temp) as NewsItem;

master.LastModified = xxx;

manager.SaveChanges();
...