Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 关于不同计划的模式/代码_C#_Sql Server_Schema_Scheduling - Fatal编程技术网

C# 关于不同计划的模式/代码

C# 关于不同计划的模式/代码,c#,sql-server,schema,scheduling,C#,Sql Server,Schema,Scheduling,我们接受潜在供应商的潜在客户。我们只允许某些供应商在特定日期/时间向我们发布潜在客户。目前,我们有3个计划,但将来可能会增加1个或n个: 星期日上午8点到星期五下午3点——所有时间间隔 周一至周五上午8点至下午5点 每天24小时 此外,我们希望能够在特定时间一次性发布——因此,我们会告诉一些潜在客户提供商,“我知道您通常发布上午8点到下午5点的M-F,但周一是假日,所以不要发布。” 问题是,一些潜在客户提供商没有准备好处理时间表(或者如果他们想向我们销售更多潜在客户,就忽略它)。因此,我现在必须

我们接受潜在供应商的潜在客户。我们只允许某些供应商在特定日期/时间向我们发布潜在客户。目前,我们有3个计划,但将来可能会增加1个或n个:

  • 星期日上午8点到星期五下午3点——所有时间间隔
  • 周一至周五上午8点至下午5点
  • 每天24小时
  • 此外,我们希望能够在特定时间一次性发布——因此,我们会告诉一些潜在客户提供商,“我知道您通常发布上午8点到下午5点的M-F,但周一是假日,所以不要发布。”

    问题是,一些潜在客户提供商没有准备好处理时间表(或者如果他们想向我们销售更多潜在客户,就忽略它)。因此,我现在必须在我们接收潜在客户时将此检查添加到我们的系统中,首先检查潜在客户提供商(他们在发送的XML中标识自己)是否允许在这个特定时间发布潜在客户


    我真的不知道从哪里开始。以前有人这样做过吗?您是如何处理它的,以及您的方法的优点/缺点是什么?

    这看起来有点复杂,基于规则的逻辑,因此我认为最好的方法是创建一组表示所涉及实体的对象。为了澄清,我的意思是将规则建模到对象,应用最合适的设计模式


    例如,我现在想不起来,如果你说一个客户在什么时候发布有一组“规则”,我会通过在customer对象上有一个方法来建模,比如CanPost(DateTime postTime)。该方法将根据规则集合检查postTime,规则集合可以是您想要的复杂程度。首先,它可以是这些第一个“post规则”和您稍后在规则中提到的“例外”的两个集合;但这实际上可以无限模拟。查看Martin Fowlers Analysis Patterns,了解许多复杂领域模型的重要参考资料,尤其是如果可以查看Fowler的文章,请查看PostingRule部分。这看起来有点复杂,基于规则的逻辑,因此我认为最好的方法是创建一组表示所涉及实体的对象。为了澄清,我的意思是将规则建模到对象,应用最合适的设计模式


    例如,我现在想不起来,如果你说一个客户在什么时候发布有一组“规则”,我会通过在customer对象上有一个方法来建模,比如CanPost(DateTime postTime)。该方法将根据规则集合检查postTime,规则集合可以是您想要的复杂程度。首先,它可以是这些第一个“post规则”和您稍后在规则中提到的“例外”的两个集合;但这实际上可以无限模拟。查看Martin Fowlers分析模式,了解许多复杂领域模型的重要参考资料,特别是如果您可以查看Fowler的文章,请查看PostingRule部分

    另外,查看规范模式,它在尝试实现复杂规则时可能很有用。同样,查看规范模式,它在尝试实现复杂规则时非常有用