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 modułó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.
Enumeracja listy typów 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.
Model nazwy modułu.
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.
DTO modułu nazwy.
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.
Model skomponowanego wzorca nazwy.
Także w tym przypadku model domeny ma swojego odpowiednika w warstwie infrastruktury o nazwie CompositionNameDto.
DTO kompozycji nazwy.
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.
Blog | https://mrdev.pl |
Projekt | https://mrdev.pl/pictogr-pomysl |
GitHub | github.com/krzysztofowsiany/pictogr |
Snapchat | www.snapchat.com/add/gocom7 |
www.facebook.com/PictOgr-1729700930654225 | |
twitter.com/gemu_gocom | |
RSS | http://mrdev.pl/category/daj-sie-poznac-2017/feed |