У меня есть метод, который принимает некоторые параметры и генерирует некоторый XML для отправки в [архаичный] веб-сервис.
Мне нужно включить в XML:
Дата (гггг-мм-дд)
Время открытия (чч: мм)
Время закрытия (чч: мм)
В прошлом, когда мне приходилось указывать дату / время отдельно, я брал один параметр DateTime и форматировал дату в одном поле, а время - в другом.
В этом сценарии у меня одна дата и 2 раза в день.
Мой первоначальный подход был 3 поля ввода - одно Дата, 2 раза. Это неправильно, поскольку временные рамки могут охватывать более суток.
Другая идея заключалась в том, чтобы взять 2 даты - использовать одну для поля даты, а затем время от обеих для других полей. Это неправильно, поскольку указанные даты могут быть разными днями.
Последний вариант, о котором я могу подумать, - это параметр OpeningDateTime
и временной интервал OpenDuration
, однако, поскольку время открытия / закрытия хранится в зависимости от дня недели (а не даты), разработчику потребуется рассчитать сами временные рамки - что кажется глупым, поскольку нарушает принципы СУХОГО. Не говоря уже о том, что время может быть> 1 день
Короче говоря, у меня есть 3 решения, которые будут работать, но ни одно из них не будет считаться правильным - и первые 2 решения будут выявлять проблемы только во время выполнения. Я бы предпочел, чтобы определение метода было таким, чтобы передача неверных данных была трудной (если не невозможной) - это было бы видно во время разработки
Может быть, я слишком анализирую, но должен быть более аккуратный способ сделать это
У кого-нибудь есть предпочтительный метод, и если да, то почему?