Exemplo n.º 1
0
        protected override void RunPipeline(HttpContext context)
        {
            var args = new PushPipelineArgs()
            {
                HttpContext = context
            };

            CorePipeline.Run("xdb.ingest.push", args);
        }
        public virtual void Process(PushPipelineArgs args)
        {
            if (args == null)
            {
                throw new ArgumentNullException("args");
            }
            if (args.HttpContext == null)
            {
                throw new NullReferenceException("args.HttpContext");
            }
            if (args.HttpContext.Request == null)
            {
                throw new NullReferenceException("args.HttpContext.Request");
            }
            var handlerName = args.HttpContext.Request.Url.Segments.Last().Replace("/", string.Empty);

            if (string.IsNullOrEmpty(handlerName))
            {
                return;
            }
            if (args == null)
            {
                throw new ArgumentNullException("args");
            }
            var database = Sitecore.Context.Database;

            if (database == null)
            {
                throw new NullReferenceException("Sitecore.Context.Database");
            }
            var ids = GetDataHandlerItemIds(handlerName, database);

            foreach (var id in ids)
            {
                PushDataHandlerItem pdhItem = database.GetItem(id);
                if (pdhItem == null)
                {
                    continue;
                }
                var reader   = pdhItem.DataReader.GetDataReader();
                var hydrator = pdhItem.DataHydrator.GetHydrator();
                var handler  = new DataHandler()
                {
                    DataReader = reader, Hydrator = hydrator, ApplyNullValues = pdhItem.ApplyNullValues
                };
                if (!args.DataHandlers.Contains(handler))
                {
                    args.DataHandlers.Add(handler);
                }
            }
        }
 public virtual void Process(PushPipelineArgs args)
 {
     if (args == null) { throw new ArgumentNullException("args"); }
     if (args.HttpContext == null) { throw new NullReferenceException("args.HttpContext"); }
     if (args.HttpContext.Request == null) { throw new NullReferenceException("args.HttpContext.Request"); }
     var handlerName = args.HttpContext.Request.Url.Segments.Last().Replace("/", string.Empty);
     if (string.IsNullOrEmpty(handlerName))
     {
         return;
     }
     if (args == null)
     {
         throw new ArgumentNullException("args");
     }
     var database = Sitecore.Context.Database;
     if (database == null)
     {
         throw new NullReferenceException("Sitecore.Context.Database");
     }
     var ids = GetDataHandlerItemIds(handlerName, database);
     foreach (var id in ids)
     {
         PushDataHandlerItem pdhItem = database.GetItem(id);
         if (pdhItem == null)
         {
             continue;
         }
         var reader = pdhItem.DataReader.GetDataReader();
         var hydrator = pdhItem.DataHydrator.GetHydrator();
         var handler = new DataHandler() { DataReader = reader, Hydrator = hydrator, ApplyNullValues = pdhItem.ApplyNullValues };
         if (!args.DataHandlers.Contains(handler))
         {
             args.DataHandlers.Add(handler);
         }
     }
 }