示例#1
0
        //API StlActionsSearchController调用
        public static async Task <StlPageContents> GetAsync(string stlPageContentsElement, IParseManager parseManager, int pageNum, string where)
        {
            var stlPageContents = new StlPageContents
            {
                ParseManager = parseManager
            };

            var stlElementInfo = StlParserUtility.ParseStlElement(stlPageContentsElement);

            parseManager.ContextInfo = parseManager.ContextInfo.Clone(stlPageContentsElement, stlElementInfo.InnerHtml, stlElementInfo.Attributes);

            stlPageContents.ListInfo = await ListInfo.GetListInfoAsync(parseManager, ParseType.Content);

            stlPageContents.ListInfo.Scope = ScopeType.All;

            if (pageNum > 0)
            {
                stlPageContents.ListInfo.PageNum = pageNum;
            }

            stlPageContents.ListInfo.Where = where;

            stlPageContents.DataSource = await GetContentsDataSourceAsync(parseManager, stlPageContents.ListInfo);

            //stlPageContents.SqlString = StlDataUtility.GetPageContentsSqlStringBySearch(tableName, stlPageContents.ListInfo.GroupContent, stlPageContents.ListInfo.GroupContentNot, stlPageContents.ListInfo.Tags, stlPageContents.ListInfo.IsImageExists, stlPageContents.ListInfo.IsImage, stlPageContents.ListInfo.IsVideoExists, stlPageContents.ListInfo.IsVideo, stlPageContents.ListInfo.IsFileExists, stlPageContents.ListInfo.IsFile, stlPageContents.ListInfo.StartNum, stlPageContents.ListInfo.TotalNum, stlPageContents.ListInfo.Order, stlPageContents.ListInfo.IsTopExists, stlPageContents.ListInfo.IsTop, stlPageContents.ListInfo.IsRecommendExists, stlPageContents.ListInfo.IsRecommend, stlPageContents.ListInfo.IsHotExists, stlPageContents.ListInfo.IsHot, stlPageContents.ListInfo.IsColorExists, stlPageContents.ListInfo.IsColor, where);

            return(stlPageContents);
        }
示例#2
0
        public static async Task <object> ParseAsync(IParseManager parseManager)
        {
            var pageInfo    = parseManager.PageInfo;
            var contextInfo = parseManager.ContextInfo;
            var listInfo    = await ListInfo.GetListInfoAsync(parseManager, ParseType.Content);

            var dataSource = await GetContentsDataSourceAsync(parseManager, listInfo);

            if (parseManager.ContextInfo.IsStlEntity)
            {
                return(ParseEntity(dataSource));
            }

            var innerHtml = await ParseAsync(parseManager, listInfo, dataSource);

            var parsedContent = string.Empty;

            if (pageInfo.EditMode == EditMode.Visual)
            {
                var elementId  = StringUtils.GetElementId();
                var attributes = new NameValueCollection();
                VisualUtility.AddEditableToAttributes(attributes, elementId, contextInfo.ElementName);
                parsedContent = @$ "<div {TranslateUtils.ToAttributesString(attributes)}>{innerHtml}</div>";
                VisualUtility.AddEditableToPage(pageInfo, elementId, contextInfo, parsedContent);
            }
            else
            {
                parsedContent = innerHtml;
            }

            return(parsedContent);
        }
示例#3
0
        public static async Task <object> ParseAsync(IParseManager parseManager)
        {
            var pageInfo    = parseManager.PageInfo;
            var contextInfo = parseManager.ContextInfo;
            var listInfo    = await ListInfo.GetListInfoAsync(parseManager, ParseType.Content);

            var dataSource = await GetContentsDataSourceAsync(parseManager, listInfo);

            if (parseManager.ContextInfo.IsStlEntity)
            {
                return(ParseEntity(dataSource));
            }

            var parsedContent = await ParseAsync(parseManager, listInfo, dataSource);

            if (pageInfo.EditMode == EditMode.Visual)
            {
                var editable           = VisualUtility.GetEditable(pageInfo, contextInfo);
                var editableAttributes = VisualUtility.GetEditableAttributes(editable);

                return(@$ "<div {TranslateUtils.ToAttributesString(editableAttributes)}>{parsedContent}</div>");
            }

            return(parsedContent);
        }
