/// <summary> /// Use this to assign a deafult action to a certain data type /// </summary> /// <typeparam name="T"></typeparam> /// <param name="actionIdentifier"></param> /// <param name="dataActionToken"></param> public void RegisterDefault <T>(ActionIdentifier actionIdentifier, ActionToken dataActionToken) where T : IData { Verify.ArgumentNotNull(actionIdentifier, nameof(actionIdentifier)); Verify.ArgumentNotNull(dataActionToken, nameof(dataActionToken)); if (_defaultActions == null) { _defaultActions = new List <DataActionTokenRegisterHandler>(); } _defaultActions.Add(new DataActionTokenRegisterHandler <T>(actionIdentifier, dataActionToken)); }
/// <summary> /// Use this to assaign an action to a certain data type if a certain condition met /// </summary> /// <typeparam name="T"></typeparam> /// <param name="actionIdentifier"></param> /// <param name="actionValidPredicate"></param> /// <param name="dataActionToken"></param> public void RegisterConditional <T>(ActionIdentifier actionIdentifier, Func <T, bool> actionValidPredicate, ActionToken dataActionToken) where T : IData { Verify.ArgumentNotNull(actionIdentifier, nameof(actionIdentifier)); Verify.ArgumentNotNull(actionValidPredicate, nameof(actionValidPredicate)); Verify.ArgumentNotNull(dataActionToken, nameof(dataActionToken)); if (_conditionalActions == null) { _conditionalActions = new List <DataActionTokenRegisterHandler>(); } _conditionalActions.Add(new DataActionTokenRegisterHandler <T>(actionIdentifier, dataActionToken, actionValidPredicate)); }
/// <summary> /// Resolves a default action of the given type for a given data item /// </summary> /// <param name="data">The data item</param> /// <param name="actionIdentifier">The action identifier</param> /// <returns></returns> public ActionToken ResolveDefault(IData data, ActionIdentifier actionIdentifier) { var interfaces = GetOrderedInterfaces(data.DataSourceId.InterfaceType); foreach (var type in interfaces) { var defaultAction = _defaultActions?.LastOrDefault(f => f.Check(type, data, actionIdentifier)); if (defaultAction != null) { return defaultAction.GetActionToken(data); } } return null; }
/// <exclude /> public static ActionToken Deserialize(string serializedData) { Dictionary <string, string> dic = StringConversionServices.ParseKeyValueCollection(serializedData); if (!dic.ContainsKey("_ActionIdentifier_") || !dic.ContainsKey("_PermissionTypes_")) { throw new ArgumentException($"The {nameof(serializedData)} is not a serialized {nameof(ProxyDataActionToken)}", nameof(serializedData)); } string serializedType = StringConversionServices.DeserializeValueString(dic["_ActionIdentifier_"]); string permissionTypesString = StringConversionServices.DeserializeValueString(dic["_PermissionTypes_"]); var result = new ProxyDataActionToken(ActionIdentifier.Deserialize(serializedType), permissionTypesString.DesrializePermissionTypes()); return(result); }
public abstract bool Check(Type type,IData data, ActionIdentifier actionIdentifier);
/// <exclude /> public bool Equals(ActionIdentifier obj) { return obj == this; }
/// <summary> /// Use this to assaign an action to a certain data type if a certain condition met /// </summary> /// <typeparam name="T"></typeparam> /// <param name="actionIdentifier"></param> /// <param name="actionValidPredicate"></param> /// <param name="dataActionToken"></param> public static void RegisterConditional <T>(ActionIdentifier actionIdentifier, Func <T, bool> actionValidPredicate, Func <T, ActionToken> dataActionToken) where T : IData { GetDataActionTokenResolverService().RegisterConditional <T>(actionIdentifier, actionValidPredicate, dataActionToken); }
/// <summary> /// Use this to assign a deafult action to a certain data type /// </summary> /// <typeparam name="T"></typeparam> /// <param name="actionIdentifier"></param> /// <param name="dataActionToken"></param> public static void RegisterDefault <T>(ActionIdentifier actionIdentifier, Func <T, ActionToken> dataActionToken) where T : IData { GetDataActionTokenResolverService().RegisterDefault <T>(actionIdentifier, dataActionToken); }
/// <exclude /> public static ActionToken ResolveDefault(IData data, ActionIdentifier actionIdentifier) { return(GetDataActionTokenResolverService().ResolveDefault(data, actionIdentifier)); }
/// <exclude /> public bool Equals(ActionIdentifier obj) { return(obj == this); }
/// <exclude /> public PageAddActionToken(Guid pageTypeId, ActionIdentifier actionIdentifier, IEnumerable<PermissionType> permissionTypes) : base(actionIdentifier,permissionTypes) { _pageTypeId = pageTypeId; }
/// <exclude /> public PageAddActionToken(Guid pageTypeId, ActionIdentifier actionIdentifier) : base(actionIdentifier) { _pageTypeId = pageTypeId; }
/// <exclude /> public override string Serialize() { StringBuilder stringBuilder = new StringBuilder(); StringConversionServices.SerializeKeyValuePair(stringBuilder, "_ActionIdentifier_", ActionIdentifier.Serialize()); StringConversionServices.SerializeKeyValuePair(stringBuilder, "_PermissionTypes_", PermissionTypes.SerializePermissionTypes()); StringConversionServices.SerializeKeyValuePair(stringBuilder, "_DoIgnoreEntityTokenLocking_", DoIgnoreEntityTokenLocking); return(stringBuilder.ToString()); }
/// <exclude /> public ProxyDataActionToken(ActionIdentifier actionIdentifier, IEnumerable <PermissionType> permissionTypes) : this(actionIdentifier) { _permissionTypes = permissionTypes; }
/// <exclude /> public ProxyDataActionToken(ActionIdentifier actionIdentifier) { _actionIdentifier = actionIdentifier; }
/// <exclude /> public ProxyDataActionToken(ActionIdentifier actionIdentifier, IEnumerable<PermissionType> permissionTypes) : this(actionIdentifier) { _permissionTypes = permissionTypes; }
/// <exclude /> public ProxyDataActionToken( ActionIdentifier actionIdentifier) { _actionIdentifier = actionIdentifier; }
public abstract bool Check(Type type, IData data, ActionIdentifier actionIdentifier);