Radomił Ząbik 310 Napisano 28 Września 2023 Udostępnij Napisano 28 Września 2023 w [Sfera] Galeria zdjęć, kilka sugestii W związku z zmianą metod dla obsługi Galerii asortymentu, musiałem zrobić odpowiednie dostosowania w kodzie, i mam kilka pytań, a może sugestii. Czy dało by się zmienić, aby metoda DodajZdjecie, zwracała obiekt, który utworzyła? Niby popierdułka, można Sobie go pobrać przez Last z kolekcji, ale jakbym od razu mógł mieć go w zmiennej, to łatwiej było by mi np. ustawić go jako zdjęcie podstawowe. Ewentualnie może rozszerzyć tą metodę, aby przyjmowała też parametr ustawienia jako podstawowy? W jaki sposób można, prawidłowo i szybko usunąć wszystkie zdjęcia z Galerii? Kiedyś po prostu kasowało się po kolei elementy kolekcji, za pomocą Remove. Teraz po użyciu metody Usun, robiąc foreach na PobierzZdjecia(), kończy się błędem na kolejnym zdjęciu, że nastąpiła modyfikacja kolekcji. Tutaj, mogą być moje braki w programowaniu, ostatecznie poradziłem Sobie whilem, ale średnio mi się podoba to rozwiązanie, no chyba że to jest "zgodne z sztuką". A może metoda na szybkie usunięcie wszystkich zdjęć? while (galeria.PobierzZdjecia().LastOrDefault() != null) galeria.Usun(galeria.PobierzZdjecia().LastOrDefault()); Czy była by możliwość wprowadzeni sum kontrolnych dla tych zdjęć? Tabela Zalaczniki, taki MD5 posiada. A czemu? Popularnym jest porównywanie produktów między dwoma podmiotami i ewentualna ich aktualizacja z podmiotu głównego. Aby nie mordować serwera, robię odpowiednio analizę, co trzeba przerzucić. W przypadku zdjęć, opieranie się o sam rozmiar, wymiary, czy nazwa pliku, powiedzmy, że jest rozwiązaniem dobrym na 99%. Posiadanie sumy kontrolnej, pozwoliło by chyba lepiej i szybciej zweryfikować, czy zdjęcia w obu porównywanych bazach są zgodne. I tak, wiem, mogę ją Sobie policzyć, tylko znowu, po co wielokrotnie do tego samego pliku, co parę czasem godzin, u szalonych klientów, katować tym serwer. Link to postu
Paweł Kubacki 209 Napisano 29 Września 2023 Udostępnij Napisano 29 Września 2023 w [Sfera] Galeria zdjęć, kilka sugestii Dziękuje za zgłoszone sugestie. Postaramy się je uwzględnić w kolejnych wersjach nexo. Przy czym zamiast wystawiania sum kontrolnych raczej pójdziemy w kierunku stworzenia metody pozwalającej sprawdzić, czy dane zdjęcie istnieje w galerii. 16 godzin temu, Radomił Ząbik napisał: Teraz po użyciu metody Usun, robiąc foreach na PobierzZdjecia(), kończy się błędem na kolejnym zdjęciu, że nastąpiła modyfikacja kolekcji. Rzeczywiście taki błąd może wystąpić, gdyż w trakcie iterowania po kolekcji nie można do niej dodawać, ani z niej usuwać elementów. Można to rozwiązać tak jak Pan napisał lub w pętli foreach po metodzie PobierzZdjecia wywołać ToList lub ToArray, co spowoduje przepisanie elementów do nowej kolekcji. Link to postu
Radomił Ząbik 310 Napisano 23 Listopada 2023 Autor Udostępnij Napisano 23 Listopada 2023 w [Sfera] Galeria zdjęć, kilka sugestii (edytowane) Potrzebuje jeszcze jednego wyjaśnienia. Jak to jest z metodą Usun, w Galerii? Jeśli dobrze rozumiem, powinna ona usunąć całkowicie zdjęcie z bazy danych. W wersji 47, jest komunikat, że ta metoda jest przestarzała i należy skorzystać z metody OdlaczZdjecie. Czy ta metoda przypadkiem, nie odłącza jedynie zdjęcia od obiektu? Ja bym chciał je jednak permanentnie usunąć. EDIT: No oczywiście, że tylko odłącza. To trochę nie nazwał bym zastąpieniem. Czemu Usun wylatuje? Edytowane 23 Listopada 2023 przez Radomił Ząbik Link to postu
Jerzy Dudra 38 Napisano 23 Listopada 2023 Udostępnij Napisano 23 Listopada 2023 w [Sfera] Galeria zdjęć, kilka sugestii (edytowane) Zrezygnowaliśmy z usuwania zdjęć z poziomu galerii zdjęć obiektu bo zdjęcie może być używane gdzieś indziej (np. w innym towarze). Tworzy to pewne ryzyko, że można "niechcący" usunąć sobie zdjęcie powiązane z innymi towarami. Obecnie jeżeli chcemy usunąć wszystkie zdjęcia towaru "na zawsze" należy: Pobrać galerię zdjęć tego towaru (IAsortyment.PobierzGalerieZdjec()) Z galerii towaru pobrać zdjęcia IGaleriaZdjecObiektu.PobierzZdjecia(); Pobrać globalną galerią Uchwyt.PodajObiektTypu<IGaleriaZdjec>() dla każdego zdjęcia do usunięcia wykonać: IGaleriaZdjec.UsunZdjecie(..) A pisząc po ludzku np. jakoś tak: IGaleriaZdjec galeriaZdjec = uchwyt.PodajObiektTypu<IGaleriaZdjec>(); IAsortyment towar = PodajTowarZeZdjeciamiDoWywalenia(); var galeriaZdjecTowaru = towar.PobierzGalerieZdjec(); foreach (var zdjecieDoUsuniecia in galeriaZdjecTowaru.PobierzZdjecia()) { galeriaZdjec.UsunZdjecie(zdjecieDoUsuniecia); } Edytowane 23 Listopada 2023 przez Jerzy Dudra wyjaśnienie czegoś Link to postu
Radomił Ząbik 310 Napisano 23 Listopada 2023 Autor Udostępnij Napisano 23 Listopada 2023 w [Sfera] Galeria zdjęć, kilka sugestii No, czyli trochę na około, ale rozumiem obawy o usunięcia zdjęcia z wielu obiektów. Na Galerii, ostatnimi czasy, najczęściej działam w programach uzupełniających dane towarowe lub synchronizujących dwa podmioty, i w przypadku pierwszego, te zdjęcia się najczęściej podmienia w 100%, a w drugim przypadku, obecnie też, bo brakuje mi sum kontrolnych, aby porównanie robić na poziomie zapytania do SQL, bez pobierania zdjęć z obu podmiotów - wydajność. Generalnie to trochę jeszcze jest braków w tej Galerii na moje. Funkcji usuń nie ma też od strony zdjęć produktów, gdzie w sumie rozumiem obawy, ale można by przecież dać komunikat, że zdjęcie które próbujesz usunąć, jest połączone z X produktami - wtedy jakiś przycisk "Pokaż w galerii" i tam, no właśnie, tam mamy tylko informacje, ile obiektów jest podłączonych, ale nie wiem, jak wejść w ten obiekt. Tutaj jest spory brak w Galerii, że nie wiem, skąd to zdjęcie jest. Link to postu
Paweł Kubacki 209 Napisano 24 Listopada 2023 Udostępnij Napisano 24 Listopada 2023 w [Sfera] Galeria zdjęć, kilka sugestii 21 godzin temu, Radomił Ząbik napisał: obecnie też, bo brakuje mi sum kontrolnych, aby porównanie robić na poziomie zapytania do SQL, bez pobierania zdjęć z obu podmiotów - wydajność. Planujemy ten problem jakoś zaadresować w przyszłości. 21 godzin temu, Radomił Ząbik napisał: Generalnie to trochę jeszcze jest braków w tej Galerii na moje. Funkcji usuń nie ma też od strony zdjęć produktów, gdzie w sumie rozumiem obawy, ale można by przecież dać komunikat, że zdjęcie które próbujesz usunąć, jest połączone z X produktami - wtedy jakiś przycisk "Pokaż w galerii" i tam, no właśnie, tam mamy tylko informacje, ile obiektów jest podłączonych, ale nie wiem, jak wejść w ten obiekt. Tutaj jest spory brak w Galerii, że nie wiem, skąd to zdjęcie jest. Wiemy, że galeria wymaga jeszcze kilku szlifów. Z pewnością będzie jeszcze ulepszana w przyszłości. Link to postu
Radomił Ząbik 310 Napisano 25 Listopada 2023 Autor Udostępnij Napisano 25 Listopada 2023 w [Sfera] Galeria zdjęć, kilka sugestii Niestety, po testach, z tym usuwaniem zdjęć nie jest tak kolorowo. Działanie na ogólnej bibliotece jest ok, jeśli w tym czasie nie edytujemy asortymentu, a taki jest najczęstszy scenariusz. Jeśli go edytujemy, to od razu blokujemy także obiekty galerii, i metoda odłącz, do czasu wywołania zapisz, nic tutaj nie daje niestety. w efekcie, trzeba pierw przeprowadzić iterację, celem odłączenia zdjęć od obiektu, i zapisać Sobie na boku te odłączane zdjęcia, a po zapisaniu obiektu, wykonać analizę, czy było coś usunięte, i dopiero usunąć z galerii. Było by jednak miło, aby te wszystkie metody, nie wymagały, aż takich kombinacji, względem tego co było. 1 Link to postu
Paweł Kubacki 209 Napisano 27 Listopada 2023 Udostępnij Napisano 27 Listopada 2023 w [Sfera] Galeria zdjęć, kilka sugestii Przekonał mnie Pan. Postaramy się ten proces usprawnić w kolejnych wersjach programu. 1 Link to postu
Polecane posty