Exemplo n.º 1
0
        protected SiteMapNode ResolveSiteMapNode(HttpContext context)
        {
            SiteMapResolveEventHandler eventHandler = SiteMapResolve;

            if (eventHandler == null)
            {
                return(null);
            }

            if (!context.Items.Contains(_resolutionTicket))
            {
                context.Items.Add(_resolutionTicket, true);

                try {
                    Delegate[] ds  = eventHandler.GetInvocationList();
                    int        len = ds.Length;
                    for (int i = 0; i < len; i++)
                    {
                        SiteMapNode ret = ((SiteMapResolveEventHandler)ds[i])(this, new SiteMapResolveEventArgs(context, this));
                        if (ret != null)
                        {
                            return(ret);
                        }
                    }
                } finally {
                    context.Items.Remove(_resolutionTicket);
                }
            }


            return(null);
        }
Exemplo n.º 2
0
    protected override void OnInit(EventArgs e)
    {
        ReadLocale(Request.Cookies[LocaleHelper.CONFG_COOKIE_NAME]);
        //CheckUpdateSiteMap();

        /*lock( SiteMap.Provider )
         * {
         *  if( _h == null )
         *  {
         *      _h = new SiteMapResolveEventHandler( ResolveIds );
         *      SiteMap.SiteMapResolve += _h;
         *  }
         * }*/
        lock (SiteMap.Providers)
        {
            if (_h == null)
            {
                _h = new SiteMapResolveEventHandler(ResolveIds);
                foreach (SiteMapProvider prov in SiteMap.Providers)
                {
                    prov.SiteMapResolve += _h;
                }
            }
        }
        base.OnInit(e);
    }
        protected SiteMapNode ResolveSiteMapNode(HttpContext context)
        {
            SiteMapResolveEventHandler siteMapResolve = this.SiteMapResolve;

            if ((siteMapResolve != null) && !context.Items.Contains(this._resolutionTicket))
            {
                context.Items.Add(this._resolutionTicket, true);
                try
                {
                    Delegate[] invocationList = siteMapResolve.GetInvocationList();
                    int        length         = invocationList.Length;
                    for (int i = 0; i < length; i++)
                    {
                        SiteMapNode node = ((SiteMapResolveEventHandler)invocationList[i])(this, new SiteMapResolveEventArgs(context, this));
                        if (node != null)
                        {
                            return(node);
                        }
                    }
                }
                finally
                {
                    context.Items.Remove(this._resolutionTicket);
                }
            }
            return(null);
        }
Exemplo n.º 4
0
        protected SiteMapNode ResolveSiteMapNode(HttpContext context)
        {
            SiteMapResolveEventHandler eh = events [siteMapResolveEvent] as SiteMapResolveEventHandler;

            if (eh != null)
            {
                lock (resolveLock) {
                    if (resolving)
                    {
                        return(null);
                    }
                    resolving = true;
                    SiteMapResolveEventArgs args = new SiteMapResolveEventArgs(context, this);
                    SiteMapNode             r    = eh(this, args);
                    resolving = false;
                    return(r);
                }
            }
            else
            {
                return(null);
            }
        }