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 }