src/ZKEACMS/Rule/RuleService.cs
(开头部分) 4KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
/* http://www.zkea.net/
* Copyright (c) ZKEASOFT. All rights reserved.
* http://www.zkea.net/licenses */
using Easy;
using Easy.RepositoryPattern;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Text;
using Easy.Extend;
using ZKEACMS.Extend;
using System.Linq;
using ZKEACMS.Widget;
using Easy.RuleEngine;
using Easy.Serializer;
namespace ZKEACMS.Rule
{
public class RuleService : ServiceBase<Rule, CMSDbContext>, IRuleService
{
private readonly IWidgetBasePartService _widgetBasePartService;
private readonly IWidgetActivator _widgetActivator;
private readonly IRuleManager _ruleManager;
private readonly ILocalize _localize;
public RuleService(IApplicationContext applicationContext,
IWidgetBasePartService widgetBasePartService,
IWidgetActivator widgetActivator, IRuleManager
ruleManager, CMSDbContext dbContext,
ILocalize localize)
: base(applicationContext, dbContext)
{
_widgetBasePartService = widgetBasePartService;
_widgetActivator = widgetActivator;
_ruleManager = ruleManager;
_localize = localize;
}
private Rule Init(Rule item)
{
item.RuleItemList = item.RuleItemList.RemoveDeletedItems().ToList();
item.RuleItems = JsonConverter.Serialize(item.RuleItemList);
StringBuilder expressionBuilder = new StringBuilder();
foreach (var ruleItem in item.RuleItemList)
{
if (expressionBuilder.Length == 0)
{
expressionBuilder.AppendFormat("{0}({1},{2})", ruleItem.FunctionName, ruleItem.Property, FormatValue(ruleItem.Value));
}
else
{
expressionBuilder.AppendFormat(" {3} {0}({1},{2})", ruleItem.FunctionName, ruleItem.Property, FormatValue(ruleItem.Value), ruleItem.Condition);
}
}
item.RuleExpression = expressionBuilder.ToString();
if (item.RuleExpression.IsNullOrWhiteSpace())
{
item.RuleExpression = "false";
}
return item;
}
后面还有 68 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。