OK, puvodni odpoved jsem psal na mobilu a tam se mi nechtelo rozepisovat, tak budu tedy presnejsi a korektnejsi: S tím, co zmiňujete ale já souhlasím, vy chcete mít ve ViewModelu data, která se týkají Viewcka a k tomu chcete mít logiku, která slouží k převodu mezi nějakým DTO a ViewModel, což je skutečně někde na Controller vrstvě.. Buďto v nějaké službě nebo ve ViewModelu.. ale jsou to prostě jen mapovací metodky, které dělají jen to jedno : Mapují DTO->ViewModel a ViewModel->DTO. Nemají na starost žádnou složitou logiku aplikace, nedělají žádnou práci, co by jste měl v servise, nebo v repozitáři a už vůbec nemají context... Tedy namísto automappera, nebo ručného mapování v controlleru / v nějaké službě na úrovni controlleru, to máte přímo ve ViewModelu. A je jedno jestli je to jako ToMetody, CreateMetody, copy constructor, nebo třeba (explicit) operator. POřád jsou to metody jen pro mapování, žádná jiná logika. Tedy k úplně první otázce: GetAllPersons() by jste stejně měl někde v servise a vracela by IEnumerable<Person> a ViewModel by mel v sobe prevod Person->PersonViewModel..
|