Я ищу лучшее решение в данных данных: один контроллер с методом Put
с двумя строками в качестве параметров: key
и jsonValue
.Архитектурная проверка внутри контроллера
Что мне нужно сделать: проверить, является ли jsonValue
действительным типом <key>
и вставить в Db.
То, что я сделал, это создать перечисление всех <key>
возможностей и внутри Put
я написал переключатель на (Enum.Key
)
Enum.TryParse(key, true, out configType);
switch (configType)
{
case ConfigType.Configuration:
if(IsValid(key, value))
Insert();
break;
case ConfigType.Configuration2:
...
private bool IsValid(key, value)
{
Enum.TryParse(key, true, out configType);
switch (configType)
{
case ConfigType.Configuration:
var values = JsonConvert.DeserializeObject<IEnumerable<ConfigData>>(value);
if (!routingConfigurationData.Any())
return false;
break;
case ConfigType.Configuration2:
...
}
Это довольно нуб вещь ... Я думал создать фабрику , ConfigurationFactory
с методом Create
, который вернет общий тип на основе ключа (я могу сопоставить ключ с типом) ... но для метода Create
мне нужно 4-5 классов для каждого типа (например, подписи Configuration Create, Configuration2 Create => T Create).
Можете ли вы дать мне несколько лучших идей?
Спасибо, ребята!
Избавьтесь от большого корпуса корпуса переключателя, используя цепочку ответственности. – vendettamit