public override void WriteNodes(SearchSiteMapHandler handler, XmlTextWriter writer) {
            IEnumerable results = DataQuery();

            if (results != null) {
                string appUrl = SearchSiteMapProviderBase.GenerateUrl(HttpContext.Current.Request.ApplicationPath + "/");

                //Format is : http://server/site/page.aspx/value1/value2 etc
                if (_pathInfoFormat == true) {
                    _targetUrlseparator = "/";
                    _queryStringDataFieldSeparator = "/";
                }

                foreach (object o in results) {
                    String targetUrlSuffix = "";

                    //Do this once once
                    //Generate query string data fields
                    if ((_queryStringDataFields == null) || (_queryStringDataFields.Count == 0)) {
                        FieldInfo[] fis = o.GetType().GetFields();
                        foreach (FieldInfo fi in fis) {
                            //Skip sitemap specific fields
                            if (String.Compare(fi.Name, _lastModifiedDataField, StringComparison.Ordinal) == 0)
                                continue;

                            if (String.Compare(fi.Name, _changeFrequencyDataField, StringComparison.Ordinal) == 0)
                                continue;

                            if (String.Compare(fi.Name, _priorityDataField, StringComparison.Ordinal) == 0)
                                continue;

                            _queryStringDataFields.Add(fi.Name);
                        }
                    }

                    if ((_queryStringDataFields != null) && (_queryStringDataFields.Count > 0)) {
                        // Is format string present?
                        if (!String.IsNullOrEmpty(_queryStringDataFormatString)) {
                            List<object> _queryStringValues = new List<object>();

                            foreach (String queryStringName in _queryStringDataFields) {
                                _queryStringValues.Add(DataEval(o, queryStringName).ToString());
                            }

                            targetUrlSuffix = String.Format(CultureInfo.InvariantCulture, _queryStringDataFormatString, _queryStringValues.ToArray());
                        }
                        else
                            foreach (String queryStringName in _queryStringDataFields) {
                                String queryStringValue = DataEval(o, queryStringName).ToString();
                                String queryStringNameValue = "";

                                if (!_pathInfoFormat) {
                                    queryStringNameValue = queryStringName + "=" + queryStringValue;
                                }
                                else {
                                    queryStringNameValue = queryStringValue;
                                }

                                if (targetUrlSuffix.Length > 0)
                                    targetUrlSuffix += _queryStringDataFieldSeparator;

                                targetUrlSuffix += queryStringNameValue;
                            }
                    }

                    String url = _targetUrl + _targetUrlseparator + targetUrlSuffix;

                    writer.WriteStartElement("url");
                    writer.WriteElementString("loc", appUrl + url);

                    if (!String.IsNullOrEmpty(_lastModifiedDataField)) {
                        string lastmodifiedValue = DataEval(o, _lastModifiedDataField).ToString();
                        if (!String.IsNullOrEmpty(lastmodifiedValue)) {
                            writer.WriteElementString("lastmod", lastmodifiedValue);
                        }
                    }

                    if (!String.IsNullOrEmpty(_changeFrequencyDataField)) {
                        string changeFrequencyValue = DataEval(o, _changeFrequencyDataField).ToString();
                        if (!String.IsNullOrEmpty(changeFrequencyValue)) {
                            writer.WriteElementString("changefreq", changeFrequencyValue);
                        }
                    }

                    if (!String.IsNullOrEmpty(_priorityDataField)) {
                        string priorityValue = DataEval(o, _priorityDataField).ToString();
                        if (!String.IsNullOrEmpty(priorityValue)) {
                            writer.WriteElementString("priority", priorityValue);
                        }
                    }

                    writer.WriteEndElement(); // url
                }
            }
        }