示例#4
0
        public static async Task <object> ParseAsync(IParseManager parseManager)
        {
            var listInfo = await ListInfo.GetListInfoAsync(parseManager, ParseType.SqlContent);

            List <KeyValuePair <int, IDictionary <string, object> > > dataSource = null;

            if (!string.IsNullOrEmpty(listInfo.QueryString))
            {
                dataSource = await parseManager.DatabaseManager.ParserGetSqlDataSourceAsync(listInfo.DatabaseType,
                                                                                            listInfo.ConnectionString, listInfo.QueryString);
            }
            else if (listInfo.Query != null)
            {
                dataSource = await parseManager.DatabaseManager.ParserGetSqlDataSourceAsync(listInfo.DatabaseType,
                                                                                            listInfo.ConnectionString, listInfo.Query);
            }

            if (dataSource == null)
            {
                return(string.Empty);
            }

            if (parseManager.ContextInfo.IsStlEntity)
            {
                return(ParseEntity(dataSource));
            }

            return(await ParseElementAsync(parseManager, listInfo, dataSource));
        }
示例#5
0
        //private readonly DataSet _dataSet;

        public static async Task <StlPageSqlContents> GetAsync(string stlPageSqlContentsElement, IParseManager parseManager)
        {
            var stlPageSqlContents = new StlPageSqlContents
            {
                StlPageSqlContentsElement = stlPageSqlContentsElement,
                ParseManager = parseManager
            };

            try
            {
                var stlElementInfo = StlParserUtility.ParseStlElement(stlPageSqlContentsElement, -1);

                parseManager.ContextInfo = parseManager.ContextInfo.Clone(ElementName, stlPageSqlContentsElement, stlElementInfo.InnerHtml, stlElementInfo.Attributes, stlElementInfo.StartIndex);

                stlPageSqlContents.ListInfo = await ListInfo.GetListInfoAsync(parseManager, ParseType.SqlContent);

                var sqlString = stlPageSqlContents.ListInfo.QueryString;
                if (sqlString.IndexOf(" ORDER BY", StringComparison.OrdinalIgnoreCase) == -1 && !string.IsNullOrEmpty(stlPageSqlContents.ListInfo.Order))
                {
                    if (stlPageSqlContents.ListInfo.Order.IndexOf(" ORDER BY", StringComparison.OrdinalIgnoreCase) == -1)
                    {
                        sqlString += $" ORDER BY {stlPageSqlContents.ListInfo.Order}";
                    }
                    else
                    {
                        sqlString += $" {stlPageSqlContents.ListInfo.Order}";
                    }
                }
                stlPageSqlContents.SqlString = sqlString;

                // stlPageSqlContents.SqlString = stlPageSqlContents.ListInfo.QueryString;
                // if (string.IsNullOrWhiteSpace(stlPageSqlContents.ListInfo.Order))
                // {
                //     var pos = stlPageSqlContents.SqlString.LastIndexOf(" ORDER BY ", StringComparison.OrdinalIgnoreCase);
                //     if (pos > -1)
                //     {
                //         stlPageSqlContents.SqlString = stlPageSqlContents.SqlString.Substring(0, pos);
                //         stlPageSqlContents.ListInfo.Order = stlPageSqlContents.SqlString.Substring(pos);
                //     }
                // }
                // else
                // {
                //     if (stlPageSqlContents.ListInfo.Order.IndexOf("ORDER BY", StringComparison.OrdinalIgnoreCase) == -1)
                //     {
                //         stlPageSqlContents.ListInfo.Order = $"ORDER BY {stlPageSqlContents.ListInfo.Order}";
                //     }
                // }

                //_dataSet = StlDataUtility.GetPageSqlContentsDataSet(_listInfo.ConnectionString, _listInfo.QueryString, _listInfo.StartNum, _listInfo.PageNum, _listInfo.OrderByString);
            }
            catch (Exception ex)
            {
                await parseManager.AddStlErrorLogAsync(ElementName, stlPageSqlContentsElement, ex);

                stlPageSqlContents.ListInfo = new ListInfo();
            }

            return(stlPageSqlContents);
        }
示例#6
0
        public static async Task <object> ParseAsync(IParseManager parseManager)
        {
            var listInfo = await ListInfo.GetListInfoAsync(parseManager, ParseType.Channel);

            var dataSource = await GetChannelsDataSourceAsync(parseManager, listInfo);

            if (parseManager.ContextInfo.IsStlEntity)
            {
                return(ParseEntity(dataSource));
            }

            return(await ParseElementAsync(parseManager, listInfo, dataSource));
        }
