public void stop()
        {
            // Preparo messaggio di cambio stato
            CambioStatoMsg msg = null;

            if (isRunning)
            {
                msg = new CambioStatoMsg(this)
                {
                    nuovoStato = (int)SlideShowStatus.Stopped
                };
            }

            if (_orologio != null)
            {
                _orologio.Stop();
            }

            // Rilancio messaggio di cambio stato
            if (msg != null)
            {
                LumenApplication.Instance.bus.Publish(msg);
            }

            raiseCambioStatoProperties();
        }
        /// <summary>
        ///  Fermo, svuoto ed azzero lo show
        /// </summary>
        public void reset()
        {
            // Preparo messaggio di cambio stato
            CambioStatoMsg msg = null;

            if (!isEmpty)
            {
                msg = new CambioStatoMsg(this)
                {
                    nuovoStato = (int)SlideShowStatus.Empty
                };
            }

            stop();
            this.slideShow = null;
            rilasciaEdAzzeraVisibili();
            this.numSlideCorrente = 0;

            // Rilancio messaggio di cambio stato
            if (msg != null)
            {
                LumenApplication.Instance.bus.Publish(msg);
            }

            raiseCambioStatoProperties();
        }
Beispiel #3
0
        public void OnNext(Messaggio msg)
        {
            if (msg is StampatoMsg)
            {
                StampatoMsg sm = (StampatoMsg)msg;

                if (sm.lavoroDiStampa.esitostampa == EsitoStampa.Errore)
                {
                    App.Current.Dispatcher.BeginInvoke(
                        new Action(() => {
                        dialogProvider.ShowError(sm.lavoroDiStampa.ToString(), "Lavoro di stampa fallito", null);
                    }
                                   ));
                }
            }

            if (msg is ScaricoFotoMsg)
            {
                ScaricoFotoMsg sm = (ScaricoFotoMsg)msg;
                if (sm.fase == FaseScaricoFoto.InizioScarico)
                {
                    numFotoFaseVisibility = true;
                    numFotoFase           = String.Format("Scaricate = {0:000}", 0);
                }
                else if (sm.fase == FaseScaricoFoto.Scaricamento)
                {
                    numFotoFaseVisibility = true;
                    numFotoFase           = String.Format("Scaricate = {0:000}", sm.esitoScarico.totFotoScaricateProg);
                }
                else if (sm.fase == Digiphoto.Lumen.Servizi.Scaricatore.FaseScaricoFoto.Provinatura)
                {
                    numFotoFase = String.Format("Provinate = {0:000}/{1:000}", sm.esitoScarico.totFotoProvinateProg, sm.esitoScarico.totFotoScaricate);
                }
                else if (sm.fase == FaseScaricoFoto.FineLavora)
                {
                    numFotoFaseVisibility = false;
                }
            }

            if (msg.showInStatusBar)
            {
                InformazioneUtente infoUser = new InformazioneUtente(msg.descrizione);
                infoUser.esito = msg.esito;

                App.Current.Dispatcher.BeginInvoke(
                    new Action(() =>
                {
                    informazioniUtente.Write(infoUser);
                    OnPropertyChanged("ultimaInformazioneUtente");
                    OnPropertyChanged("informazioniUtente");
                }
                               ));
            }

            if (msg is VolumeCambiatoMsg)
            {
                caricaElencoDischiRimovibili();
            }

            if (msg is CambioStatoMsg)
            {
                if (msg.sender is SlideShowViewModel)
                {
                    // Devo aggiornare lo stato della icona dello slide show
                    CambioStatoMsg  csm        = (CambioStatoMsg)msg;
                    SlideShowStatus nuovoStato = (SlideShowStatus)csm.nuovoStato;
                    OnPropertyChanged("statusSlideShowImage");
                }
            }

            if (msg is RilevataInconsistenzaDatabaseMsg)
            {
                bool   ricostruire = false;
                bool   possoAdesso = aprirePopupRicostruzioneDbCommand.CanExecute(null);
                string titolo      = "Rilevata inconsistenza database";
                string testo       = "ATTENZIONE\nE' stata riscontrata una differenza\ntra le foto scaricate e quelle elaborate.\nE' necessario lanciare la ricostruzione database!";

                App.Current.Dispatcher.BeginInvoke(new Action(() => {
                    if (possoAdesso)
                    {
                        testo += "\nVuoi eseguirlo adesso ?";

                        dialogProvider.ShowConfirmation(testo, titolo, (sino) => {
                            ricostruire = sino;
                        });

                        if (ricostruire)
                        {
                            aprirePopupRicostruzioneDbCommand.Execute(null);
                        }
                    }
                    else
                    {
                        dialogProvider.ShowMessage(testo, titolo);
                    }
                }));
            }
        }