RazorScript Examples

1)  Custom dll to use in a razor script

    - Open VisualStudio
    - New Project
    - Select Visual C# / ClassLibrary
    - Give it a name (ClassLibrary2)
    - Write some code in your class (Example.cs)
                namespace NamespaceExample
                            {
                                public class Class1
                                {
                                    public static string HelloWorld(string name) {
                                    return "Hello World from " + name;
                                    }
                                }
                            }
        - Build the project
        - Copy the dll in your bin folder

        Project.zip

2) Razorscript example with assembly and custom dll

    - Create a new script
    - Set namespace and name (RazorExample/Hello)
    - Set additional assemblies to ~/bin/ClassLibrary1.dll
    - Set your script code
                 @{
                var hello = NamespaceExample.Class1.HelloWorld(@TknParams.UserName.ToString());
            }
            @hello


        Now the token [RazorExample:Hello(UserName="Me")] will return "Hello World from Me"

    Side notes:
        - the class should have the whole namespace written
        - a tokenparameter is an object so it should be converted (ex: @TknParams.UserName.ToString())

3) Provided by Duotix: Razor Token example that can change the password of a DNN User (2 parameters: PortalID and UserID)

@{
int dtxPortalID = Convert.ToInt32(TknParams.PortalID.ToString());
int dtxUserID = Convert.ToInt32(TknParams.UserID.ToString());
string dtxPassword = TknParams.Password.ToString();
  Boolean dtxResult = false;

if (dtxUserID!=1) { // never change host
    UserInfo dtxUserInfo = DotNetNuke.Entities.Users.UserController.GetUser(dtxPortalID, dtxUserID, false);
    UserController.ResetPasswordToken(dtxUserInfo, 2); // 2 minutes
    string dtxPasswordResetToken = dtxUserInfo.PasswordResetToken.ToString();

    try
    {
      dtxResult = UserController.ChangePasswordByToken(dtxUserInfo.PortalID, dtxUserInfo.Username, dtxPassword, dtxPasswordResetToken);
    }
    catch (Exception dtxEx)
    {
      //@dtxEx.ToString();
    }
}
}@dtxResult.ToString()


4) Provided by Duotix: : Razor Token example that can delete a user (2 parameters: PortalID and UserID)

        @{
int dtxPortalID = Convert.ToInt32(TknParams.PortalID.ToString());
int dtxUserID = Convert.ToInt32(TknParams.UserID.ToString());

if (dtxUserID!=1) { // never delete host
    UserInfo objUserInfo = DotNetNuke.Entities.Users.UserController.GetUser(dtxPortalID, dtxUserID, false);
    UserController.DeleteUser(ref objUserInfo, false, false);
    UserController.RemoveUser(objUserInfo);
}
5) Provided by Duotix: : Razor Token example that can set the value of the username and email to a new value (3 parameters: PortalID, UserID and Username)

@{
int dtxPortalID = Convert.ToInt32(TknParams.PortalID.ToString());
int dtxUserID = Convert.ToInt32(TknParams.UserID.ToString());
string dtxUsername = TknParams.Username.ToString();

if (dtxUserID!=1) { // never change host
    UserInfo dtxUserInfo = DotNetNuke.Entities.Users.UserController.GetUser(dtxPortalID, dtxUserID, false);

    dtxUserInfo.DisplayName = dtxUsername;
    dtxUserInfo.Email = dtxUsername;

    //dtxUserInfo.Membership.Approved = false;
    UserController.UpdateUser(dtxPortalID, dtxUserInfo);
    UserController.ChangeUsername(dtxUserID, dtxUsername);
}
  }