public void OnNext(Messaggio msg) { if (msg is CambioStatoMsg) { if (msg.sender is IScaricatoreFotoSrv) { // Per qualsiasi cambio di stato del servizio, devo rivalutare la possibilità di scaricare le foto OnPropertyChanged("isScaricatoreBusy"); OnPropertyChanged("isScaricatoreIdle"); OnPropertyChanged("isScaricamentoInCorso"); } } if (msg is ScaricoFotoMsg) { ScaricoFotoMsg msgScaricoFotoMsg = msg as ScaricoFotoMsg; if (msgScaricoFotoMsg.fase == FaseScaricoFoto.FineScarico) { bool discoRemovibile = false; DriveInfo driveInfo = new DriveInfo(msgScaricoFotoMsg.sorgente); if (driveInfo.DriveType == DriveType.Removable) { discoRemovibile = true; } if (!msgScaricoFotoMsg.esitoScarico.riscontratiErrori) { StringBuilder msgScarico = new StringBuilder(); msgScarico.AppendFormat("Scaricate {0} foto.{1}", msgScaricoFotoMsg.esitoScarico.totFotoCopiateOk, discoRemovibile ? " Si può estrarre la card." : null); trayIconProvider.showInfo("AVVISO", msgScarico.ToString(), 5000); } else { StringBuilder msgError = new StringBuilder("Confermare scarico foto:\n").Append(msgScaricoFotoMsg.esitoScarico.totFotoCopiateOk); msgError.Append("\nErrori = ").Append(msgScaricoFotoMsg.esitoScarico.totFotoNonCopiate); if (discoRemovibile) { msgError.Append("\nSi può estrarre la card."); } trayIconProvider.showError("ERRORE", msgError.ToString(), 5000); } } else if (msgScaricoFotoMsg.fase == FaseScaricoFoto.FineLavora) { aggiornareSpazioLiberoSuDisco(); StringBuilder msgProvinatura = new StringBuilder(); msgProvinatura.AppendFormat("Scaricate {0}\nProvinate {1}", msgScaricoFotoMsg.esitoScarico.totFotoCopiateOk, msgScaricoFotoMsg.esitoScarico.totFotoProvinate); trayIconProvider.showInfo("Esito acquisizione", msgProvinatura.ToString(), 5000); } } // Questo messaggio me lo lancia il mio servizio quando ha acquisito i dati di una nuova chiavetta if (msg.senderTag != null && msg.senderTag.Equals("::OnLetturaFlashCardConfig")) { // carico i dati dell'ultima chiavetta inserita if (isScaricatoreIdle) { using (new UnitOfWorkScope()) { caricaDatiDaChiavetta(); } } } }
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); } })); } }