/
valzem
/
MatControl
Обзор
Документация
Войти
/
valzem
/
MatControl
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/MatControl.Domain/AssetStateExtensions.cs
49 строк
2 KB
MatControl Dev
Бизнес-правила и целостность данных: списание только с МОЛ, возврат МЗ по сумме выдач, детерминированный выбор МОЛ, лимит количества МЗ, свободные ОС для МОЛ; состояние 'К списанию'; инструкция, AGENTS.md, скиллы и задачи обновлены (78 тестов)
09 авг 2026, 07:22
09 авг 2026, 07:22
6b6ae74
Код
Авторство
О чём код?
namespace MatControl.Domain; public static class AssetStateExtensions { public static string ToDisplayName(this AssetState state) { return state switch { AssetState.Рабочее => "Рабочее", AssetState.Не_рабочее => "Не рабочее", AssetState.К_списанию => "К списанию", AssetState.Списан => "Списан", _ => state.ToString() }; } public static bool TryParseDisplayName(string? value, out AssetState state) { state = AssetState.Рабочее; if (string.IsNullOrWhiteSpace(value)) { return false; } var normalized = value.Trim().ToLowerInvariant(); switch (normalized) { case "рабочее": case "эксплуатируется": state = AssetState.Рабочее; return true; case "не рабочее": case "нерабочее": state = AssetState.Не_рабочее; return true; case "к списанию": case "для списания": case "подлежит списанию": state = AssetState.К_списанию; return true; case "списан": case "списано": state = AssetState.Списан; return true; default: return Enum.TryParse<AssetState>(value, ignoreCase: true, out state); } } }