我在数据传输对象的情况下,开始认为自己过度架构或复杂化问题......
我不知道我是对还是错。
EditSchoolyearDTO中所有属性只有在客户端UI中选择WeekType AB时才需要。
当仅选择WeekType A时,则A属性就足够了。
在AB情况下,我现在会创建一个SchoolWeekADTO和SchoolWeekBDTO。
考虑到DTO结构作为客户端和服务器之间的json接口,我的DTO结构并没有表达出何时需要A或AB数据。这让我感到很不好。
最重要的是,我的服务器API具有固定类型,因此我无法同时发送带有A-DTO和AB-DTO的Post。
你会怎么做?
public class EditSchoolyearDTO
{
public string Name { get; set; }
public DateTime EndDate { get; set; }
public WeekType StartWeek { get; set; }
public enum WeekType : int
{
A = 0,
AB = 1,
}
public int UserId { get; set; }
public SchoolWeekADTO SchoolWeekA { get; set; }
public SchoolWeekBDTO SchoolWeekB { get; set; }
// When WeektType is A then only SchoolWeekA is or its A-properties are needed
// SchoolyWeekADTO
//public int MaxPeriodPerWeekA { get; set; }
//public IEnumerable<int> VisibleWeekDayIndexA;
//public DayOfWeek FirstDayOfWeekA { get; set; }
// SchoolWeekBDTO
//public int WeeklyRotation { get; set; }
//public DayOfWeek FirstDayOfWeekB { get; set; }
//public IEnumerable<int> VisibleWeekDayIndexB;
//public int MaxPeriodPerWeekB { get; set; }
}