Пример #1
0
        /// <summary>
        /// Executes the specified args.
        /// </summary>
        /// <param name="args">The args.</param>
        public void Execute(ObjectConstructionArgs args)
        {
            if (args.Result != null)
                return;

            var type = args.Configuration.Type;

            if(type.IsInterface)
            {
                return;
            }

            if(args.AbstractTypeCreationContext.IsLazy)
            {
                //here we create a lazy loaded version of the class
                args.Result = CreateLazyObject(args);
                args.AbortPipeline();

            }
            else
            {
                //here we create a concrete version of the class
                args.Result = CreateObject(args);
                args.AbortPipeline();

                
            }
        }
Пример #2
0
        /// <summary>
        /// Executes the specified args.
        /// </summary>
        /// <param name="args">The args.</param>
        public void Execute(ObjectConstructionArgs args)
        {
            if (args.Result != null)
            {
                return;
            }

            var type = args.Configuration.Type;

            if (type.IsInterface)
            {
                return;
            }

            if (args.AbstractTypeCreationContext.IsLazy)
            {
                //here we create a lazy loaded version of the class
                args.Result = CreateLazyObject(args);
                args.AbortPipeline();
            }
            else
            {
                //here we create a concrete version of the class
                args.Result = CreateObject(args);
                args.AbortPipeline();
            }
        }
Пример #3
0
 public void Execute(ObjectConstructionArgs args)
 {
     if (args.Result != null || !SearchSwitcher.IsSearchContext || args.Configuration.Type.IsSealed)
     {
         return;
     }
     if (args.Configuration.Type.IsInterface)
     {
         args.Result = _generator.CreateInterfaceProxyWithoutTarget(args.Configuration.Type, new SearchInterceptor(args));
         args.AbortPipeline();
     }
     else
     {
         args.Result = _generator.CreateClassProxy(args.Configuration.Type, new SearchInterceptor(args));
         args.AbortPipeline();
     }
 }
Пример #4
0
        /// <summary>
        /// Executes the specified args.
        /// </summary>
        /// <param name="args">The args.</param>
        public void Execute(ObjectConstructionArgs args)
        {
            if (args.Result != null)
                return;

            if (args.Configuration.Type.IsInterface)
            {
                args.Result = _generator.CreateInterfaceProxyWithoutTarget(args.Configuration.Type, new InterfacePropertyInterceptor(args));
                args.AbortPipeline();
            }
        }
Пример #5
0
        /// <summary>
        /// Executes the specified args.
        /// </summary>
        /// <param name="args">The args.</param>
        public void Execute(ObjectConstructionArgs args)
        {
            if (args.Result != null)
            {
                return;
            }

            if (args.Configuration.Type.IsInterface)
            {
                args.Result = _generator.CreateInterfaceProxyWithoutTarget(args.Configuration.Type, new InterfacePropertyInterceptor(args));
                args.AbortPipeline();
            }
        }
Пример #6
0
        public void Execute(ObjectConstructionArgs args)
        {
            if (args.Result == null && args.Configuration.Cachable && args.AbstractTypeCreationContext.CacheEnabled && DisableCache.Current == CacheSetting.Enabled)
            {
                var key = args.Context.Name + args.AbstractTypeCreationContext.GetUniqueKey();

                var cacheItem = _cacheManager.Get<object>(key);
                if (cacheItem != null)
                {
                    args.Result = cacheItem;
                    args.AbortPipeline();
                }
            }
        }
Пример #7
0
        public void Execute(ObjectConstructionArgs args)
        {
            if (args.Result == null && args.Configuration.Cachable && args.AbstractTypeCreationContext.CacheEnabled && DisableCache.Current == CacheSetting.Enabled)
            {
                var key = args.Context.Name + args.AbstractTypeCreationContext.GetUniqueKey();

                var cacheItem = _cacheManager.Get <object>(key);
                if (cacheItem != null)
                {
                    args.Result = cacheItem;
                    args.AbortPipeline();
                }
            }
        }
        public void Execute(ObjectConstructionArgs args)
        {
            if (args.Result == null)
            {
                var scConfig = args.Configuration as SitecoreTypeConfiguration;

                if (scConfig.EnforceTemplate != SitecoreEnforceTemplate.No)
                {
                    var scArgs = args.AbstractTypeCreationContext as SitecoreTypeCreationContext;

                    var key    = "{0} {1} {2}".Formatted(scConfig.TemplateId, scArgs.Item.TemplateID, scConfig.EnforceTemplate);
                    var result = false;

                    if (_cache.ContainsKey(key))
                    {
                        result = _cache[key];
                    }
                    else
                    {
                        var item = scArgs.Item;

                        if (scConfig.EnforceTemplate == SitecoreEnforceTemplate.TemplateAndBase)
                        {
                            result = item.TemplateID == scConfig.TemplateId ||
                                     item.Template.BaseTemplates.Any(x => x.ID == scConfig.TemplateId);
                        }
                        else if (scConfig.EnforceTemplate == SitecoreEnforceTemplate.Template)
                        {
                            result = item.TemplateID == scConfig.TemplateId;
                        }

                        _cache[key] = result;
                    }

                    if (result)
                    {
                        return;
                    }
                    else
                    {
                        args.AbortPipeline();
                    }
                }
            }
        }
 public void Execute(ObjectConstructionArgs args)
 {
     if (args.Result != null)
     {
         return;
     }
     if (_templateCheck.IsAssignableFrom(args.AbstractTypeCreationContext.RequestedType))
     {
         var scContext = args.AbstractTypeCreationContext as SitecoreTypeCreationContext;
         var config    = args.Configuration as SitecoreTypeConfiguration;
         var template  = scContext.SitecoreService.Database.GetTemplate(scContext.Item.TemplateID);
         //check to see if any base template matched the template for the requested type
         if (template.BaseTemplates.All(x => x.ID != config.TemplateId) && scContext.Item.TemplateID != config.TemplateId)
         {
             args.AbortPipeline();
         }
     }
 }