0

我有一个名为 WorkflowsAndQueuesInitializerService 的对象,它定义了工作流中的队列,并且在给定指定调用结果的情况下,它也会路由下一步。我有一个从名为CalculateDueDate 的接口类继承的方法,该方法将步骤实例和下一步时间跨度作为参数。我遇到的问题是通常能够在给定来自输入文本字段的输入的情况下覆盖到期日期,而无需跨多个类方法进行往返。我有一个名为 NextStep 的映射类,它有一个构造函数,它也需要一个截止日期时间跨度。我想要实现的是在我的类表单实例中,我只想从输入文本框中传递一个值并重新计算到期日期,而无需任何麻烦。有没有更简单的方法可以通过提供的信息来实现这一点?

public override void CollectFormValues(IFormValuesCollection values)
    {
        this.CalculatedShipDate = TypeConverter.ToNullableDateTime(values["CalculatedShipDate"]);
    }

以上是从 HTTP POST 检索表单值的方法。

这是一个临时表单实例,这意味着我的应用程序不会自动将表单的值提交回数据库。通常,CollectFormValues()只将值保存到对象中,而不向数据库提交任何内容。但是因为这是一种临时形式,所以该方法还负责将值保存回数据库。

此外,我还有一个类,它检索应该用于计算下一个 StepInstance 的到期日期的类的实例,如下所示:

public static IDueDateCalculator GetDueDateCalculator( string className )
    {
        if ( String.IsNullOrWhiteSpace( className ) )
            return new DefaultDueDateCalculator();

        Assembly assembly = typeof( IDueDateCalculator ).Assembly;
        Type calcType = assembly.GetType( className );
        return (IDueDateCalculator) Activator.CreateInstance( calcType );
    }

不确定我最好的解决方案是什么,因此我来这里寻求任何反馈和/或帮助。提前致谢!

4

1 回答 1

0

如果我理解正确,您想要计算截止日期,但您也希望允许它被用户覆盖。

所以这很容易。

这是VB,但您应该能够理解。

Class Something

    Private oDueDate As Nullable(Of DateTime) = Nothing

    Private Sub CalculateDueDate
        oDueDate = {some calculation between the date and timespans}
    End Sub



    Public Property DueDate As DateTime
        Get
            If (Nothing Is oDueDate) OrElse (Not oDueDate.HasValue) Then
                CalculateDueDate
            End If
            Return oDueDate
        End Get
        Set(value as DateTime)
            oDueDate = value
        End Set
    End Property

End Class
于 2013-09-06T23:44:38.080 回答