fbpx
devstyle.pl - Blog dla każdego programisty
devstyle.pl - Blog dla każdego programisty
< 1 minut

Automapper i mapowanie z czasu UTC


11.03.2010

Niedawno popisałem troszkę o czasie UTC i dlaczego tylko taka reprezentacja czasu powinna znajdować drogę do bazy danych. A teraz… w jaki sposób przygotować datę do podróży w drugą stronę, czyli do użytkownika.

Z Automapperem jest to zadanie doprawdy banalne, wystarczy odpowiedni Type Converter:

  1:  public class UtcToLocalTimeConverter : TypeConverter<DateTime, DateTime>
  2:  {
  3:  	protected override DateTime ConvertCore(DateTime source)
  4:  	{
  5:  		string targetTimeZoneName = Config.TargetTimeZone;
  6:  
  7:  		TimeZoneInfo targetTimeZone = TimeZoneInfo.FindSystemTimeZoneById(targetTimeZoneName);
  8:  
  9:  		return TimeZoneInfo.ConvertTimeFromUtc(source, targetTimeZone);
 10:  	}
 11:  }

Teraz tylko rejestracja w konfiguracji…

  1:  Mapper.CreateMap<DateTime, DateTime>().ConvertUsing<UtcToLocalTimeConverter>();

i już, automagicznie wszystkie nasze DTO przesyłane do użytkownika będą miały odpowiednią dla niego datę. A system nadal posiada wszelkie zalety "systemu przechowującego datę w UTC", bez żadnego dodatkowego wysiłku z naszej strony!

0 0 votes
Article Rating
7 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
marek
13 years ago

Hej Maciej,

rewelacyjne rozwiązanie, sam już od jakiegoś czasu korzystam z AutoMapper’a, ale zawsze brakowało mi eleganckiego rozwiązania na wstrzykiwania zależności podczas mapowania.

Super, dzięki!

Pozdrawiam,
Marek

marek
13 years ago

Kurs Gita

Zaawansowany frontend

Szkolenie z Testów

Szkolenie z baz danych

Książka

Zobacz również