src/SSCMS.Core/Repositories/ContentRepository.Parser.cs
(开头部分) 24KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Datory;
using SqlKata;
using SSCMS.Enums;
using SSCMS.Models;
using SSCMS.Services;
using SSCMS.Utils;
namespace SSCMS.Core.Repositories
{
public partial class ContentRepository
{
private async Task<List<ContentSummary>> GetStlDataSourceCheckedAsync(IDatabaseManager databaseManager, List<int> channelIdList, string tableName, int startNum, int totalNum, string orderByString, string whereString, NameValueCollection others)
{
if (channelIdList == null || channelIdList.Count == 0)
{
return null;
}
var sqlWhereString = channelIdList.Count == 1 ? $"WHERE (ChannelId = {channelIdList[0]} AND Checked = true {whereString})" : $"WHERE (ChannelId IN ({TranslateUtils.ToSqlInStringWithoutQuote(channelIdList)}) AND Checked = true {whereString})";
if (others != null && others.Count > 0)
{
var columnNameList = await databaseManager.GetTableColumnNameListAsync(tableName);
foreach (var attributeName in others.AllKeys)
{
if (ListUtils.ContainsIgnoreCase(columnNameList, attributeName))
{
var value = others.Get(attributeName);
if (!string.IsNullOrEmpty(value))
{
value = value.Trim();
if (StringUtils.StartsWithIgnoreCase(value, "not:"))
{
value = value.Substring("not:".Length);
if (value.IndexOf(',') == -1)
{
sqlWhereString += $" AND ({attributeName} <> '{value}')";
}
else
{
var collection = ListUtils.GetStringList(value);
foreach (var val in collection)
{
sqlWhereString += $" AND ({attributeName} <> '{val}')";
}
}
}
else if (StringUtils.StartsWithIgnoreCase(value, "contains:"))
{
value = value.Substring("contains:".Length);
if (value.IndexOf(',') == -1)
{
sqlWhereString += $" AND ({attributeName} LIKE '%{value}%')";
}
后面还有 471 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
