Ejemplo n.º 1
0
        protected virtual void applicareMetadati()
        {
            // Questo attributo, non riesco a puntarlo direttamente nei metadati, ma risiede nel vm del suo componente.
            // Lo copio qui adesso.
            metadati.evento = selettoreEventoViewModel.eventoSelezionato;


            // Ricavo l'Evento dall'apposito componente di selezione.
            // Tutti gli altri attributi sono bindati direttamente sulla struttura MetadatiFoto.
            if (fotoExplorerSrv.modificaMetadatiFotografie(getElementiSelezionati(), metadati))
            {
                dialogProvider.ShowMessage("Metadati Modificati correttamente", "AVVISO");
            }
            else
            {
                dialogProvider.ShowError("Errore modifica metadati", "ERRORE", null);
            }

            MetadatiMsg msg = new MetadatiMsg(this);

            msg.fase = Fase.Completata;
            LumenApplication.Instance.bus.Publish(msg);

            // Svuoto ora i metadati per prossime elaborazioni
            metadati = new MetadatiFoto();
        }
Ejemplo n.º 2
0
        public SelettoreMetadatiViewModel()
        {
            // Questo è l'oggetto che contiene le proprietà che vado ad editare
            metadati = new MetadatiFoto();

            // Istanzio i ViewModel dei componenti di cui io sono composto
            selettoreEventoViewModel = new SelettoreEventoViewModel();
        }
Ejemplo n.º 3
0
        protected virtual void eliminareMetadati()
        {
            bool procediPure = false;

            String metadatiToDelete = "";

            //Verifico quali metadati devono essere eliminati
            if (metadati.usoDidascalia)
            {
                metadati.didascalia = null;
                metadatiToDelete   += "\nDidascalia";
            }

            if (metadati.usoEvento)
            {
                metadati.evento   = null;
                metadatiToDelete += "\nEvento";
            }

            if (metadati.usoFaseDelGiorno)
            {
                metadati.faseDelGiorno = null;
                metadatiToDelete      += "\nFase del Giorno";
            }

            dialogProvider.ShowConfirmation("Sei sicuro di voler eliminare i seguenti metadati" + metadatiToDelete + "\ndelle " + countFotografieSelezionate + " fotografie selezionate?", "Eliminazione metadati",
                                            (confermato) => {
                procediPure = confermato;
            });

            if (!procediPure)
            {
                return;
            }

            if (fotoExplorerSrv.modificaMetadatiFotografie(getElementiSelezionati(), metadati))
            {
                dialogProvider.ShowMessage("Metadati Modificati correttamente", "AVVISO");
            }
            else
            {
                dialogProvider.ShowError("Errore modifica metadati", "ERRORE", null);
            }

            // Svuoto ora i metadati
            metadati = new MetadatiFoto();

            //dialogProvider.ShowMessage("Eliminati i metadati delle " + selettoreMetadatiView.FotografiaCWP.SelectedItems.Count + " fotografie selezionate!", "Operazione eseguita");
            MetadatiMsg msg = new MetadatiMsg(this);

            msg.fase = Fase.Completata;
            LumenApplication.Instance.bus.Publish(msg);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Carico lo stato dei metadati prendendolo dalle foto selezionate
        /// </summary>
        protected void caricareStatoMetadati()
        {
            bool   didascalieDiscordanti = false;
            string didascaliaNew         = null;

            bool   eventiDiscordanti = false;
            Guid?  eventoIdNew       = null;       // Non posso usare l'oggetto "Evento" perché entity framework sulle entità non idratate mi torna null anche se non è vero :-(
            Evento eventoNew         = null;

            bool  fasiDelGiornoDiscordanti = false;
            short?faseDelGiornoNew         = null;

            IEnumerator <Fotografia> itera = getEnumeratorElementiSelezionati();
            int conta = 0;

            while (itera.MoveNext())
            {
                Fotografia f = itera.Current;
                ++conta;

                // -- didascalia

                if (String.IsNullOrWhiteSpace(f.didascalia))
                {
                    if (didascaliaNew != null)
                    {
                        didascalieDiscordanti = true;
                    }
                }
                else
                {
                    if (f.didascalia != didascaliaNew && conta > 1)
                    {
                        didascalieDiscordanti = true;
                    }
                }
                didascaliaNew = String.IsNullOrWhiteSpace(f.didascalia) ? null : f.didascalia;

                // -- evento

                if (f.evento_id == null)
                {
                    if (eventoIdNew != null)
                    {
                        eventiDiscordanti = true;
                    }
                }
                else
                {
                    if (f.evento_id != eventoIdNew && conta > 1)
                    {
                        eventiDiscordanti = true;
                    }
                }
                eventoIdNew = f.evento_id;
                if (f.evento != null)
                {
                    eventoNew = f.evento;                      // Se la foto è staccata, questo è null (mentre il suo ID è valorizzato)
                }
                // -- fase del giorno

                if (f.faseDelGiorno == null)
                {
                    if (faseDelGiornoNew != null)
                    {
                        fasiDelGiornoDiscordanti = true;
                    }
                }
                else
                {
                    if (f.faseDelGiorno != faseDelGiornoNew && conta > 1)
                    {
                        fasiDelGiornoDiscordanti = true;
                    }
                }
                faseDelGiornoNew = f.faseDelGiorno;
            }


            // -- ora travaso i dati che sono concordanti
            MetadatiFoto metadatiNew = new MetadatiFoto();


            if (didascalieDiscordanti)
            {
                metadatiNew.didascalia    = null;
                metadatiNew.usoDidascalia = false;
            }
            else
            {
                metadatiNew.didascalia    = String.IsNullOrWhiteSpace(didascaliaNew) ? null : didascaliaNew;
                metadatiNew.usoDidascalia = (metadatiNew.didascalia != null);
            }

            if (eventiDiscordanti)
            {
                metadatiNew.evento    = null;
                metadatiNew.usoEvento = false;
            }
            else
            {
                if (eventoIdNew != null)
                {
                    if (eventoNew == null)
                    {
                        // L'oggetto era staccato. Lo rileggo
                        // Devo ricaricare l'oggetto evento dall'ID
                        IEntityRepositorySrv <Evento> repo = LumenApplication.Instance.getServizioAvviato <IEntityRepositorySrv <Evento> >();
                        metadatiNew.evento = repo.getById(eventoIdNew);
                    }
                    else
                    {
                        metadatiNew.evento = eventoNew;
                    }
                }
                metadatiNew.usoEvento = (metadatiNew.evento != null);
            }
            selettoreEventoViewModel.eventoSelezionato = metadatiNew.evento;              // ribalto questo valore nel vm del componente perché è li che sta il valore buono

            if (fasiDelGiornoDiscordanti)
            {
                metadatiNew.faseDelGiorno    = null;
                metadatiNew.usoFaseDelGiorno = false;
            }
            else
            {
                if (faseDelGiornoNew != null)
                {
                    metadatiNew.faseDelGiorno = FaseDelGiornoUtil.getFaseDelGiorno((short)faseDelGiornoNew);
                }
                metadatiNew.usoFaseDelGiorno = (metadatiNew.faseDelGiorno != null);
            }

            this.metadati = metadatiNew;
        }