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; }
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; }
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()); } }
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); } }
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); } }
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); } }
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; }
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())); }
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())); }
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; } }
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; }
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--; }
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); } } }
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--; }
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; }
private void delegate_App_ScriptPath(string name, ThreadEntity currentThreadEntity, Page.PageAbstract currentPageClass, HTMLContainer contentContainer) { contentContainer.Write(string.Concat(currentPageClass.URL.BasePath, _webConfig.ScriptPath)); }
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]); }
private void delegate_Url_Dir(string name, ThreadEntity currentThreadEntity, Page.PageAbstract currentPageClass, HTMLContainer contentContainer) { contentContainer.Write(currentPageClass.URL.Dir); }
private void delegate_Config_ScriptPath(string name, ThreadEntity currentThreadEntity, Page.PageAbstract currentPageClass, HTMLContainer contentContainer) { contentContainer.Write(_webConfig.ScriptPath); }
private void delegate_Theme_Template(string name, ThreadEntity currentThreadEntity, Page.PageAbstract currentPageClass, HTMLContainer contentContainer) { contentContainer.Write(currentThreadEntity.URLItem.PagePath); }
private void delegate_Theme_Name(string name, ThreadEntity currentThreadEntity, Page.PageAbstract currentPageClass, HTMLContainer contentContainer) { contentContainer.Write(_webConfig.Theme); }
private void delegate_Config_DebugMode(string name, ThreadEntity currentThreadEntity, Page.PageAbstract currentPageClass, HTMLContainer contentContainer) { contentContainer.Write(_webConfig.DebugMode ? "True" : "False"); }