Exemplo n.º 1
0
        public void Handle(ThreadEntity CurrentThreadEntity, Page.PageAbstract CurrentPageClass, HTMLContainer ContentContainer)
        {
            _threadEntity = CurrentThreadEntity;
            _threadEntity.ControlIndex += 1;

            _index = Xy.Tools.Control.Tag.TransferValue("PageIndex", _index, CurrentPageClass);
            _size  = Xy.Tools.Control.Tag.TransferValue("PageSize", _size, CurrentPageClass);
            _max   = Xy.Tools.Control.Tag.TransferValue("PageMax", _max, CurrentPageClass);
            _count = Xy.Tools.Control.Tag.TransferValue("PageCount", _count, CurrentPageClass);

            if (_innerData == null || (!string.IsNullOrEmpty(_xsltstring) && _threadEntity.WebSetting.DebugMode))
            {
                if (!string.IsNullOrEmpty(_xsltstring))
                {
                    using (System.IO.FileStream fs = new System.IO.FileStream(_threadEntity.WebSetting.XsltDir + _xsltstring, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read)) {
                        using (System.IO.StreamReader sr = new System.IO.StreamReader(fs)) {
                            _innerData.Write(sr.ReadToEnd());
                            sr.Close();
                        }
                        fs.Close();
                    }
                }
            }
            HandleData();
            System.Xml.XPath.XPathDocument xpathDoc = new System.Xml.XPath.XPathDocument(new System.IO.StringReader(_datastring));

            System.Xml.Xsl.XslCompiledTransform xsl = HandleXSLT();

            ContentContainer.Write(Xy.Tools.IO.XML.TransfromXmlStringToHtml(xsl, xpathDoc));
            _threadEntity.ControlIndex -= 1;
        }
Exemplo n.º 2
0
        public void Handle(ThreadEntity CurrentThreadEntity, Page.PageAbstract CurrentPageClass, HTMLContainer ContentContainer)
        {
            _threadEntity = CurrentThreadEntity;
            _threadEntity.ControlIndex += 1;
            _dataBuilder.Init(_tagList);
            _datastring = _dataBuilder.HandleData(CurrentPageClass);
            if (!_xsltLoaded || _threadEntity.WebSetting.DebugMode)
            {
                _xsltstring = HandleXSLT();
            }
            HTMLContainer _temp = new HTMLContainer(ContentContainer.Encoding);

            _xsltstring = _dataBuilder.InsertParameter(_xsltstring);
            if (!string.IsNullOrEmpty(_xsltParameter))
            {
                _xsltstring = InsertParameter(_xsltstring, CurrentPageClass);
            }
            _temp.Write(HandleHTML(_datastring, _xsltstring));

            if (_enableScript && _temp.Length > 0)
            {
                Control.ControlAnalyze _controls = new ControlAnalyze(CurrentThreadEntity, this.Map, true);
                _controls.SetContent(_temp.ToArray());
                _controls.Analyze();
                _temp.Clear();
                _controls.Handle(CurrentPageClass, _temp);
            }
            ContentContainer.Write(_temp);
            _threadEntity.ControlIndex -= 1;
        }
Exemplo n.º 3
0
 private void delegate_Data(string name, ThreadEntity currentThreadEntity, Page.PageAbstract currentPageClass, HTMLContainer contentContainer)
 {
     Page.PageDataItem pdi = currentPageClass.PageData[name];
     if (pdi != null)
     {
         contentContainer.Write(pdi.GetDataString());
     }
 }
Exemplo n.º 4
0
        private void delegate_Group(string name, ThreadEntity currentThreadEntity, Page.PageAbstract currentPageClass, HTMLContainer contentContainer)
        {
            string temp = currentPageClass.Request.GroupString[name];

            if (!string.IsNullOrEmpty(temp))
            {
                contentContainer.Write(temp);
            }
        }
Exemplo n.º 5
0
        private void delegate_Config(string name, ThreadEntity currentThreadEntity, Page.PageAbstract currentPageClass, HTMLContainer contentContainer)
        {
            string temp = _webConfig.Config[name];

            if (!string.IsNullOrEmpty(temp))
            {
                contentContainer.Write(temp);
            }
        }
Exemplo n.º 6
0
        private void delegate_Session(string name, ThreadEntity currentThreadEntity, Page.PageAbstract currentPageClass, HTMLContainer contentContainer)
        {
            string temp = Convert.ToString(currentPageClass.Session[name]);

            if (!string.IsNullOrEmpty(temp))
            {
                contentContainer.Write(temp);
            }
        }
