using System;
using System.Data;
using CMS.CMSHelper;
using CMS.GlobalHelper;
using CMS.SettingsProvider;
using CMS.SiteProvider;
using CMS.UIControls;
[Title(Text = "Badges", ImageUrl = "Objects/CMS_Badge/object.png")]
public partial class CMSAPIExamples_Code_Administration_Badges_Default : CMSAPIExamplePage
{
#region "Initialization"
protected void Page_Load(object sender, EventArgs e)
{
// Badge
apiCreateBadge.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(CreateBadge);
apiGetAndUpdateBadge.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(GetAndUpdateBadge);
apiGetAndBulkUpdateBadges.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(GetAndBulkUpdateBadges);
apiDeleteBadge.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(DeleteBadge);
apiAddBadgeToUser.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(AddBadgeToUser);
apiUpdateActivityPoints.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(UpdateActivityPoints);
apiRemoveBadgeFromUser.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(RemoveBadgeFromUser);
}
#endregion
#region "Mass actions"
///
/// Runs all creating and managing examples.
///
public override void RunAll()
{
base.RunAll();
// Badge
apiCreateBadge.Run();
apiGetAndUpdateBadge.Run();
apiGetAndBulkUpdateBadges.Run();
// Badge on user
apiAddBadgeToUser.Run();
apiUpdateActivityPoints.Run();
}
///
/// Runs all cleanup examples.
///
public override void CleanUpAll()
{
base.CleanUpAll();
// Badge on user
apiRemoveBadgeFromUser.Run();
// Badge
apiDeleteBadge.Run();
}
#endregion
#region "API examples - Badge"
///
/// Creates badge. Called when the "Create badge" button is pressed.
///
private bool CreateBadge()
{
// Create new badge object
BadgeInfo newBadge = new BadgeInfo();
// Set the properties
newBadge.BadgeDisplayName = "My new badge";
newBadge.BadgeName = "MyNewBadge";
newBadge.BadgeTopLimit = 50;
newBadge.BadgeImageURL = GetImageUrl("Objects/CMS_Badge/Default/siteadmin.gif");
newBadge.BadgeIsAutomatic = true;
// Save the badge
BadgeInfoProvider.SetBadgeInfo(newBadge);
return true;
}
///
/// Gets and updates badge. Called when the "Get and update badge" button is pressed.
/// Expects the CreateBadge method to be run first.
///
private bool GetAndUpdateBadge()
{
// Get the badge
BadgeInfo updateBadge = BadgeInfoProvider.GetBadgeInfo("MyNewBadge");
if (updateBadge != null)
{
// Update the properties
updateBadge.BadgeDisplayName = updateBadge.BadgeDisplayName.ToLowerCSafe();
// Save the changes
BadgeInfoProvider.SetBadgeInfo(updateBadge);
return true;
}
return false;
}
///
/// Gets and bulk updates badges. Called when the "Get and bulk update badges" button is pressed.
/// Expects the CreateBadge method to be run first.
///
private bool GetAndBulkUpdateBadges()
{
// Prepare the parameters
string where = "BadgeName LIKE N'MyNewBadge%'";
// Get the data
DataSet badges = BadgeInfoProvider.GetBadges(where, null);
if (!DataHelper.DataSourceIsEmpty(badges))
{
// Loop through the individual items
foreach (DataRow badgeDr in badges.Tables[0].Rows)
{
// Create object from DataRow
BadgeInfo modifyBadge = new BadgeInfo(badgeDr);
// Update the properties
modifyBadge.BadgeDisplayName = modifyBadge.BadgeDisplayName.ToUpper();
// Save the changes
BadgeInfoProvider.SetBadgeInfo(modifyBadge);
}
return true;
}
return false;
}
///
/// Deletes badge. Called when the "Delete badge" button is pressed.
/// Expects the CreateBadge method to be run first.
///
private bool DeleteBadge()
{
// Get the badge
BadgeInfo deleteBadge = BadgeInfoProvider.GetBadgeInfo("MyNewBadge");
// Delete the badge
BadgeInfoProvider.DeleteBadgeInfo(deleteBadge);
return (deleteBadge != null);
}
///
/// Adds badge to user. Called when the "Add badge to user" button is pressed.
/// Expects the CreateBadge method to be run first.
///
private bool AddBadgeToUser()
{
// Get user object
UserInfo user = UserInfoProvider.GetUserInfo(CMSContext.CurrentUser.UserName);
// Get badge object
BadgeInfo myBadge = BadgeInfoProvider.GetBadgeInfo("MyNewBadge");
if ((user != null) && (myBadge != null))
{
// Add badge to user settings
user.UserSettings.UserBadgeID = myBadge.BadgeID;
// Update user object in database
UserInfoProvider.SetUserInfo(user);
return true;
}
return false;
}
///
/// Updates user's activity points. Called when the "Update user's activity points" button is pressed.
///
private bool UpdateActivityPoints()
{
// Get user
UserInfo user = UserInfoProvider.GetUserInfo(CMSContext.CurrentUser.UserName);
// If user exists
if (user != null)
{
// Update activity points to user
BadgeInfoProvider.UpdateActivityPointsToUser(ActivityPointsEnum.BlogCommentPost, user.UserID, CMSContext.CurrentSiteName, true);
return true;
}
return false;
}
private bool RemoveBadgeFromUser()
{
// Get user
UserInfo user = UserInfoProvider.GetUserInfo(CMSContext.CurrentUser.UserName);
// If user exists
if (user != null)
{
user.UserSettings.UserBadgeID = 0;
// Save updates
UserInfoProvider.SetUserInfo(user);
return true;
}
return false;
}
#endregion
}