Simple.Data – mapowanie na ViewModel

Simple.Data, biblioteka o której wspomniałem w poprzednim wpisie, dostarcza nam możliwość dynamicznego operowania na bazie danych. Co, jeśli chcemy zmapować wyciągnięte dane np. na konkretny ViewModel?

Można oczywiście wykonać ręczne mapowanie, ale co jeżeli chcielibyśmy robić to automatycznie? Pierwsza myśl? AutoMapper. Niestety, nie dostarcza on możliwości mapowania typów dynamicznych.

Slapper to biblioteka, której potrzebujemy. Jak to wygląda w praktyce?

        public IEnumerable<dynamic> GetAllMuseumsByCityCode(string cityCode)
        {
            return Database.Open().Museums.FindAllBy(CityCode: cityCode);
        }

Mamy metodę GetAllMuseumsByCityCode, która zwraca nam kolekcję muzeów, przedstawionych jako typy dynamiczne. Następnie przygotowujemy ViewModel dla muzeum:

    public class MuseumViewModel
    {
        public string Name { get; set; }
        public string CityCode { get; set; }
        public string Details { get; set; }
    }
}

Po czym mapujemy uzyskaną wcześniej kolekcję na kolekcję zawierającą obiekty MuseumViewModel. Jak widać jest to bardzo prosta operacja:

        public IEnumerable<MuseumViewModel> GetAllMuseumsByCityCode(string cityCode)
        {
            var museums = _museumService.GetAllMuseumsByCityCode(cityCode);

            var museumsViewModel = Slapper.AutoMapper.MapDynamic<MuseumViewModel>(museums);

            return museumsViewModel;
        }

Po więcej informacji odsyłam do dokumentacji biblioteki Slapper.

3 uwagi do wpisu “Simple.Data – mapowanie na ViewModel

Zostaw komentarz

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

w

Connecting to %s