У меня есть приложение для ввода серийных номеров в базу данных. Серийный номер имеет заданное количество атрибутов, которые его определяют, и пользователь должен / может предоставить их для генерации.
public class Serial
{
public string Number {get; set;}
public string Part {get; set;}
public string MfgOrder {get; set;}
public string CusOrder {get; set;}
public string Note {get; set;}
... etc ...
}
Теперь начальная точка этого приложения запрашивает у пользователя одну из нескольких частей информации (например, номер детали или производственный заказ и т. Д.). Эта начальная точка может уже заполнить некоторые обязательные пользовательские данные. Затем я хотел бы взять эти известные предметы и изменить форму на их основе.
Например. Если две части информации - это номер детали и номер заказа Mfg, а пользователь предоставляет номер заказа Mfg (который имеет отношение к номеру детали из базы данных), я хотел бы отобразить эти значения, но не разрешить их изм. Если вместо этого пользователь просто дает мне номер детали, я хочу разрешить представлять Mfg Order в виде текстового поля с (возможно) необязательным или обязательным рядом с ним.
public class MfgOrder
{
public string MfgOrder {get; set;}
public string Part {get; set;}
}
...
MfgOrder order = new MfgOrder(some_user_value); // queries database, returns populated object
Serial serial = new Serial() {
MfgOrder = order.MfgOrder,
Part = order.Part
};
Это приложение работает прямо сейчас, просто имея условия if / then в пользовательском интерфейсе - если вы дали мне Mfg Order, отобразите его таким образом, если вы дали мне что-то еще, сделайте это таким образом и т. Д. Проблема Несколько новых опций были запрошены и постоянно объединяются в цепочку, если / то операторы становятся действительно ужасными.
if(serial.comes_from_mfgOrder == true)
{
%>Manufacturing Order: <%=serial.MfgOrder %><%
} else if (serial.comes_from_part_number == true) {
%>Manufacturing Order: <%=Html.Textbox("MfgOrder")%><%
} else if // continue this for way too long now ...
Есть ли здесь хороший шаблон дизайна?
Спасибо!