PictOgr – widok konfiguracji + model domeny

Widok konfiguracji

Ważnym elementem PictOgr-a jest konfiguracja, w niej właśnie będzie definiowana struktura katalogów dla zdjęć. Nazwy powinny składać się z wielu widok konfiguracjimodułów. W tym celu konfiguracja powinna dać możliwość składania wzorca lokalizacji pliku z dostępnych modułów nazwy jakie można wyciągnąć z pliku:

  • EXIF – Exchangeable Image FIle Format – bogactwo możliwości definicji nazw,
  • czasy utworzenia
  • nazwa pliku
  • podstawowe znaki jak: -, _, / i inne jakie dojdą w trakcie.

 

Widok dość prosty, zawiera zakładkę „Formats”, w której to będzie posortowana według kolejności dodawania lista modułów nazw z lewej strony natomiast z prawej pogrupowane moduły nazw z jakich będzie można zdefiniować nazwę i lokalizację pliku.

Zdefiniowany wzorzec nazwy będzie wyświetlany na dole wraz z przykładową przetworzoną ścieżką do pliku.

Widok nie zawiera możliwości zapisu/odczytu zdefiniowanego wzorca nazwy, to będzie rozbudowane w kolejnych etapach budowy aplikacji.

Dodatkowo aplikacja będzie posiadała dziennik zadań, w którym to będzie można określić kiedy i o której godzinie ma zostać wykonana procedura porządkowania plików. Widok konfiguracji nie został przygotowany dlatego na tą chwilę będzie pominięty.

 

Podstawowa konfiguracja jaką będzie można ustawić to start aplikacji z systemem -> Tray oraz integracja z menu podręcznym tak by była możliwość uruchomienia porządkowania np. bezpośrednio na katalogu.

 

Rozbudowa modelu domeny

Każdy moduł będzie posiadał swój typ, do tego wykorzystany został typ wyliczeniowy , obecnie zawiera dwie pozycje dla EXIFa i bazowych modułów nazw.

Typ modułu wykorzystywany jest przez model nazwy: NameModule.

Model składa się także z identyfikatora w formacie GUID, oraz nazwy.

I to właśnie nazwa będzie odzwierciedlać moduł i następnie zostanie zastąpiona rzeczywistymi danymi pobranymi z pliku.

Jest to model domenowy dlatego jego ustawienie możliwe jest jedynie w konstruktorze z wykorzystaniem metod zawierających walidację.

Tak utworzony obiekt nie będzie zmieniany w trakcie działania aplikacji.

 

Klasa odpowiedzialna za przekazywanie danych z modelu domeny do aplikacji wygląda bardzo prosto i zawiera w zasadzie te same pola jakie znajdują się w domenie. W tym przypadku mogą ulegać modyfikacji.

Moduły nazwy są wykorzystywane przez następny model domeny o nazwie CompositionName, zawiera on w sobie listę modułów nazw i identyfikator.

 

Także w tym przypadku model domeny ma swojego odpowiednika w warstwie infrastruktury o nazwie CompositionNameDto.

DTO dla kompozycji nazwy jest bardzo proste i zawiera jedynie listę nazw modułów, oraz identyfikator kompozycji.

Czy to dobra czy nie dobra implementacja problemu, to już zostanę rozliczony przez historię:D. Jednak walczę nadal i pozostał tylko jeden post wymagany do ukończenia DSP2017. Tak że widzę światełko w tunelu oraz perspektywy na dalsze blogowanie i rozwijanie PictOgra.

 

 

Dziękuję za wytrwałość i zachęcam do komentowania.

 

 

Jest to post przygotowany na potrzeby konkursu „Daj Się Poznać 2017” organizowanym przez Macieja Aniserowicza.