我有两个操作的创建/编辑对话框。
当我在编辑模式下打开对话框并进行更改时,UI 中的选择将保存到数据库中。
当我在创建模式下打开对话框时,我不必加载 ui 状态,因为我的 UI 中只有默认值。
1.) 现在我问自己是应该通过我的 DTO 从域服务中获取 UI 的默认值,还是应该在我的 ViewModels 中为 UI 定义这些默认值?
2.) 每种方法的优势是什么?
更新
public SchoolyearCreateRequest CreateSchoolyear()
{
var request = new SchoolyearCreateRequest();
request.MaxPeriodsPerWeek = TimeTable.GetMaxPeriodsPerWeek();
request.RotationsPerWeek = TimeTable.GetRotationsPerWeek();
request.FirstDaysOfAWeek = TimeTable.GetFirstDaysOfAWeek();
request.FirstDayOfWeek = TimeTable.GetFirstDaysOfAWeek().First();
request.RotationPerWeek = TimeTable.GetRotationsPerWeek().First();
request.MaxPeriodPerWeek = TimeTable.GetMaxPeriodsPerWeek().First();
request.ValidStartDate = DateTime.Today;
request.ValidEndDate = (Nullable<DateTime>)null;
return request;
}
3 个默认值 (.First()) 取自 3 个 TimeTable.Get 方法,这不是发送到客户端的冗余数据。
您还会以这种方式定义它而不是在客户端视图模型中定义它吗?
更新
namespace TLP.MODEL.DTO
{
public class SchoolyearCreateRequest
{
public IEnumerable<DayOfWeek> FirstDaysOfAWeek { get; set; }
public IEnumerable<int> MaxPeriodsPerWeek { get; set; }
public IEnumerable<int> RotationsPerWeek { get; set; }
public DateTime ValidStartDate { get; set; }
public DateTime? ValidEndDate { get; set; }
public DayOfWeek FirstDayOfWeek { get; set; }
public int MaxPeriodPerWeek { get; set; }
public int RotationPerWeek { get; set; }
}
}