Skip to main content

Create and Retrieve a Social Rating



The SocialRatingManager object enables you to create a social rating for any specified URL. Because entries in Microsoft SharePoint Server lists and document libraries can be represented by URLs, you can create and retrieve social ratings for those items, and for any other SharePoint Server page. This topic demonstrates how to use the SocialRatingManager to create and retrieve social ratings and how to enable social ratings on a SharePoint Server in a custom application. The samples in this topic assume that you have added the following references to your Microsoft Visual Studio 2010 project:

Microsoft.SharePoint

Microsoft.Office.Server

Microsoft.Office.Server.UserProfiles

System.Web

Creating Social Ratings

The overloaded SetRating method creates a single SocialRating object for the current user on a single specified URL. A social rating consists of a URL and an integer ranging from 0 through 5. It also can optionally consist of a string title for the rating and a FeedbackData object that consists of name/value pairs that will be logged as analysis data. The sample below demonstrates how to use the SocialRatingManager to create a single rating on a specified URL.

Uri myUri = new Uri("URL");
FeedbackData myFeedbackData = new FeedbackData();
myFeedbackData.UserTitle = "employee";
using (SPSite site = new SPSite("SharePoint site URL"))
{
SPServiceContext context = SPServiceContext.GetContext(site);
SocialRatingManager mySocialRatingManager = new SocialRatingManager(context);
mySocialRatingManager.SetRating(myUri, 5, myFeedbackData);
}

Retrieving Social Ratings

The overloaded GetRating method retrieves a single SocialRating object for a single specified URL. If you do not specify a UserProfile, the method returns the social rating (if any exists) added to the specified URL by the current user. The sample below demonstrates how to use the SocialRatingManager to retrieve a single rating for a specified user.

using (SPSite site = new SPSite("SharePoint site URL"))
{
SPServiceContext context = SPServiceContext.GetContext(site);
SocialRatingManager mySocialRatingManager = new SocialRatingManager(context);
SocialRating aRating = mySocialRatingManager.GetRating(myUri);
Console.WriteLine(aRating.Url + ": " + aRating.Rating);
}

The overloaded GetRatings method retrieves all SocialRating objects for a specified URL or user. If you specify a URL, the method returns all social ratings added to that URL in the current SPServerContext. If you specify a user, the method returns all social ratings that the specified user added.

using (SPSite site = new SPSite("SharePoint site URL"))
{
SPServiceContext context = SPServiceContext.GetContext(site);
UserProfileManager myUserProfileManager = new UserProfileManager(context);
UserProfile myUserProfile = myUserProfileManager.GetUserProfile(false);
SocialRatingManager mySocialRatingManager = new SocialRatingManager(context);
SocialRating[] ratings = mySocialRatingManager.GetRatings(myUserProfile);
Console.WriteLine("Ratings for user:");
foreach (SocialRating rating in ratings)
{
Console.WriteLine(rating.Url + ": " + rating.Rating);
}
}

Enabling Social Ratings on a List

You can enable the average rating field and the rating count field on lists and document libraries by using the user interface for list and document library settings. Both fields are available as site columns that you can add to any list or document library by enabling item rating from within the list or library settings. The sample below demonstrates how to enable these fields on any list by using code inside a custom application.

public void AddRatingsFields(SPList list)
{
//Add the average rating field.
SPField averageRatingField = list.ParentWeb.AvailableFields[new Guid("5a14d1ab-1513-48c7-97b3-657a5ba6c742")];
list.Fields.AddFieldAsXml(averageRatingField.SchemaXml, true, SPAddFieldOptions.AddToAllContentTypes | SPAddFieldOptions.AddFieldToDefaultView);

//Add the rating count field.
SPField ratingCountField = list.ParentWeb.AvailableFields[new Guid("b1996002-9167-45e5-a4df-b2c41c6723c7")];
list.Fields.AddFieldAsXml(ratingCountField.SchemaXml, true, SPAddFieldOptions.AddToAllContentTypes | SPAddFieldOptions.AddFieldToDefaultView);
}