Ejemplo n.º 2
0
        public override void WriteNodes(SearchSiteMapHandler handler, XmlTextWriter writer)
        {
            IEnumerable results = DataQuery();

            if (results != null)
            {
                string appUrl = SearchSiteMapProviderBase.GenerateUrl(HttpContext.Current.Request.ApplicationPath + "/");

                //Format is : http://server/site/page.aspx/value1/value2 etc
                if (_pathInfoFormat == true)
                {
                    _targetUrlseparator            = "/";
                    _queryStringDataFieldSeparator = "/";
                }

                foreach (object o in results)
                {
                    String targetUrlSuffix = "";

                    //Do this once once
                    //Generate query string data fields
                    if ((_queryStringDataFields == null) || (_queryStringDataFields.Count == 0))
                    {
                        FieldInfo[] fis = o.GetType().GetFields();
                        foreach (FieldInfo fi in fis)
                        {
                            //Skip sitemap specific fields
                            if (String.Compare(fi.Name, _lastModifiedDataField, StringComparison.Ordinal) == 0)
                            {
                                continue;
                            }

                            if (String.Compare(fi.Name, _changeFrequencyDataField, StringComparison.Ordinal) == 0)
                            {
                                continue;
                            }

                            if (String.Compare(fi.Name, _priorityDataField, StringComparison.Ordinal) == 0)
                            {
                                continue;
                            }

                            _queryStringDataFields.Add(fi.Name);
                        }
                    }

                    if ((_queryStringDataFields != null) && (_queryStringDataFields.Count > 0))
                    {
                        // Is format string present?
                        if (!String.IsNullOrEmpty(_queryStringDataFormatString))
                        {
                            List <object> _queryStringValues = new List <object>();

                            foreach (String queryStringName in _queryStringDataFields)
                            {
                                _queryStringValues.Add(DataEval(o, queryStringName).ToString());
                            }

                            targetUrlSuffix = String.Format(CultureInfo.InvariantCulture, _queryStringDataFormatString, _queryStringValues.ToArray());
                        }
                        else
                        {
                            foreach (String queryStringName in _queryStringDataFields)
                            {
                                String queryStringValue     = DataEval(o, queryStringName).ToString();
                                String queryStringNameValue = "";

                                if (!_pathInfoFormat)
                                {
                                    queryStringNameValue = queryStringName + "=" + queryStringValue;
                                }
                                else
                                {
                                    queryStringNameValue = queryStringValue;
                                }

                                if (targetUrlSuffix.Length > 0)
                                {
                                    targetUrlSuffix += _queryStringDataFieldSeparator;
                                }

                                targetUrlSuffix += queryStringNameValue;
                            }
                        }
                    }

                    String url = _targetUrl + _targetUrlseparator + targetUrlSuffix;

                    writer.WriteStartElement("url");
                    writer.WriteElementString("loc", appUrl + url);

                    if (!String.IsNullOrEmpty(_lastModifiedDataField))
                    {
                        string lastmodifiedValue = DataEval(o, _lastModifiedDataField).ToString();
                        if (!String.IsNullOrEmpty(lastmodifiedValue))
                        {
                            writer.WriteElementString("lastmod", lastmodifiedValue);
                        }
                    }

                    if (!String.IsNullOrEmpty(_changeFrequencyDataField))
                    {
                        string changeFrequencyValue = DataEval(o, _changeFrequencyDataField).ToString();
                        if (!String.IsNullOrEmpty(changeFrequencyValue))
                        {
                            writer.WriteElementString("changefreq", changeFrequencyValue);
                        }
                    }

                    if (!String.IsNullOrEmpty(_priorityDataField))
                    {
                        string priorityValue = DataEval(o, _priorityDataField).ToString();
                        if (!String.IsNullOrEmpty(priorityValue))
                        {
                            writer.WriteElementString("priority", priorityValue);
                        }
                    }

                    writer.WriteEndElement(); // url
                }
            }
        }
 public override void WriteNodes(SearchSiteMapHandler handler, XmlTextWriter writer) {
     SiteMapNode root = System.Web.SiteMap.RootNode;
     WriteNode(root, writer, 0);
 }
        public override void WriteNodes(SearchSiteMapHandler handler, XmlTextWriter writer)
        {
            SiteMapNode root = System.Web.SiteMap.RootNode;

            WriteNode(root, writer, 0);
        }
 public virtual void WriteNodes(SearchSiteMapHandler handler, XmlTextWriter writer) {
 }
Ejemplo n.º 6
0
 public virtual void WriteNodes(SearchSiteMapHandler handler, XmlTextWriter writer)
 {
 }