Exemplo n.º 7
0
        public void Handle(ThreadEntity CurrentThreadEntity, Page.PageAbstract CurrentPageClass, HTMLContainer ContentContainer)
        {
            _threadEntity = CurrentThreadEntity;
            _threadEntity.ControlIndex += 1;
            HTMLContainer _innerHTML = new HTMLContainer(ContentContainer.Encoding);

            if (CurrentPageClass is Page.UserPage)
            {
                Page.UserPage up = (Page.UserPage)CurrentPageClass;
                if (up.CurrentUser != null)
                {
                    if ((_hasPowerIndex > 0 && up.CurrentUser.HasPower(_hasPowerIndex)) || (!string.IsNullOrEmpty(_hasPowerKey) && up.CurrentUser.HasPower(_hasPowerKey)))
                    {
                        if (_inGroupIndex > 0 || !string.IsNullOrEmpty(_inGroupKey))
                        {
                            if (up.CurrentUser.InGroup(_inGroupIndex) || up.CurrentUser.InGroup(_inGroupKey))
                            {
                                _innerHTML.Write(_innerData);
                            }
                        }
                        else
                        {
                            _innerHTML.Write(_innerData);
                        }
                    }
                    else if ((_inGroupIndex > 0 && up.CurrentUser.InGroup(_inGroupIndex)) || (!string.IsNullOrEmpty(_hasPowerKey) && up.CurrentUser.InGroup(_inGroupKey)))
                    {
                        _innerHTML.Write(_innerData);
                    }
                }
            }
            if (_innerHTML.Length == 0 && !string.IsNullOrEmpty(_noPowerMessage))
            {
                ContentContainer.Write(_noPowerMessage);
            }
            else
            {
                if (_enableScript)
                {
                    Control.ControlAnalyze _controls = Cache.PageAnalyze.GetInstance(CurrentThreadEntity, CurrentPageClass, this.Map);
                    if (!_controls.IsHandled || CurrentPageClass.WebSetting.DebugMode)
                    {
                        _controls.SetContent(_innerHTML.ToArray());
                        _controls.Analyze();
                    }
                    _controls.Handle(CurrentPageClass, ContentContainer);
                }
                else
                {
                    ContentContainer.Write(_innerHTML);
                }
            }
            _threadEntity.ControlIndex -= 1;
        }
Exemplo n.º 8
0
        private string InsertParameter(string XsltString, Page.PageAbstract CurrentPageClass)
        {
            StringBuilder xsltParametersb = new StringBuilder();

            System.Collections.Specialized.NameValueCollection _xsltParameterCollection = Xy.Tools.Control.Tag.Decode(_xsltParameter);
            foreach (string _key in _xsltParameterCollection.Keys)
            {
                xsltParametersb.Append(string.Format(@"<xsl:variable name=""{0}"">{1}</xsl:variable>", _key, Xy.Tools.Control.Tag.TransferValue(_key, _xsltParameterCollection[_key], CurrentPageClass)));
            }
            xsltParametersb.Append("<xsl:template");
            return(XsltString.Replace("<xsl:template", xsltParametersb.ToString()));
        }
Exemplo n.º 9
0
        private string InsertParameter(string XsltString, Page.PageAbstract CurrentPageClass)
        {
            StringBuilder xsltParametersb = new StringBuilder();

            System.Collections.Specialized.NameValueCollection _xsltParameterCollection = Xy.Tools.Control.Tag.Decode(_xsltParameter);
            foreach (string _key in _xsltParameterCollection.Keys)
            {
                string _value      = _xsltParameterCollection[_key];
                string tempGetName = _key;
                if (_value.IndexOf(':') > 0)
                {
                    tempGetName = _value.Substring(_value.LastIndexOf(':') + 1);
                    _value      = _value.Substring(0, _value.LastIndexOf(':'));
                }

                switch (_value)
                {
                case "Request":
                    _value = CurrentPageClass.Request[tempGetName];
                    break;

                case "Url":
                    _value = CurrentPageClass.Request.QueryString[tempGetName];
                    break;

                case "Form":
                    _value = CurrentPageClass.Request.Form[tempGetName];
                    break;

                case "Group":
                    _value = CurrentPageClass.Request.GroupString[tempGetName];
                    break;

                case "Data":
                    _value = CurrentPageClass.PageData[tempGetName] == null ? string.Empty : CurrentPageClass.PageData[tempGetName].GetDataString();
                    break;

                case "Config":
                    if (tempGetName == _key)
                    {
                        _value = CurrentPageClass.WebSetting.Name;
                    }
                    else
                    {
                        _value = CurrentPageClass.WebSetting.Config[tempGetName];
                    }
                    break;
                }
                xsltParametersb.Append(string.Format(@"<xsl:variable name=""{0}"">{1}</xsl:variable>", _key, _value));
            }
            xsltParametersb.Append("<xsl:template");
            return(XsltString.Replace("<xsl:template", xsltParametersb.ToString()));
        }