Get Rating control properties and display on page using image handler.

  private void GetRatingControlProperties(HttpContext _context, string _WebUrl)
        {
            SPSecurity.RunWithElevatedPrivileges(delegate
                {
                  
                    using (SPSite _spSite = new SPSite(SPContext.Current.Web.Url))
                    {
                        string _pageUrl = _WebUrl + "/" + PublishingWeb.DefaultPagesListName + "/" + PublishingWeb.DefaultDefaultPageName;
                        SPServiceContext _spContext = SPServiceContext.GetContext(_spSite);
                        SocialRatingManager mySocialRatingManager = new SocialRatingManager(_spContext);
                        SocialRating aRating = mySocialRatingManager.GetRating(new Uri(_pageUrl));

                        int averating = aRating.Rating;
                        if (averating > 0)
                        {
                            if (averating >= 4.75)
                            {
                                DisplayRating(_context, "5", "5");
                            }
                            else if (averating >= 4.25 && averating <= 4.75)
                            {
                                DisplayRating(_context, "4_5", "4.5");
                            }
                            else if (averating >= 3.75 && averating <= 4.25)
                            {
                                DisplayRating(_context, "4", "4");
                            }
                            else if (averating >= 3.25 && averating <= 3.75)
                            {
                                DisplayRating(_context, "3_5", "3.5");
                            }
                            else if (averating >= 2.75 && averating <= 3.25)
                            {
                                DisplayRating(_context, "3", "3");
                            }
                            else if (averating >= 2.25 && averating <= 2.75)
                            {
                                DisplayRating(_context, "2_5", "2.5");
                            }
                            else if (averating >= 1.75 && averating <= 2.25)
                            {
                                DisplayRating(_context, "2", "2");
                            }
                            else if (averating >= 1.25 && averating <= 1.75)
                            {
                                DisplayRating(_context, "1_5", "1.5");
                            }
                            else if (averating <= 1.25)
                            {
                                DisplayRating(_context, "1", "1");
                            }
                        }
                        else
                        {
                            DisplayRating(_context, "0", "0");
                        }
                    }
                });
        }

Comments

Popular posts from this blog

Migrating from Skype for Business to Microsoft Teams: A Step-by-Step Guide

Do you still use Skype for Business to meet the communication and collaboration needs of your business? If so, now is the perfect time to think about switching to Microsoft Teams, a cutting-edge platform with cutting-edge capabilities and seamless connectivity with other Microsoft services. But if you're unfamiliar with the procedure, switching to a new platform can seem like a difficult task. I'll walk you through the process of switching from Skype for Business to Microsoft Teams in this article. Plan the migration in Step 1 You must make a plan before you start the relocation procedure. Set a deadline, make a list of all the Skype for Business capabilities you presently use, and choose whether to migrate gradually or all at once. Step 2: Set up your surroundings. Make sure your network and infrastructure fulfil Microsoft Teams' standards. Upgrades to your hardware, software, and licences might be necessary. Additionally, confirm that you have the right permissions to ca

How to: Debug SharePoint Applications

You can greatly simplify debugging by using Visual Studio extensions for Windows SharePoint Services. This topic includes procedures that explain the following: Debugging with Visual Studio extensions for Windows SharePoint Services Performing manual debugging Performing remote debugging Debugging with Visual Studio extensions for Windows SharePoint Services Press the F5 key to begin debugging with Visual Studio extensions for Windows SharePoint Services. The following procedure demonstrates how to enable F5 debugging. To enable F5 debugging Locate and open the target SharePoint application's Web.config file. By default, it is located in C:\Inetpub\wwwroot\wss\VirtualDirectories\80. Find the following line of code and change the  debug  attribute to  true . Save the changes to the Web.config file. In Visual Studio, right-click the SharePoint project, and then click  Properties . Click the  Debug  tab, and then type the target SharePoint URL in t

SharePoint 2010 – How to use Audio and Video Webpart

Video and Audio Web Part [ a.k.a Media Web Part ] is one of the new cool web parts in SharePoint 2010, so in this article I am going to show you the way to add this web part in your page. To add Media web part to the page you must activate those two features 1- SharePoint Server Publishing Infrastructure Feature in Site Collection features 2- SharePoint Server Publishing Feature in Site features After that edit page then click on Insert tab in SharePoint Ribbon then select Video and Audio Now the Media Web Part in the page Click on the Media Web Part and you will find Options Tab in the Ribbon As you can see in the Options tab there are Chang Media button allow you to select the video and Chang Image button to change the image of web part and Styles (Dark, Light) Click on Change Media to select the Media file. From Computer opens up the Upload media so you can upload the video and display it. Once you click ok and saving the page. Click on play button and enj