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())
 
TokenExport
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);
  }
}