Exemplo n.º 10
0
        internal void Handle(ThreadEntity currentThreadEntity, Page.PageAbstract currentPageClass, HTMLContainer contentContainer)
        {
            switch (Type)
            {
            case AnalyzeResultType.PureHTML:
                contentContainer.Write(PureHTML);
                break;

            case AnalyzeResultType.Control:
                Control.Handle(currentThreadEntity, currentPageClass, contentContainer);
                break;
            }
        }
Exemplo n.º 11
0
        public void Handle(ThreadEntity CurrentThreadEntity, Page.PageAbstract CurrentPageClass, HTMLContainer ContentContainer)
        {
            _threadEntity = CurrentThreadEntity;
            _threadEntity.ControlIndex += 1;
            string _content = string.Empty;

            if (_preEnableScript && _innerData.Length > 0)
            {
                Control.ControlAnalyze _controls = Cache.PageAnalyze.GetInstance(CurrentThreadEntity, CurrentPageClass, this.Map);
                if (!_controls.IsHandled || CurrentPageClass.WebSetting.DebugMode)
                {
                    _controls.SetContent(_innerData.ToArray());
                    _controls.Analyze();
                }
                HTMLContainer _temp = new HTMLContainer(_innerData.Encoding);
                _controls.Handle(CurrentPageClass, _temp);
                _content = _temp.ToString();
            }
            else
            {
                _content = _innerData.ToString();
            }
            if (_append)
            {
                string _originalContent = string.Empty;
                if (CurrentPageClass.PageData[_dataName] != null)
                {
                    _originalContent = CurrentPageClass.PageData[_dataName].GetDataString();
                }
                CurrentPageClass.PageData.Add(_dataName, _originalContent + _content);
            }
            else
            {
                CurrentPageClass.PageData.Add(_dataName, _content);
            }

            _threadEntity.ControlIndex -= 1;
        }
Exemplo n.º 12
0
        public void Handle(ThreadEntity CurrentThreadEntity, Page.PageAbstract CurrentPageClass)
        {
            _threadEntity = CurrentThreadEntity;
            _innerHTML.Clear();
            _threadEntity.ControlIndex++;
            Xy.Tools.Web.UrlAnalyzer _url = CurrentThreadEntity.URL;
            if (_webSetting == null)
            {
                _webSetting = CurrentPageClass.WebSetting;
            }
            if (_webSetting.AutoUrl)
            {
                _webSetting.UpdateDomain(CurrentThreadEntity.URL.Site);
            }
            URLManage.URLItem _urlItem = new URLManage.URLItem(_file, _type, _threadEntity.URLItem.Regex.ToString(), _threadEntity.URLItem.Mime, _enableScript, _enableCache, _threadEntity.URLItem.ContentType.ToString(), _threadEntity.URLItem.Age.Minutes);
            ThreadEntity      _entity  = new ThreadEntity(CurrentThreadEntity.WebContext, _webSetting, _urlItem, _url, true);

            _entity.Handle(_extValues);
            if (_entity.Content.HasContent)
            {
                _innerHTML.Write(_entity.Content);
            }
            _threadEntity.ControlIndex--;
        }
Exemplo n.º 13
0
        public void Handle(Page.PageAbstract currentPageClass, HTMLContainer contentContainer)
        {
            if (!_isHandled)
            {
                contentContainer.Write(_content);
                return;
            }
            for (int i = 0; i < _analyzeResultCollection.Count; i++)
            {
//                if (_isHandled && _controlCollection[i].Cached) {
//                    continue;
//                }
//                try {
//#if DEBUG
//                    Xy.Tools.Debug.Log.WriteEventLog(_controlCollection[i].Map + " control handle start");
//#endif
//                    _controlCollection[i].Handle(_currentThreadEntity, currentPageClass);
//#if DEBUG
//                    Xy.Tools.Debug.Log.WriteEventLog(_controlCollection[i].Map + " control handle end");
//#endif
//                } catch (Exception ex) {
//                    throw new Exception("meet a error on handle control: " + _controlCollection[i].Map, ex);
//                }
                try {
#if DEBUG
                    Xy.Tools.Debug.Log.WriteEventLog(_analyzeResultCollection[i].Map + " control handle start");
#endif
                    _analyzeResultCollection[i].Handle(currentPageClass.ThreadEntity, currentPageClass, contentContainer);
#if DEBUG
                    Xy.Tools.Debug.Log.WriteEventLog(_analyzeResultCollection[i].Map + " control handle end");
#endif
                } catch (Exception ex) {
                    throw new Exception("meet an error on handle content: " + _analyzeResultCollection[i].Map, ex);
                }
            }
        }
