Sto costruendo un'applicazione che segue in modo approssimativo il modello di repository con un livello di servizio in primo piano, simile alle prime versioni di MVC Storefront di Conery.Il livello di servizio può accedere a HttpContext?
Devo implementare una pagina che restituisca tutti gli utenti tranne l'utente corrente. Dispongo già di metodi GetUsers() sul repository e sui livelli del servizio, quindi la domanda è dove applicare "eccetto per l'utente corrente".
Il livello di servizio deve conoscere HttpContext, quindi applicare questa regola? Sono tentato di passare solo l'utente corrente (id) dal controller a questo metodo di servizio, ma sembra più pulito se il livello di servizio fosse HttpContext-aware e potesse farlo da solo.
Una ovvia alternativa è quella di applicare questa regola direttamente all'interno del controller, ma io non sono solo caldo su questa idea ...
Edit - solo per commentare le risposte: vedo i problemi con il problema della dipendenza inversa, qualcosa che stavo trascurando completamente. Segnalo come risposta a Mehrdad, ma tutti hanno davvero fornito una valida risposta che vale la pena di leggere!
Cosa c'è che non va con il semplice passaggio ID utente? –
Niente di male, mi piace solo trattare tutte le situazioni sensibili al contesto allo stesso modo. – JonoW
Mi piace questa idea, JonoW! Potrei semplicemente passare l'id per ora, se/quando i miei metodi di servizio cominceranno a diventare brutti con param e sovraccarichi, sarebbe fantastico. Potrei persino passare AppContext durante l'istanziazione dell'oggetto servizio, soddisfacendo in tal modo il mio desiderio di avere il servizio un po '"consapevole" ma non dipendente da System.Web. –