Да, звучит так, как будто у вас возник кризис проектирования, когда вы пытаетесь сделать слишком много за один раз / в одном месте.
Если вы прервете эту операцию до двух звонков от клиента, вы обнаружите, что ваши опции открываются совсем немного. Это может занять больше работы, но в конечном итоге код будет менее сложным. <- хорошая вещь. </p>
И, на мой взгляд, первая подсказка, указывающая на кризис проектирования, была бы, когда я сказал себе: «Я, метод аутентификации, похоронивший два вызова глубоко в моем DAL, не работает так, как мне хотелось бы ...» "LOL .... Я шучу и серьезно в то же время.
Удачи.