Products

Solutions

Resources

Partners

Community

Blog

About

QA

Ideas Test

New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

Welcome to the DNN Community Forums, your preferred source of online community support for all things related to DNN.
In order to participate you must be a registered DNNizen

HomeHomeDevelopment and...Development and...Getting StartedGetting StartedWhere to post questions about creating Schedule Tasks (SchedulerClient)Where to post questions about creating Schedule Tasks (SchedulerClient)
Previous
 
Next
New Post
4/16/2013 1:55 PM
 

Not sure what forum to post this to.

Building some nightly processing tasks for a DNN based site.  I need to be able to call RoleController.DeleteUserRole and RoleController.AddUserRole

Those API calls need an instance of PortalSettings and PortalController.GetCurrentPortalSettings doesnt work.

How do I get around this in a components setup through the Scheduler?

 

 
New Post
4/17/2013 2:31 AM
 

Cretae class named "RoleScheduler" and add the below code to that class.
After building the module, add this scheduler class in dotnetnuke scheduler by going to Host -> Schedule -> Add Item to Schedule

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using DotNetNuke.Services.Scheduling;
using DotNetNuke.Entities.Tabs;
using DotNetNuke.Common.Utilities;
using System.Data;
using DotNetNuke.Entities.Portals;
using DotNetNuke.Security.Roles;
using DotNetNuke;
namespace YourCompany.Modules.ModuleName
{
    public class RoleScheduler : SchedulerClient
    {
        public RoleScheduler(ScheduleHistoryItem oItem) : base()
        {
            this.ScheduleHistoryItem = oItem;
        }

        public override void DoWork()
        {
            try
            {
                //Perform required items for logging
                this.Progressing();
               
                // Adds and deletes user role
                AddDeleteUserRole();

                this.ScheduleHistoryItem.Succeeded = true;
                this.ScheduleHistoryItem.AddLogNote("User role has been added and   deleted successfully ");
            }
            catch (Exception exc)
            {
                this.ScheduleHistoryItem.Succeeded = false;
                this.ScheduleHistoryItem.AddLogNote("Operation failed: " + exc.Message);
                this.Errored(ref exc);
            }
            }
        }

        ///
        ///  Adds and deletes the user role
        ///

        public void AddDeleteUserRole()
        {           
                DateTime dtmExpDate = DateTime.Now;               
                PortalSettings objPortalSettings = new PortalSettings();
                RoleInfo objRoleInfo = new RoleInfo();
                RoleController objRoleController = new RoleController();
                objRoleController.DeleteUserRole(objPortalSettings.PortalId,
                                                                                objPortalSettings.UserId,
                                                                                objRoleInfo.RoleID);
                objRoleController.AddUserRole(objPortalSettings.PortalId,
                                                                            objPortalSettings.UserId,
                                                                            objRoleInfo.RoleID, dtmExpDate);         
        }
    }
}

 

Hope this will help you.

Thanks,
Avinash Kumar [ DNN Developer, Mindfire Solutions,India ]

 

 
Previous
 
Next
HomeHomeDevelopment and...Development and...Getting StartedGetting StartedWhere to post questions about creating Schedule Tasks (SchedulerClient)Where to post questions about creating Schedule Tasks (SchedulerClient)


These Forums are dedicated to discussion of DNN Platform and Evoq Solutions.

For the benefit of the community and to protect the integrity of the ecosystem, please observe the following posting guidelines:

  1. No Advertising. This includes promotion of commercial and non-commercial products or services which are not directly related to DNN.
  2. No vendor trolling / poaching. If someone posts about a vendor issue, allow the vendor or other customers to respond. Any post that looks like trolling / poaching will be removed.
  3. Discussion or promotion of DNN Platform product releases under a different brand name are strictly prohibited.
  4. No Flaming or Trolling.
  5. No Profanity, Racism, or Prejudice.
  6. Site Moderators have the final word on approving / removing a thread or post or comment.
  7. English language posting only, please.
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out