public async Task <GetResult> Get([FromBody] GetRequest request) { var user = await _authManager.GetUserAsync(); var dynamicInfo = DynamicInfo.GetDynamicInfo(_settingsManager, request.Value, request.Page, user, Request.Path + Request.QueryString); var ifInfo = TranslateUtils.JsonDeserialize <DynamicInfo.IfInfo>(dynamicInfo.ElementValues); var isSuccess = false; var html = string.Empty; if (ifInfo != null) { if (StringUtils.EqualsIgnoreCase(ifInfo.Type, StlIf.TypeIsUserLoggin)) { isSuccess = _authManager.IsUser; } var template = isSuccess ? dynamicInfo.SuccessTemplate : dynamicInfo.FailureTemplate; html = await StlDynamic.ParseDynamicContentAsync(_parseManager, dynamicInfo, template); } return(new GetResult { Value = isSuccess, Html = html }); }
public IHttpActionResult Main() { try { var request = new AuthenticatedRequest(); var dynamicInfo = DynamicInfo.GetDynamicInfo(request, request.UserInfo); var ifInfo = TranslateUtils.JsonDeserialize <DynamicInfo.IfInfo>(dynamicInfo.ElementValues); var isSuccess = false; var html = string.Empty; if (ifInfo != null) { if (StringUtils.EqualsIgnoreCase(ifInfo.Type, StlIf.TypeIsUserLoggin)) { isSuccess = request.IsUserLoggin; } else if (StringUtils.EqualsIgnoreCase(ifInfo.Type, StlIf.TypeIsAdministratorLoggin)) { isSuccess = request.IsAdminLoggin; } else if (StringUtils.EqualsIgnoreCase(ifInfo.Type, StlIf.TypeIsUserOrAdministratorLoggin)) { isSuccess = request.IsUserLoggin || request.IsAdminLoggin; } else if (StringUtils.EqualsIgnoreCase(ifInfo.Type, StlIf.TypeIsUserGroup)) { if (request.IsUserLoggin) { var group = UserGroupManager.GetUserGroupInfo(request.UserInfo.GroupId); if (StringUtils.EqualsIgnoreCase(ifInfo.Op, StlIf.OperateNotEquals)) { isSuccess = !StringUtils.EqualsIgnoreCase(group.GroupName, ifInfo.Value); } else { isSuccess = StringUtils.EqualsIgnoreCase(group.GroupName, ifInfo.Value); } } } var template = isSuccess ? dynamicInfo.SuccessTemplate : dynamicInfo.FailureTemplate; html = StlDynamic.ParseDynamicContent(dynamicInfo, template); } return(Ok(new { Value = isSuccess, Html = html })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public async Task <SubmitResult> Submit([FromBody] SubmitRequest request) { var user = await _authManager.GetUserAsync(); var dynamicInfo = DynamicInfo.GetDynamicInfo(_settingsManager, request.Value, request.Page, user, Request.Path + Request.QueryString); return(new SubmitResult { Value = true, Html = await StlDynamic.ParseDynamicContentAsync(_parseManager, dynamicInfo, dynamicInfo.SuccessTemplate) }); }
public IHttpActionResult Main() { try { var request = new AuthenticatedRequest(); var siteId = request.GetPostInt("siteId"); var pageChannelId = request.GetPostInt("pageChannelId"); if (pageChannelId == 0) { pageChannelId = siteId; } var pageContentId = request.GetPostInt("pageContentId"); var pageTemplateId = request.GetPostInt("pageTemplateId"); var isPageRefresh = request.GetPostBool("isPageRefresh"); var templateContent = TranslateUtils.DecryptStringBySecretKey(request.GetPostString("templateContent")); var ajaxDivId = AttackUtils.FilterSqlAndXss(request.GetPostString("ajaxDivId")); var channelId = request.GetPostInt("channelId"); if (channelId == 0) { channelId = pageChannelId; } var contentId = request.GetPostInt("contentId"); if (contentId == 0) { contentId = pageContentId; } var pageUrl = TranslateUtils.DecryptStringBySecretKey(request.GetPostString("pageUrl")); var pageIndex = request.GetPostInt("pageNum"); if (pageIndex > 0) { pageIndex--; } var queryString = PageUtils.GetQueryStringFilterXss(PageUtils.UrlDecode(HttpContext.Current.Request.RawUrl)); queryString.Remove("siteId"); return(Ok(new { Html = StlDynamic.ParseDynamicContent(siteId, channelId, contentId, pageTemplateId, isPageRefresh, templateContent, pageUrl, pageIndex, ajaxDivId, queryString, request.UserInfo) })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult Main() { try { var request = new AuthenticatedRequest(); var dynamicInfo = DynamicInfo.GetDynamicInfo(request, request.UserInfo); return(Ok(new { Value = true, Html = StlDynamic.ParseDynamicContent(dynamicInfo, dynamicInfo.SuccessTemplate) })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult Main() { try { var request = new AuthRequest(); var siteId = request.GetPostInt("siteId"); var channelId = request.GetPostInt("channelId"); var contentId = request.GetPostInt("contentId"); var templateId = request.GetPostInt("templateId"); var ajaxDivId = AttackUtils.FilterSqlAndXss(request.GetPostString("ajaxDivId")); var pageUrl = TranslateUtils.DecryptStringBySecretKey(request.GetPostString("pageUrl")); var testType = AttackUtils.FilterSqlAndXss(request.GetPostString("testType")); //var testValue = PageUtils.FilterSqlAndXss(request.GetPostString("testValue")); //var testOperate = PageUtils.FilterSqlAndXss(request.GetPostString("testOperate")); var successTemplate = TranslateUtils.DecryptStringBySecretKey(request.GetPostString("successTemplate")); var failureTemplate = TranslateUtils.DecryptStringBySecretKey(request.GetPostString("failureTemplate")); var isSuccess = false; if (StringUtils.EqualsIgnoreCase(testType, StlIf.TypeIsUserLoggin)) { isSuccess = request.IsUserLoggin; } else if (StringUtils.EqualsIgnoreCase(testType, StlIf.TypeIsAdministratorLoggin)) { isSuccess = request.IsAdminLoggin; } else if (StringUtils.EqualsIgnoreCase(testType, StlIf.TypeIsUserOrAdministratorLoggin)) { isSuccess = request.IsUserLoggin || request.IsAdminLoggin; } return(Ok(new { Html = StlDynamic.ParseDynamicContent(siteId, channelId, contentId, templateId, false, isSuccess ? successTemplate : failureTemplate, pageUrl, 0, ajaxDivId, null, request.UserInfo) })); } catch (Exception ex) { return(InternalServerError(ex)); } }
internal static string ParseStlElement(string stlElement, PageInfo pageInfo, ContextInfo contextInfo) { string parsedContent = null; var stlElementInfo = StlParserUtility.ParseStlElement(stlElement); if (stlElementInfo != null) { var elementName = stlElementInfo.Name; if (ElementsToTranslateDic.ContainsKey(elementName)) { Func <string, string> func; if (ElementsToTranslateDic.TryGetValue(elementName, out func)) { parsedContent = func(stlElement); } } else if (ElementsToParseDic.ContainsKey(elementName)) { if (stlElementInfo.IsDynamic) { parsedContent = StlDynamic.ParseDynamicElement(stlElement, pageInfo, contextInfo); } else { try { Func <PageInfo, ContextInfo, object> func; if (ElementsToParseDic.TryGetValue(elementName, out func)) { var contextInfoClone = contextInfo.Clone(stlElement, stlElementInfo.InnerHtml, stlElementInfo.Attributes); var obj = func(pageInfo, contextInfoClone); if (obj == null) { parsedContent = string.Empty; } else if (obj is string) { parsedContent = (string)obj; } else { parsedContent = TranslateUtils.JsonSerialize(obj); } } } catch (Exception ex) { parsedContent = StlParserUtility.GetStlErrorMessage(elementName, stlElement, ex); } } } else { var parsers = PluginStlParserContentManager.GetParses(); if (parsers.ContainsKey(elementName)) { if (stlElementInfo.IsDynamic) { parsedContent = StlDynamic.ParseDynamicElement(stlElement, pageInfo, contextInfo); } else { try { Func <PluginParseContext, string> func; if (parsers.TryGetValue(elementName, out func)) { var context = new PluginParseContext(stlElementInfo.OuterHtml, stlElementInfo.InnerHtml, stlElementInfo.Attributes, pageInfo, contextInfo); parsedContent = func(context); } } catch (Exception ex) { parsedContent = StlParserUtility.GetStlErrorMessage(elementName, stlElement, ex); } } } } } return(parsedContent ?? stlElement); }
private async Task <string> ParseStlElementAsync(string stlElement) { string parsedContent = null; var stlElementInfo = StlParserUtility.ParseStlElement(stlElement); if (stlElementInfo != null) { var elementName = stlElementInfo.Name; if (ElementsToTranslateDic.ContainsKey(elementName)) { if (ElementsToTranslateDic.TryGetValue(elementName, out var func)) { parsedContent = func(stlElement); } } else if (ElementsToParseDic.ContainsKey(elementName)) { if (stlElementInfo.IsDynamic) { parsedContent = await StlDynamic.ParseDynamicElementAsync(stlElement, this, PageInfo.Site); } else { try { if (ElementsToParseDic.TryGetValue(elementName, out var func)) { var contextInfo = ContextInfo; ContextInfo = ContextInfo.Clone(stlElement, stlElementInfo.InnerHtml, stlElementInfo.Attributes); var obj = await func(this); ContextInfo = contextInfo; if (obj == null) { parsedContent = string.Empty; } else if (obj is string) { parsedContent = (string)obj; } else { parsedContent = TranslateUtils.JsonSerialize(obj); } } } catch (Exception ex) { parsedContent = await AddStlErrorLogAsync(elementName, stlElement, ex); } } } else { var parsers = _pluginManager.GetExtensions <IPluginParse>(); var parser = parsers?.FirstOrDefault(x => StringUtils.EqualsIgnoreCase(x.ElementName, elementName)); if (parser != null) { if (stlElementInfo.IsDynamic) { parsedContent = await StlDynamic.ParseDynamicElementAsync(stlElement, this, PageInfo.Site); } else { try { var context = new PluginParseStlContext(this, stlElementInfo.OuterHtml, stlElementInfo.InnerHtml, stlElementInfo.Attributes); parsedContent = parser.Parse(context); } catch (Exception ex) { parsedContent = await AddStlErrorLogAsync(elementName, stlElement, ex); } } } var parsersAsync = _pluginManager.GetExtensions <IPluginParseAsync>(); var parserAsync = parsersAsync?.FirstOrDefault(x => StringUtils.EqualsIgnoreCase(x.ElementName, elementName)); if (parserAsync != null) { if (stlElementInfo.IsDynamic) { parsedContent = await StlDynamic.ParseDynamicElementAsync(stlElement, this, PageInfo.Site); } else { try { var context = new PluginParseStlContext(this, stlElementInfo.OuterHtml, stlElementInfo.InnerHtml, stlElementInfo.Attributes); parsedContent = await parserAsync.ParseAsync(context); } catch (Exception ex) { parsedContent = await AddStlErrorLogAsync(elementName, stlElement, ex); } } } //var parsers = OldPluginManager.GetParses(); //if (parsers.ContainsKey(elementName)) //{ // if (stlElementInfo.IsDynamic) // { // parsedContent = await StlDynamic.ParseDynamicElementAsync(stlElement, this); // } // else // { // try // { // if (parsers.TryGetValue(elementName, out var func)) // { // var context = new PluginStlParseContext(); // context.Load(stlElementInfo.OuterHtml, stlElementInfo.InnerHtml, stlElementInfo.Attributes, PageInfo, ContextInfo); // parsedContent = func(context); // } // } // catch (Exception ex) // { // parsedContent = await AddStlErrorLogAsync(elementName, stlElement, ex); // } // } //} } } return(parsedContent ?? stlElement); }
internal static string ParseStlElement(string stlElement, PageInfo pageInfo, ContextInfo contextInfo) { string parsedContent = null; //var parsedContent = StlCacheManager.ParsedContent.GetParsedContent(stlElement, pageInfo, contextInfo); //if (parsedContent != null) return parsedContent; var xmlDocument = StlParserUtility.GetXmlDocument(stlElement, contextInfo.IsInnerElement); XmlNode node = xmlDocument.DocumentElement; if (node != null) { node = node.FirstChild; if (node?.Name != null) { var elementName = node.Name.ToLower(); if (ElementsToTranslateDic.ContainsKey(elementName)) { Func <string, string> func; if (ElementsToTranslateDic.TryGetValue(elementName, out func)) { parsedContent = func(stlElement); } } else if (ElementsToParseDic.ContainsKey(elementName)) { var isDynamic = false; var attributes = new Dictionary <string, string>(); var innerXml = StringUtils.Trim(node.InnerXml); var childNodes = node.ChildNodes; var ie = node.Attributes?.GetEnumerator(); if (ie != null) { while (ie.MoveNext()) { var attr = (XmlAttribute)ie.Current; if (StringUtils.EqualsIgnoreCase(attr.Name, "isDynamic")) { isDynamic = TranslateUtils.ToBool(attr.Value, false); } else { var key = attr.Name; if (!string.IsNullOrEmpty(key)) { var value = attr.Value; if (string.IsNullOrEmpty(StringUtils.Trim(value))) { value = string.Empty; } attributes[key] = value; } } } } if (isDynamic) { parsedContent = StlDynamic.ParseDynamicElement(stlElement, pageInfo, contextInfo); } else { try { Func <PageInfo, ContextInfo, string> func; if (ElementsToParseDic.TryGetValue(elementName, out func)) { parsedContent = func(pageInfo, contextInfo.Clone(stlElement, attributes, innerXml, childNodes)); } } catch (Exception ex) { parsedContent = StlParserUtility.GetStlErrorMessage(elementName, stlElement, ex); } } } else { var parsers = PluginStlParserContentManager.GetParses(); if (parsers.ContainsKey(elementName)) { var isDynamic = false; var attributes = new Dictionary <string, string>(); var innerXml = StringUtils.Trim(node.InnerXml); var ie = node.Attributes?.GetEnumerator(); if (ie != null) { while (ie.MoveNext()) { var attr = (XmlAttribute)ie.Current; if (StringUtils.EqualsIgnoreCase(attr.Name, "isDynamic")) { isDynamic = TranslateUtils.ToBool(attr.Value, false); } else { var key = attr.Name; if (!string.IsNullOrEmpty(key)) { var value = attr.Value; if (string.IsNullOrEmpty(StringUtils.Trim(value))) { value = string.Empty; } attributes[key] = value; } } } } if (isDynamic) { parsedContent = StlDynamic.ParseDynamicElement(stlElement, pageInfo, contextInfo); } else { try { Func <PluginParseContext, string> func; if (parsers.TryGetValue(elementName, out func)) { var context = new PluginParseContext(attributes, innerXml, pageInfo, contextInfo); parsedContent = func(context); } } catch (Exception ex) { parsedContent = StlParserUtility.GetStlErrorMessage(elementName, stlElement, ex); } } } } } } if (parsedContent == null) { parsedContent = stlElement; } else { parsedContent = contextInfo.IsInnerElement ? parsedContent : StlParserUtility.GetBackHtml(parsedContent, pageInfo); } //StlCacheManager.ParsedContent.SetParsedContent(stlElement, pageInfo, contextInfo, parsedContent); return(parsedContent); }
public async Task <string> ParseDynamicAsync(Dynamic dynamic, string template) { return(await StlDynamic.ParseDynamicAsync(this, dynamic, template)); }
public async Task <string> GetDynamicScriptAsync(string dynamicApiUrl, Dynamic dynamic) { return(await StlDynamic.GetScriptAsync(this, dynamicApiUrl, dynamic)); }