Пример #1
0
        /// <summary>
        /// Registers a global data url mapper for the specified type.
        /// </summary>
        /// <param name="dataType">The data type.</param>
        /// <param name="dataUrlMapper">The data url mapper.</param>
        public static void RegisterGlobalDataUrlMapper(Type dataType, IDataUrlMapper dataUrlMapper)
        {
            Verify.ArgumentCondition(dataType.IsInterface && typeof(IData).IsAssignableFrom(dataType), "dataType",
                                     "The data type should be an interface inheriting Composite.Data.IData");

            _globalDataUrlMappers[dataType] = dataUrlMapper;
        }
Пример #2
0
        /// <summary>
        /// Registers a data url mapper associated with a page.
        /// </summary>
        /// <param name="pageId">The page id.</param>
        /// <param name="dataType">The data type.</param>
        /// <param name="dataUrlMapper">The data url mapper.</param>
        public static void RegisterDynamicDataUrlMapper(Guid pageId, Type dataType, IDataUrlMapper dataUrlMapper)
        {
            Verify.ArgumentNotNull(dataType, "dataType");
            Verify.ArgumentNotNull(dataUrlMapper, "dataUrlMapper");
            Verify.ArgumentCondition(dataType.IsInterface && typeof(IData).IsAssignableFrom(dataType), "dataType",
                                     "The data type should be an interface inheriting Composite.Data.IData");

            var handlerList = _dynamicPageDataUrlMappers.GetOrAdd(pageId,
                                                                  key => new ConcurrentDictionary <Type, IDataUrlMapper>());

            handlerList[dataType] = dataUrlMapper;
        }
Пример #3
0
        /// <summary>
        /// Registers a data url mapper associated with a page.
        /// </summary>
        /// <param name="pageId">The page id.</param>
        /// <param name="dataType">The data type.</param>
        /// <param name="dataUrlMapper">The data url mapper.</param>
        public static void RegisterStaticDataUrlMapper(Guid pageId, Type dataType, IDataUrlMapper dataUrlMapper)
        {
            Verify.ArgumentNotNull(dataUrlMapper, "dataUrlMapper");
            Verify.ArgumentCondition(dataType.IsInterface && typeof(IData).IsAssignableFrom(dataType), "dataType",
                                     "The data type should be an interface inheriting Composite.Data.IData");

            var handlerList = _staticPageDataUrlMappers.GetOrAdd(pageId,
                                                                 key => new ConcurrentBag <KeyValuePair <Type, IDataUrlMapper> >());

            if (handlerList.Count > 100)
            {
                // Preventing a memory leak here
                return;
            }

            handlerList.Add(new KeyValuePair <Type, IDataUrlMapper>(dataType, dataUrlMapper));
        }
Пример #4
0
 public virtual void AssignDynamicUrlMapper(Type dataType, IDataUrlMapper dataUrlMapper)
 {
     _dataUrlMappers.Add(new Tuple<Type, IDataUrlMapper>(dataType, dataUrlMapper));
 }
Пример #5
0
 public virtual void AssignDynamicUrlMapper(Type dataType, IDataUrlMapper dataUrlMapper)
 {
     _dataUrlMappers.Add(new Tuple <Type, IDataUrlMapper>(dataType, dataUrlMapper));
 }
Пример #6
0
 /// <summary>
 /// Registers a data url mapper associated with a page.
 /// </summary>
 /// <param name="pageId">The page id.</param>
 /// <param name="dataUrlMapper">The data url mapper.</param>
 /// <typeparam name="T">The data type.</typeparam>
 public static void RegisterDynamicDataUrlMapper <T>(Guid pageId, IDataUrlMapper dataUrlMapper) where T : class, IData
 {
     RegisterDynamicDataUrlMapper(pageId, typeof(T), dataUrlMapper);
 }
Пример #7
0
 /// <summary>
 /// Registers a global data url mapper for the specified type.
 /// </summary>
 /// <param name="dataUrlMapper"></param>
 /// <typeparam name="T">The data type.</typeparam>
 public static void RegisterGlobalDataUrlMapper <T>(IDataUrlMapper dataUrlMapper) where T : class, IData
 {
     RegisterGlobalDataUrlMapper(typeof(T), dataUrlMapper);
 }