private static async Task <string> ParseImplAsync(IParseManager parseManager, string testType, string testOperate, string testValue, string onBeforeSend, string onSuccess, string onComplete, string onError) { var databaseManager = parseManager.DatabaseManager; var pageInfo = parseManager.PageInfo; var contextInfo = parseManager.ContextInfo; StlParserUtility.GetLoadingYesNo(contextInfo.InnerHtml, out var loading, out var yes, out var no); if (StringUtils.EqualsIgnoreCase(testType, TypeIsUserLoggin)) { return(await ParseDynamicAsync(parseManager, testType, testValue, testOperate, loading, yes, no, onBeforeSend, onSuccess, onComplete, onError)); } var isSuccess = false; if (StringUtils.EqualsIgnoreCase(testType, TypeChannelName)) { var channelName = await databaseManager.ChannelRepository.GetChannelNameAsync(pageInfo.SiteId, contextInfo.ChannelId); isSuccess = TestTypeValue(testOperate, testValue, channelName); } else if (StringUtils.EqualsIgnoreCase(testType, TypeChannelIndex)) { var channelIndex = await databaseManager.ChannelRepository.GetIndexNameAsync(pageInfo.SiteId, contextInfo.ChannelId); isSuccess = TestTypeValue(testOperate, testValue, channelIndex); } else if (StringUtils.EqualsIgnoreCase(testType, TypeTemplateName)) { isSuccess = TestTypeValue(testOperate, testValue, pageInfo.Template.TemplateName); } else if (StringUtils.EqualsIgnoreCase(testType, TypTemplateType)) { isSuccess = TestTypeValue(testOperate, testValue, pageInfo.Template.TemplateType.GetValue()); } else if (StringUtils.EqualsIgnoreCase(testType, TypeTopLevel)) { var topLevel = await databaseManager.ChannelRepository.GetTopLevelAsync(pageInfo.SiteId, contextInfo.ChannelId); isSuccess = IsNumber(topLevel, testOperate, testValue); } else if (StringUtils.EqualsIgnoreCase(testType, TypeUpChannel)) { isSuccess = await TestTypeUpChannelAsync(parseManager, testOperate, testValue); } else if (StringUtils.EqualsIgnoreCase(testType, TypeUpChannelOrSelf)) { isSuccess = await TestTypeUpChannelOrSelfAsync(parseManager, testOperate, testValue); } else if (StringUtils.EqualsIgnoreCase(testType, TypeSelfChannel)) { isSuccess = pageInfo.PageChannelId == contextInfo.ChannelId; } else if (StringUtils.EqualsIgnoreCase(testType, TypeGroupChannel)) { var channel = await databaseManager.ChannelRepository.GetAsync(contextInfo.ChannelId); isSuccess = TestTypeValues(testOperate, testValue, channel.GroupNames); } else if (StringUtils.EqualsIgnoreCase(testType, TypeGroupContent)) { if (contextInfo.ContextType == ParseType.Content) { var content = await parseManager.GetContentAsync(); if (content != null) { var groupContents = content.GroupNames; isSuccess = TestTypeValues(testOperate, testValue, groupContents); } } } else if (StringUtils.EqualsIgnoreCase(testType, TypeAddDate)) { var addDate = await GetAddDateByContextAsync(parseManager); isSuccess = IsDateTime(addDate, testOperate, testValue); } else if (StringUtils.EqualsIgnoreCase(testType, TypeLastModifiedDate)) { var lastModifiedDate = await GetLastModifiedDateGetAsync(parseManager); isSuccess = IsDateTime(lastModifiedDate, testOperate, testValue); } else if (StringUtils.EqualsIgnoreCase(testType, TypeItemIndex)) { var itemIndex = StlParserUtility.GetItemIndex(contextInfo); isSuccess = IsNumber(itemIndex, testOperate, testValue); } else if (StringUtils.EqualsIgnoreCase(testType, TypeOddItem)) { var itemIndex = StlParserUtility.GetItemIndex(contextInfo); isSuccess = itemIndex % 2 == 1; } else { isSuccess = await TestTypeDefaultAsync(parseManager, testType, testOperate, testValue); } var parsedContent = isSuccess ? yes : no; if (string.IsNullOrEmpty(parsedContent)) { return(string.Empty); } var innerBuilder = new StringBuilder(parsedContent); await parseManager.ParseInnerContentAsync(innerBuilder); parsedContent = innerBuilder.ToString(); return(parsedContent); }
private static string ParseImpl(XmlNode node, PageInfo pageInfo, ContextInfo contextInfo, string testType, string testOperate, string testValue) { string successTemplateString; string failureTemplateString; StlParserUtility.GetYesOrNoTemplateString(node, pageInfo, out successTemplateString, out failureTemplateString); if (StringUtils.EqualsIgnoreCase(testType, TypeIsUserLoggin) || StringUtils.EqualsIgnoreCase(testType, TypeIsAdministratorLoggin) || StringUtils.EqualsIgnoreCase(testType, TypeIsUserOrAdministratorLoggin) || StringUtils.EqualsIgnoreCase(testType, TypeUserGroup)) { return(TestTypeDynamic(pageInfo, contextInfo, testType, testValue, testOperate, successTemplateString, failureTemplateString)); } var isSuccess = false; if (StringUtils.EqualsIgnoreCase(testType, TypeChannelName)) { var channelName = NodeManager.GetNodeInfo(pageInfo.PublishmentSystemId, contextInfo.ChannelId).NodeName; isSuccess = TestTypeValue(testOperate, testValue, channelName); } else if (StringUtils.EqualsIgnoreCase(testType, TypeChannelIndex)) { var channelIndex = NodeManager.GetNodeInfo(pageInfo.PublishmentSystemId, contextInfo.ChannelId).NodeIndexName; isSuccess = TestTypeValue(testOperate, testValue, channelIndex); } else if (StringUtils.EqualsIgnoreCase(testType, TypeTemplateName)) { isSuccess = TestTypeValue(testOperate, testValue, pageInfo.TemplateInfo.TemplateName); } else if (StringUtils.EqualsIgnoreCase(testType, TypeTemplateType)) { isSuccess = TestTypeValue(testOperate, testValue, ETemplateTypeUtils.GetValue(pageInfo.TemplateInfo.TemplateType)); } else if (StringUtils.EqualsIgnoreCase(testType, TypeTopLevel)) { var topLevel = NodeManager.GetTopLevel(pageInfo.PublishmentSystemId, contextInfo.ChannelId); isSuccess = IsNumber(topLevel, testOperate, testValue); } else if (StringUtils.EqualsIgnoreCase(testType, TypeUpChannel)) { isSuccess = TestTypeUpChannel(pageInfo, contextInfo, testOperate, testValue); } else if (StringUtils.EqualsIgnoreCase(testType, TypeUpChannelOrSelf)) { isSuccess = TestTypeUpChannelOrSelf(pageInfo, contextInfo, testOperate, testValue); } else if (StringUtils.EqualsIgnoreCase(testType, TypeSelfChannel)) { isSuccess = pageInfo.PageNodeId == contextInfo.ChannelId; } else if (StringUtils.EqualsIgnoreCase(testType, TypeGroupChannel)) { var groupChannels = TranslateUtils.StringCollectionToStringList( NodeManager.GetNodeInfo(pageInfo.PublishmentSystemId, contextInfo.ChannelId).NodeGroupNameCollection); isSuccess = TestTypeValues(testOperate, testValue, groupChannels); } else if (StringUtils.EqualsIgnoreCase(testType, TypeGroupContent)) { if (contextInfo.ContextType == EContextType.Content) { var tableName = NodeManager.GetTableName(pageInfo.PublishmentSystemInfo, contextInfo.ChannelId); var groupContents = TranslateUtils.StringCollectionToStringList(BaiRongDataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, ContentAttribute.ContentGroupNameCollection)); isSuccess = TestTypeValues(testOperate, testValue, groupContents); } } else if (StringUtils.EqualsIgnoreCase(testType, TypeAddDate)) { var addDate = GetAddDateByContext(pageInfo, contextInfo); isSuccess = IsDateTime(addDate, testOperate, testValue); } else if (StringUtils.EqualsIgnoreCase(testType, TypeLastEditDate)) { var lastEditDate = GetLastEditDateByContext(pageInfo, contextInfo); isSuccess = IsDateTime(lastEditDate, testOperate, testValue); } else if (StringUtils.EqualsIgnoreCase(testType, TypeItemIndex)) { var itemIndex = StlParserUtility.GetItemIndex(contextInfo); isSuccess = IsNumber(itemIndex, testOperate, testValue); } else if (StringUtils.EqualsIgnoreCase(testType, TypeOddItem)) { var itemIndex = StlParserUtility.GetItemIndex(contextInfo); isSuccess = itemIndex % 2 == 1; } else { isSuccess = TestTypeDefault(pageInfo, contextInfo, testType, testOperate, testValue); } var parsedContent = isSuccess ? successTemplateString : failureTemplateString; if (string.IsNullOrEmpty(parsedContent)) { return(string.Empty); } var innerBuilder = new StringBuilder(parsedContent); StlParserManager.ParseInnerContent(innerBuilder, pageInfo, contextInfo); parsedContent = innerBuilder.ToString(); return(parsedContent); }
private static string ParseImpl(PageInfo pageInfo, ContextInfo contextInfo, string testType, string testOperate, string testValue, string onBeforeSend, string onSuccess, string onComplete, string onError) { string loading; string yes; string no; StlParserUtility.GetLoadingYesNo(contextInfo.InnerHtml, out loading, out yes, out no); if (StringUtils.EqualsIgnoreCase(testType, TypeIsUserLoggin) || StringUtils.EqualsIgnoreCase(testType, TypeIsAdministratorLoggin) || StringUtils.EqualsIgnoreCase(testType, TypeIsUserOrAdministratorLoggin)) { return(ParseDynamic(pageInfo, contextInfo, testType, testValue, testOperate, loading, yes, no, onBeforeSend, onSuccess, onComplete, onError)); } var isSuccess = false; if (StringUtils.EqualsIgnoreCase(testType, TypeChannelName)) { var channelName = ChannelManager.GetChannelInfo(pageInfo.SiteId, contextInfo.ChannelId).ChannelName; isSuccess = TestTypeValue(testOperate, testValue, channelName); } else if (StringUtils.EqualsIgnoreCase(testType, TypeChannelIndex)) { var channelIndex = ChannelManager.GetChannelInfo(pageInfo.SiteId, contextInfo.ChannelId).IndexName; isSuccess = TestTypeValue(testOperate, testValue, channelIndex); } else if (StringUtils.EqualsIgnoreCase(testType, TypeTemplateName)) { isSuccess = TestTypeValue(testOperate, testValue, pageInfo.TemplateInfo.TemplateName); } else if (StringUtils.EqualsIgnoreCase(testType, TypTemplateType)) { isSuccess = TestTypeValue(testOperate, testValue, pageInfo.TemplateInfo.TemplateType.Value); } else if (StringUtils.EqualsIgnoreCase(testType, TypeTopLevel)) { var topLevel = ChannelManager.GetTopLevel(pageInfo.SiteId, contextInfo.ChannelId); isSuccess = IsNumber(topLevel, testOperate, testValue); } else if (StringUtils.EqualsIgnoreCase(testType, TypeUpChannel)) { isSuccess = TestTypeUpChannel(pageInfo, contextInfo, testOperate, testValue); } else if (StringUtils.EqualsIgnoreCase(testType, TypeUpChannelOrSelf)) { isSuccess = TestTypeUpChannelOrSelf(pageInfo, contextInfo, testOperate, testValue); } else if (StringUtils.EqualsIgnoreCase(testType, TypeSelfChannel)) { isSuccess = pageInfo.PageChannelId == contextInfo.ChannelId; } else if (StringUtils.EqualsIgnoreCase(testType, TypeGroupChannel)) { var groupChannels = TranslateUtils.StringCollectionToStringList( ChannelManager.GetChannelInfo(pageInfo.SiteId, contextInfo.ChannelId).GroupNameCollection); isSuccess = TestTypeValues(testOperate, testValue, groupChannels); } else if (StringUtils.EqualsIgnoreCase(testType, TypeGroupContent)) { if (contextInfo.ContextType == EContextType.Content) { var tableName = ChannelManager.GetTableName(pageInfo.SiteInfo, contextInfo.ChannelId); //var groupContents = TranslateUtils.StringCollectionToStringList(DataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, ContentAttribute.ContentGroupNameCollection)); var groupContents = TranslateUtils.StringCollectionToStringList(StlContentCache.GetValue(tableName, contextInfo.ContentId, ContentAttribute.GroupNameCollection)); isSuccess = TestTypeValues(testOperate, testValue, groupContents); } } else if (StringUtils.EqualsIgnoreCase(testType, TypeAddDate)) { var addDate = GetAddDateByContext(pageInfo, contextInfo); isSuccess = IsDateTime(addDate, testOperate, testValue); } else if (StringUtils.EqualsIgnoreCase(testType, TypeLastEditDate)) { var lastEditDate = GetLastEditDateByContext(contextInfo); isSuccess = IsDateTime(lastEditDate, testOperate, testValue); } else if (StringUtils.EqualsIgnoreCase(testType, TypeItemIndex)) { var itemIndex = StlParserUtility.GetItemIndex(contextInfo); isSuccess = IsNumber(itemIndex, testOperate, testValue); } else if (StringUtils.EqualsIgnoreCase(testType, TypeOddItem)) { var itemIndex = StlParserUtility.GetItemIndex(contextInfo); isSuccess = itemIndex % 2 == 1; } else { isSuccess = TestTypeDefault(pageInfo, contextInfo, testType, testOperate, testValue); } var parsedContent = isSuccess ? yes : no; if (string.IsNullOrEmpty(parsedContent)) { return(string.Empty); } var innerBuilder = new StringBuilder(parsedContent); StlParserManager.ParseInnerContent(innerBuilder, pageInfo, contextInfo); parsedContent = innerBuilder.ToString(); return(parsedContent); }