/// <summary> /// Add a <see cref="CommandSecurityTarget"/> to the <see cref="HandleCommand">action</see> /// </summary> /// <param name="action"><see cref="HandleCommand">Action</see> to add to</param> /// <returns><see cref="CommandSecurityTarget"/></returns> public static CommandSecurityTarget Commands(this HandleCommand action) { var target = new CommandSecurityTarget(); action.AddTarget(target); return(target); }
/// <summary> /// Add a <see cref="TypeSecurable"/> to the <see cref="CommandSecurityTarget"/> for a given type /// </summary> /// <typeparam name="T">Type of <see cref="ICommand"/> to secure</typeparam> /// <param name="target"><see cref="CommandSecurityTarget"/> to add to</param> /// <param name="continueWith">Callback for continuing the fluent interface</param> /// <returns><see cref="TypeSecurable"/> for the specific type</returns> public static CommandSecurityTarget InstanceOf <T>(this CommandSecurityTarget target, Action <TypeSecurable> continueWith) where T : ICommand { var securable = new TypeSecurable(typeof(T)); target.AddSecurable(securable); continueWith(securable); return(target); }
/// <summary> /// Add a <see cref="NamespaceSecurable"/> to the <see cref="CommandSecurityTarget"/> for a given namespace /// </summary> /// <param name="target"><see cref="CommandSecurityTarget"/> to add to</param> /// <param name="namespace">Namespace to secure</param> /// <param name="continueWith">Callback for continuing the fluent interface</param> /// <returns><see cref="NamespaceSecurable"/> for the specific namespace</returns> public static CommandSecurityTarget InNamespace(this CommandSecurityTarget target, string @namespace, Action <NamespaceSecurable> continueWith) { var securable = new NamespaceSecurable(@namespace); target.AddSecurable(securable); continueWith(securable); return(target); }