实际工作中遇到的技术难题与大家交流(工作流条件表达式计算部分),希望技术高手能给于指点
2010-09-06 23:03 通用C#系统架构 阅读(1831) 评论(30) 编辑 收藏 举报有一个审核的工作流程,默认情况下是 【杭州编辑审核】--》 【北京编辑审核】--》 【信息发布员审核】--》 【信息发布】
这个是一个典型的工作审核流程,我们可以简单的建立3个角色,来定义这个审核流程,也很容易可以达到目的,但是问题没这么简单了。
1:若是杭州编辑发布的,需要走 【杭州编辑审核】--》 【北京编辑审核】--》 【信息发布员审核】--》 【信息发布】 流程。
2:若是北京编辑发布的,需要走 【北京编辑审核】--》 【信息发布员审核】 --》 【信息发布】流程。
这下问题变得有些复杂了,还需要自动判断当前编辑人员是属于哪个组织的?说白了,就是需要有一个条件表达式。
// 例如程序想达到的运行效果如下,这个是审核流程的入口判断
if (this.userinfo.company == "杭州")
{
杭州的审核流程
}
if (this.userinfo.company == "北京")
{
北京的审核流程
}
例如现在设置了一个条件表达式 “UserInfo.Company == "杭州"” 那问题是,如何动态的让程序判断是否满足了这个条件?
我如何写程序才能道道
if (UserInfo.Company == "杭州")
{
杭州的审核流程
}
红色部分是可以自由定义的,我如何能做到,与我写固定的程序一样的效果?这个表达式是否能成立,用C#如何做才是最灵活的?客户可以自由定义的?
如何能让程序动态执行?红色部分又可以自由定义?请高手指点
例如红色这个表达式可以由用户自由定义的功能
UserInfo.Company == "杭州" && UserInfo.Age < 40
UserInfo.Company == "北京"
UserInfo.Age > 40 || UserInfo.Age < 30
工作流开始 --》 UserInfo.Company == "杭州"?--》 【杭州编辑审核】-》 【北京编辑审核】-》 【信息发布员审核】 -》 【信息发布】
|| ^
|| ||
V ||
==============================================
当然在程序里进行了硬编码,那是很容易的事情,但是红色部分想用户自己可以灵活定义,就难了,不知道如何做会更好?更灵活?
虚心向大家学习,当然红色部分的表达式可能更复杂,不是只是一个 == 条件的。
若有满意的例子程序可以提供的,愿意支付 500元辛苦费。
程序的要求:
1:能验证表达式是否成立,语法是否正确?出错了可以提示。
2:能正确保存表达式,显示表达式。
3:能正确解析表达式。
4: 不需要整个流程的定义,流程的实现,只需要条件表达式这部分的示意程序就可以了。
5: 只要C#语言的代码,其他语言的不要。
往往想得太高了,实际能力没那么强的,呵呵
先简单一点儿能实现,就很不错了
例如 天数 > 3 很容易就可以修改为
天数 > 3 && 天数 < 5
主要目的,不是为了绕过难题解决问题,而是就是解决这个问题,不需要变通的解决方法。
http://www.cnblogs.com/zeus/archive/2006/02/11/codedom.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2009-09-06 疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 操作权限
2009-09-06 标准权限模型RBAC与实际日常开发工作结合后,我对RBAC模型的改进优化研究成果分享