SharePoint Posts Ratings Migration
Hi All,
Recently our team had a requirement to migrate ratings.Below is a sample code to add ratings to ratings for an item.
Recently our team had a requirement to migrate ratings.Below is a sample code to add ratings to ratings for an item.
public void AddPostItem(LRBlog blog, SiteMigrationConfiguration siteMigrationConfiguration)
{
try
{
Console.WriteLine(DateTime.Now.ToShortTimeString()
+ "Adding blog post, post id :");
List list =
clientContext.Web.Lists.GetByTitle(siteMigrationConfiguration.BlogPostListName);
ListItemCreationInformation itemCreateInfo = new ListItemCreationInformation();
ListItem
listItem = list.AddItem(itemCreateInfo);
listItem["Title"] = blog.title;
listItem["Body"] = HtmlAgilityReader.ProcessContent(System.Web.HttpUtility.HtmlDecode(blog.content),
siteMigrationConfiguration.BlogImageListName, clientContext);
listItem["PublishedDate"] = blog.SpDisplayDate;
listItem["Created"] = blog.SpCreateDate;
listItem["Modified"] = blog.SpModifiedDate;
//Set Rating values
listItem["AverageRating"]
= blog.avgRating;
if (blog.ratings != null)
{
listItem["RatingCount"] = blog.ratings.Count();
FieldUserValue[] user = new FieldUserValue[blog.ratings.Count()];
string ratings
= string.Empty;
for (int i = 0; i <
blog.ratings.Count(); i++)
{
var rating =
blog.ratings[i];
ratings = ratings + rating.score + ",";
user[i] = SPUserPermissionHelper.GetUsers(rating.userId.ToString(),
siteMigrationConfiguration.BlogSiteURL);
}
if (user.Length >
0)
{
listItem["RatedBy"] = user;
listItem["Ratings"] = ratings;
}
}
listItem.Update();
clientContext.Load(list);
clientContext.ExecuteQuery();
///
Microsoft.Office.Server.ReputationModel.Reputation.SetRating(clientContext,
list.Id.ToString(), listItem.Id, 5);
FieldUserValue author = SPUserPermissionHelper.GetUsers(blog.createdBy.ToString(), clientContext.Url);
FieldUserValue editor = SPUserPermissionHelper.GetUsers(blog.modifiedBy.ToString(), clientContext.Url);
Console.WriteLine(DateTime.Now.ToShortTimeString()
+ "setting permission on Blog
idid :" + blog.entryId);
SPUserPermissionHelper.SetItemLevelPermisionfromRole(author, listItem,
clientContext, blog.permissions);
foreach (var comment in blog.comments)
{
List
commentList = clientContext.Web.Lists.GetByTitle(siteMigrationConfiguration.BlogCommentListName);
ListItemCreationInformation itemCreateInfocomment = new ListItemCreationInformation();
ListItem
commentItem = commentList.AddItem(itemCreateInfocomment);
commentItem["Title"] = comment.comment;//comment.;
commentItem["PostTitle"] = listItem.Id;
commentItem["Created"] = comment.SpCreateDate;
commentItem["Modified"] = comment.SpCreateDate;
FieldUserValue CommentBy = SPUserPermissionHelper.GetUsers(comment.userId.ToString(), clientContext.Url);
commentItem["Author"] = CommentBy;
commentItem["Editor"] =
CommentBy;
commentItem.Update();
}
listItem["Author"] = author;
listItem["Editor"] = editor;
////set item level permission
listItem.Update();
clientContext.ExecuteQuery();
ReportGenerator.Instance.AddMigratedCount(EntityTypes.Blogs, 1);
}
catch (Exception ex)
{
ReportGenerator.Instance.AddFailedCount(EntityTypes.Blogs, 1, blog.entryId.ToString());
Console.WriteLine(DateTime.Now.ToShortTimeString()
+ " " + "Exception occured.
PLease check the log File");
Logger.Log("Exception occured", Logger.LogType.Exception, "AddCalendarEvent", ex.StackTrace.ToString());
}
}
Comments
Post a Comment