HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/RMourik/bassol.nl/CMS/CMSAPIExamples/Code/Administration/Badges/Default.aspx.cs
using System;
using System.Data;

using CMS.Helpers;
using CMS.Base;
using CMS.SiteProvider;
using CMS.Membership;
using CMS.UIControls;

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"

    /// <summary>
    /// Runs all creating and managing examples.
    /// </summary>
    public override void RunAll()
    {
        base.RunAll();

        // Badge
        apiCreateBadge.Run();
        apiGetAndUpdateBadge.Run();
        apiGetAndBulkUpdateBadges.Run();

        // Badge on user
        apiAddBadgeToUser.Run();
        apiUpdateActivityPoints.Run();
    }


    /// <summary>
    /// Runs all cleanup examples.
    /// </summary>
    public override void CleanUpAll()
    {
        base.CleanUpAll();

        // Badge on user
        apiRemoveBadgeFromUser.Run();
        // Badge
        apiDeleteBadge.Run();
    }

    #endregion


    #region "API examples - Badge"

    /// <summary>
    /// Creates badge. Called when the "Create badge" button is pressed.
    /// </summary>
    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;
    }


    /// <summary>
    /// Gets and updates badge. Called when the "Get and update badge" button is pressed.
    /// Expects the CreateBadge method to be run first.
    /// </summary>
    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;
    }


    /// <summary>
    /// Gets and bulk updates badges. Called when the "Get and bulk update badges" button is pressed.
    /// Expects the CreateBadge method to be run first.
    /// </summary>
    private bool GetAndBulkUpdateBadges()
    {
        // Prepare the parameters
        string where = "BadgeName LIKE N'MyNewBadge%'";

        // Get the data from database
        var badges = BadgeInfoProvider.GetBadges().Where(where);

        // Loop through the individual items
        foreach (BadgeInfo modifyBadge in badges)
        {
            // Update the properties
            modifyBadge.BadgeDisplayName = modifyBadge.BadgeDisplayName.ToUpper();

            // Save the changes
            BadgeInfoProvider.SetBadgeInfo(modifyBadge);
        }

        // Return TRUE if any object was found and updated, FALSE otherwise
        return (badges.Count > 0);
    }


    /// <summary>
    /// Deletes badge. Called when the "Delete badge" button is pressed.
    /// Expects the CreateBadge method to be run first.
    /// </summary>
    private bool DeleteBadge()
    {
        // Get the badge
        BadgeInfo deleteBadge = BadgeInfoProvider.GetBadgeInfo("MyNewBadge");

        // Delete the badge
        BadgeInfoProvider.DeleteBadgeInfo(deleteBadge);

        return (deleteBadge != null);
    }


    /// <summary>
    /// Adds badge to user. Called when the "Add badge to user" button is pressed.
    /// Expects the CreateBadge method to be run first.
    /// </summary>
    private bool AddBadgeToUser()
    {
        // Get user object
        UserInfo user = UserInfoProvider.GetUserInfo(MembershipContext.AuthenticatedUser.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;
    }


    /// <summary>
    /// Updates user's activity points. Called when the "Update user's activity points" button is pressed.
    /// </summary>
    private bool UpdateActivityPoints()
    {
        // Get user
        UserInfo user = UserInfoProvider.GetUserInfo(MembershipContext.AuthenticatedUser.UserName);

        // If user exists
        if (user != null)
        {
            // Update activity points to user
            BadgeInfoProvider.UpdateActivityPointsToUser(ActivityPointsEnum.BlogCommentPost, user.UserID, SiteContext.CurrentSiteName, true);

            return true;
        }

        return false;
    }


    private bool RemoveBadgeFromUser()
    {
        // Get user
        UserInfo user = UserInfoProvider.GetUserInfo(MembershipContext.AuthenticatedUser.UserName);

        // If user exists
        if (user != null)
        {
            user.UserSettings.UserBadgeID = 0;

            // Save updates
            UserInfoProvider.SetUserInfo(user);

            return true;
        }

        return false;
    }

    #endregion
}