public override void Load() { base.Load(); ShellAction refreshAction = new ShellAction(this._rootWorkItem); refreshAction.Caption = StringResources.Dashboard_Refresh; refreshAction.IsEnabled = true; refreshAction.IsAuthorized = true; refreshAction.Id = "action://Imi.SupplyChain.UX.Shell/DashboardRefresh"; ActionCatalogService.RegisterActionImplementation(refreshAction.Id, OnDashboardRefresh); ShellInteractionService.Actions.Add(refreshAction); ShellAction arrangeAction = new ShellAction(this._rootWorkItem); arrangeAction.Caption = StringResources.Dashboard_Arrange; arrangeAction.IsEnabled = true; arrangeAction.IsAuthorized = true; arrangeAction.Id = "action://Imi.SupplyChain.UX.Shell/DashboardArrange"; ActionCatalogService.RegisterActionImplementation(arrangeAction.Id, OnDashboardArrange); ShellInteractionService.Actions.Add(arrangeAction); ControlledWorkItem <ShellController> shellWorkItem = _rootWorkItem.WorkItems.FindByType <ControlledWorkItem <ShellController> >().Last(); _dashboardView = shellWorkItem.SmartParts.FindByType <IDashboardView>().Last(); }
public void UpdateActions(object owner) { if (unauthorizedActions.Count > 0 || unauthorizedDrillDownActions.Count > 0) { List <AuthOperation> operationsList = new List <AuthOperation>(); operationsList.AddRange(unauthorizedActions.Select(a => new AuthOperation() { Operation = a.Operation, Action = a, isDrillDown = false })); operationsList.AddRange(unauthorizedDrillDownActions.Select(a => new AuthOperation() { Operation = a.Operation, Action = a, isDrillDown = true })); unauthorizedActions.Clear(); unauthorizedDrillDownActions.Clear(); ThreadPool.QueueUserWorkItem(CheckAuthorization, operationsList); } if (actionsDictionary.ContainsKey(owner)) { foreach (ShellAction action in actionsDictionary[owner].Intersect(authorizedActions)) { action.IsEnabled = ActionCatalogService.CanExecute(action.Id, action.WorkItem, this, action) && action.IsAuthorized; } } }
public object ExecuteSpecialFunction(string action, string name, object[] args, WorkItem context) { if (ActionCatalogService != null) { return(ActionCatalogService.ExecuteSpecialFunction(action, name, args, context)); } return(null); }
private void CheckAuthorization(object state) { //IList<ShellAction> actions = state as IList<ShellAction>; //var ops = (from a in actions //select new AuthOperation() { Operation = a.Operation, Action = a } as IAuthOperation).ToArray(); IAuthOperation[] ops = ((List <AuthOperation>)state).ToArray(); try { AuthorizationService.CheckAuthorization(applicationName, ops); currentContext.Send(delegate(object data) { foreach (AuthOperation operation in ops) { ShellAction action = operation.Action; if (operation.isDrillDown) { authorizedDrillDownActions.Add(action); } else { authorizedActions.Add(action); } action.IsAuthorized = operation.IsAuthorized; action.IsEnabled = ActionCatalogService.CanExecute(action.Id, action.WorkItem, this, action); } }, null); } catch (Exception ex) { currentContext.Send(delegate(object data) { throw ex; }, null); } }
public void Initialize() { catalog = new ActionCatalogService(); }