Как я могу провести рефакторинг этого
С помощью модульных тестов.
Серьезно. Есть два логических входа, поэтому вам нужно только четыре модульных теста, чтобы полностью охватить этот метод.
Затем, с полным охватом веток, вы можете просто поиграть с реализацией. Попробуйте что-то, что кажется правильным (я считаю очень полезным написать таблицу истинности в этом случае), и тесты покажут вам, если вы ошиблись в деталях.
И в качестве дополнительного преимущества, вы можете хранить тесты всегда, как документацию о том, что метод на самом деле делает. Это особенно полезно, если вы выбираете умную реализацию, такую как причудливые логические выражения - если вы царапаете голову, пытаясь следовать потоку, вы можете просто посмотреть на тесты и увидеть: «О, я вижу - если я передать это и это, я получаю это. "
Похоже, у вас возникли проблемы с подключением к базе данных из вашего приложения. Можете ли вы опубликовать свой код и точный характер ошибки.
Без какого-либо кода или деталей языка трудно угадать, в чем может быть проблема, однако наиболее распространенной проблемой, которая возникает с asp.net, может быть строка подключения к вашей базе данных. Вы используете базу данных SQl Server / Sql Server Express в своем приложении? Вам необходимо проверить строку подключения.
Проблема заключается в настройке Integrated Security = True в строке подключения. IIS использует учетную запись Windows ASPNET, которая будет отличаться от входа в Windows, используемого при запуске из VS. У вас есть несколько вариантов:
Там могут быть и другие варианты, но я думаю, что они наиболее распространены. Что выбрать, зависит от архитектуры, в которой вы развертываете, лично я почти всегда использую аутентификацию Sql Server с использованием имени пользователя и пароля. При необходимости файл web.config может быть зашифрован для обеспечения дополнительной безопасности.