示例#7
0
        public static async Task <object> ParseAsync(IParseManager parseManager)
        {
            var listInfo = await ListInfo.GetListInfoAsync(parseManager, ParseType.SqlContent);

            var dataSource = GetDataSource(parseManager, listInfo.DatabaseType, listInfo.ConnectionString, listInfo.QueryString);

            if (parseManager.ContextInfo.IsStlEntity)
            {
                return(ParseEntity(dataSource));
            }

            return(await ParseElementAsync(parseManager, listInfo, dataSource));
        }
示例#8
0
        public static async Task <object> ParseAsync(IParseManager parseManager)
        {
            var listInfo = await ListInfo.GetListInfoAsync(parseManager, ParseType.SqlContent);

            //var dataSource = StlDataUtility.GetSqlContentsDataSource(listInfo.ConnectionString, listInfo.QueryString, listInfo.StartNum, listInfo.TotalNum, listInfo.Order);
            var dataSource = GetDataSource(parseManager, listInfo.ConnectionString, listInfo.QueryString, listInfo.StartNum,
                                           listInfo.TotalNum, listInfo.Order);

            if (parseManager.ContextInfo.IsStlEntity)
            {
                return(ParseEntity(dataSource));
            }

            return(await ParseElementAsync(parseManager, listInfo, dataSource));
        }
示例#9
0
        public static async Task <object> ParseAsync(IParseManager parseManager)
        {
            var listInfo = await ListInfo.GetListInfoAsync(parseManager, ParseType.Site);

            var siteName = listInfo.Others.Get(SiteName);
            var siteDir  = listInfo.Others.Get(SiteDir);

            var taxisType  = GetTaxisTypeByOrder(listInfo.Order);
            var dataSource = await parseManager.DatabaseManager.SiteRepository.ParserGetSitesAsync(siteName, siteDir, listInfo.StartNum, listInfo.TotalNum, listInfo.Scope, taxisType);

            if (parseManager.ContextInfo.IsStlEntity)
            {
                return(ParseEntity(dataSource));
            }

            return(await ParseElementAsync(parseManager, listInfo, dataSource));
        }
示例#10
0
        public static async Task <StlPageContents> GetAsync(string stlPageContentsElement, IParseManager parseManager)
        {
            var stlPageContents = new StlPageContents
            {
                StlPageContentsElement = stlPageContentsElement,
                ParseManager           = parseManager
            };

            var stlElementInfo = StlParserUtility.ParseStlElement(stlPageContentsElement);

            stlPageContents.ParseManager.ContextInfo = parseManager.ContextInfo.Clone(stlPageContentsElement, stlElementInfo.InnerHtml, stlElementInfo.Attributes);

            stlPageContents.ListInfo = await ListInfo.GetListInfoAsync(parseManager, ParseType.Content);

            //stlPageContents.SqlString = await StlDataUtility.GetStlPageContentsSqlStringAsync(stlPageContents.PageInfo.Site, channelId, stlPageContents.ListInfo);
            stlPageContents.DataSource = await GetContentsDataSourceAsync(parseManager, stlPageContents.ListInfo);

            return(stlPageContents);
        }
示例#11
0
        public static async Task <StlPageChannels> GetAsync(string stlPageChannelsElement, IParseManager parseManager)
        {
            var stlPageChannels = new StlPageChannels
            {
                _parseManager = parseManager
            };

            var stlElementInfo = StlParserUtility.ParseStlElement(stlPageChannelsElement);

            stlPageChannels._parseManager.ContextInfo = parseManager.ContextInfo.Clone(stlPageChannelsElement, stlElementInfo.InnerHtml, stlElementInfo.Attributes);

            stlPageChannels._listInfo = await ListInfo.GetListInfoAsync(parseManager, ParseType.Channel);

            stlPageChannels._channelList = await GetChannelsDataSourceAsync(parseManager, stlPageChannels._listInfo);

            //stlPageChannels.DataSet = await StlDataUtility.GetPageChannelsDataSetAsync(pageInfo.SiteId, channelId, stlPageChannels._listInfo.GroupChannel, stlPageChannels._listInfo.GroupChannelNot, stlPageChannels._listInfo.IsImageExists, stlPageChannels._listInfo.IsImage, stlPageChannels._listInfo.StartNum, stlPageChannels._listInfo.TotalNum, stlPageChannels._listInfo.Order, stlPageChannels._listInfo.Scope, isTotal);

            return(stlPageChannels);
        }
示例#12
0
        public static async Task <object> ParseAsync(IParseManager parseManager)
        {
            var listInfo = await ListInfo.GetListInfoAsync(parseManager, ParseType.Content);

            return(await ParseImplAsync(parseManager, listInfo));
        }