Exemplo n.º 14
0
        public void Handle(ThreadEntity CurrentThreadEntity, Page.PageAbstract CurrentPageClass, HTMLContainer ContentContainer)
        {
            _threadEntity = CurrentThreadEntity;
            _threadEntity.ControlIndex++;
            if (_webSetting == null)
            {
                _webSetting = CurrentPageClass.WebSetting;
            }
            HTMLContainer _container = new HTMLContainer(_webSetting.Encoding);

            Xy.Web.Page.PageAbstract _page;
            if (string.IsNullOrEmpty(_type))
            {
                _type = "Xy.Web,Xy.Web.Page.EmptyPage";
            }
            _page = Runtime.Web.PageClassLibrary.Get(_type);
            _page.Init(CurrentPageClass, _webSetting, _container);
            if (_extValues != null)
            {
                for (int i = 0; i < _extValues.Count; i++)
                {
                    if (_page.Request.Values[_extValues.Keys[i]] != null)
                    {
                        _page.Request.Values[_extValues.Keys[i]] = _extValues[i];
                    }
                    else
                    {
                        _page.Request.Values.Add(_extValues.Keys[i], _extValues[i]);
                    }
                }
            }
            string _staticCacheDir = string.Empty, _staticCacheFile = string.Empty, _staticCachePath = string.Empty;

            if (_cached)
            {
                _staticCacheDir  = _webSetting.CacheDir + "IncludeCache\\" + _threadEntity.URL.Dir.Replace('/', '\\');
                _staticCacheFile = _file + _valueString;
                _staticCachePath = _staticCacheDir + _staticCacheFile + ".xycache";
                if (!_page.UpdateCache(_staticCachePath, DateTime.Now))
                {
                    if (System.IO.File.Exists(_staticCachePath))
                    {
                        ContentContainer.Write(System.IO.File.ReadAllBytes(_staticCachePath));
                        return;
                    }
                }
            }
            if (_innerData != null && _innerData.HasContent)
            {
                _page.SetContent(_innerData);
            }
            _page.Handle(_map, _file, _enableScript, true);
            if (_cached)
            {
                Xy.Tools.IO.File.ifNotExistsThenCreate(_staticCachePath);
                using (System.IO.FileStream fs = new System.IO.FileStream(_staticCachePath, System.IO.FileMode.Create, System.IO.FileAccess.Write, System.IO.FileShare.Read)) {
                    using (System.IO.StreamWriter sw = new System.IO.StreamWriter(fs)) {
                        try {
                            sw.Write(_container.ToString());
                            sw.Flush();
                        } finally {
                            sw.Close();
                            fs.Close();
                        }
                    }
                }
            }
            ContentContainer.Write(_container);
            //ContentContainer.Write(_page.HTMLContainer);
            _threadEntity.ControlIndex--;
        }
