Пример #1
0
        /// <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));
        }
Пример #2
0
        /// <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));
        }
Пример #3
0
        /// <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;
        }
Пример #4
0
        /// <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);
Пример #6
0
 /// <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);
 }
Пример #11
0
 /// <exclude />
 public PageAddActionToken(Guid pageTypeId, ActionIdentifier actionIdentifier, IEnumerable<PermissionType> permissionTypes)
     : base(actionIdentifier,permissionTypes)
 {
     _pageTypeId = pageTypeId;
 }
Пример #12
0
 /// <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;
 }
Пример #16
0
 /// <exclude />
 public ProxyDataActionToken(ActionIdentifier actionIdentifier, IEnumerable<PermissionType> permissionTypes) : this(actionIdentifier)
 {
     _permissionTypes = permissionTypes;
 }
Пример #17
0
 /// <exclude />
 public ProxyDataActionToken( ActionIdentifier actionIdentifier)
 {
     _actionIdentifier = actionIdentifier;
 }
 public abstract bool Check(Type type, IData data, ActionIdentifier actionIdentifier);