Exemplo n.º 15
0
        public void Handle(ThreadEntity CurrentThreadEntity, Page.PageAbstract CurrentPageClass, HTMLContainer ContentContainer)
        {
            _threadEntity = CurrentThreadEntity;
            if (_webConfig == null)
            {
                _webConfig = CurrentPageClass.WebSetting;
            }
            _threadEntity.ControlIndex += 1;
            HTMLContainer _innerHTML = new HTMLContainer(ContentContainer.Encoding);

            _fillContentDelegate(_settingProperty, CurrentThreadEntity, CurrentPageClass, _innerHTML);

            switch (_mode)
            {
            case TagMode.Get:
                break;

            case TagMode.Compare:
                bool   _passed    = false;
                string _dataValue = _innerHTML.ToString();
                _innerHTML.Clear();
                switch (_compareMode)
                {
                case CompareMode.Equal:
                    if (string.Compare(_dataValue, _compareValue) == 0)
                    {
                        _passed = true;
                    }
                    break;

                case CompareMode.NotEqual:
                    if (string.Compare(_dataValue, _compareValue) != 0)
                    {
                        _passed = true;
                    }
                    break;

                case CompareMode.Greater:
                    if (string.Compare(_dataValue, _compareValue) > 0)
                    {
                        _passed = true;
                    }
                    break;

                case CompareMode.Lesser:
                    if (string.Compare(_dataValue, _compareValue) < 0)
                    {
                        _passed = true;
                    }
                    break;

                case CompareMode.GreaterAndEqual:
                    if (string.Compare(_dataValue, _compareValue) >= 0)
                    {
                        _passed = true;
                    }
                    break;

                case CompareMode.LesserAndEqual:
                    if (string.Compare(_dataValue, _compareValue) <= 0)
                    {
                        _passed = true;
                    }
                    break;
                }
                if (_passed)
                {
                    _innerHTML.Write(_innerData);
                }
                break;

            case TagMode.Exist:
                if (_innerHTML.Length > 0)
                {
                    _innerHTML.Clear();
                    _innerHTML.Write(_innerData);
                }
                break;

            case TagMode.NotExist:
                if (_innerHTML.Length > 0)
                {
                    _innerHTML.Clear();
                }
                else
                {
                    _innerHTML.Write(_innerData);
                }
                break;
            }

            if (_innerHTML.Length == 0 && !string.IsNullOrEmpty(_defaultValue))
            {
                ContentContainer.Write(_defaultValue);
            }
            else
            {
                if (_enableScript)
                {
                    Control.ControlAnalyze _controls = new ControlAnalyze(CurrentThreadEntity, this.Map, _useInnerTag);
                    _controls.SetContent(_innerHTML.ToArray());
                    _controls.Analyze();
                    _controls.Handle(CurrentPageClass, ContentContainer);
                }
                else
                {
                    ContentContainer.Write(_innerHTML);
                }
            }
            _threadEntity.ControlIndex -= 1;
        }
Exemplo n.º 16
0
 private void delegate_App_ScriptPath(string name, ThreadEntity currentThreadEntity, Page.PageAbstract currentPageClass, HTMLContainer contentContainer)
 {
     contentContainer.Write(string.Concat(currentPageClass.URL.BasePath, _webConfig.ScriptPath));
 }
Exemplo n.º 17
0
        public static Control.ControlAnalyze GetInstance(ThreadEntity currentTheadEntity, Page.PageAbstract currentPageClass, string map, bool useInnerMark = false)
        {
            if (currentPageClass.WebSetting.DebugMode)
            {
                return(new Control.ControlAnalyze(currentTheadEntity, map, useInnerMark));
            }
            string _key = string.Concat(currentPageClass.WebSetting.Name, currentTheadEntity.URLItem.PageClassName, map);

            if (!_controlCenter.ContainsKey(_key))
            {
                _controlCenter.Add(_key, new Control.ControlAnalyze(currentTheadEntity, map, useInnerMark));
            }
            return(_controlCenter[_key]);
        }
Exemplo n.º 18
0
 private void delegate_Url_Dir(string name, ThreadEntity currentThreadEntity, Page.PageAbstract currentPageClass, HTMLContainer contentContainer)
 {
     contentContainer.Write(currentPageClass.URL.Dir);
 }
Exemplo n.º 19
0
 private void delegate_Config_ScriptPath(string name, ThreadEntity currentThreadEntity, Page.PageAbstract currentPageClass, HTMLContainer contentContainer)
 {
     contentContainer.Write(_webConfig.ScriptPath);
 }
Exemplo n.º 20
0
 private void delegate_Theme_Template(string name, ThreadEntity currentThreadEntity, Page.PageAbstract currentPageClass, HTMLContainer contentContainer)
 {
     contentContainer.Write(currentThreadEntity.URLItem.PagePath);
 }
Exemplo n.º 21
0
 private void delegate_Theme_Name(string name, ThreadEntity currentThreadEntity, Page.PageAbstract currentPageClass, HTMLContainer contentContainer)
 {
     contentContainer.Write(_webConfig.Theme);
 }
Exemplo n.º 22
0
 private void delegate_Config_DebugMode(string name, ThreadEntity currentThreadEntity, Page.PageAbstract currentPageClass, HTMLContainer contentContainer)
 {
     contentContainer.Write(_webConfig.DebugMode ? "True" : "False");
 }