Exemplo n.º 1
0
        /**
         * Scrive il file xml di configurazione sulla flash card.
         * Se il disco NON è rimovibile, non faccio nulla.
         * Eseguo anche il controllo che il fotografo non sia l'ARTISTA. Infatti se sto creando
         * delle cornici, non ho bisogno di battezzare la card (perché non esiste una card).
         * <returns>Ritorna true se dovevo battezzare ed è andato tutto bene</returns>
         */
        public bool battezzaFlashCard(ParamScarica param)
        {
            _giornale.Debug("Inizio battezzaFlashCard()");

            bool riuscito = false;

            if (param.cartellaSorgente == null)
            {
                return(riuscito);
            }

            try {
                // Eseguo il controllo soltanto se il disco è rimovibile
                DriveInfo driveInfo = new DriveInfo(param.cartellaSorgente);
                if (driveInfo.DriveType == DriveType.Removable)
                {
                    string nomeFileConfig = Path.Combine(param.cartellaSorgente, FlashCardConfig.NOMEFILECONFIG);

                    FlashCardConfig.serialize(nomeFileConfig, param.flashCardConfig);

                    riuscito = true;

                    _giornale.Debug("Battezzata memory card al fotografo: " + param.flashCardConfig.idFotografo);
                }
            } catch (Exception ee) {
                // pazienza. Non è grave.
                _giornale.Debug("Non sono riuscito a battezzare la flash card", ee);
            }

            _giornale.Debug("Finito battezzaFlashCard(). riuscito=" + riuscito);
            return(riuscito);
        }
Exemplo n.º 2
0
        /**
         * Lo scopo di questa operazione è quella di scaricare le foto
         * dalla flash card all'hard disk locale il più velocemente
         * possibile. In questo modo posso congedare il fotografo che
         * sta aspettando. Durante questa fase, non ho feedback con l'utente.
         * Terminato lo scarico, allora posso muovere il file nella giusta
         * cartella di destinazione, scrivendo nel database e sollevando gli
         * eventi per poter visualizzare le foto.
         */
        public void scarica(ParamScarica paramScarica)
        {
            _paramScarica = paramScarica;

            seNonPossoScaricareSpaccati();

            // Se per sbaglio ho ancora un worker aperto, lo chiudo
            chiudiWorker();

            // --- Pubblico un messaggio di inizio scaricamento foto
            ScaricoFotoMsg scaricoFotoMsg = new ScaricoFotoMsg(this, "Inizio Scarico Foto");

            scaricoFotoMsg.esitoScarico = new EsitoScarico {
                riscontratiErrori = false
            };
            scaricoFotoMsg.fase            = FaseScaricoFoto.InizioScarico;
            scaricoFotoMsg.sorgente        = _paramScarica.cartellaSorgente != null ? _paramScarica.cartellaSorgente : _paramScarica.nomeFileSingolo;
            scaricoFotoMsg.showInStatusBar = true;
            pubblicaMessaggio(scaricoFotoMsg);
            // ---

            // Creo il worker che copierà le foto in background
            _copiaImmaginiWorker = new CopiaImmaginiWorker(paramScarica, elaboraFotoAcquisite);

            // Lancio il worker che scarica ed elabora le foto.
            bool usaThreadSeparato = String.IsNullOrEmpty(paramScarica.nomeFileSingolo);

            if (usaThreadSeparato)
            {
                _copiaImmaginiWorker.Start();
            }
            else
            {
                _copiaImmaginiWorker.StartSingleThread();
            }

            statoScarica = StatoScarica.Scaricamento;
        }
Exemplo n.º 3
0
        /** Provo a leggere sulla flash card se esiste il file di configurazione */
        private ParamScarica creaParamScarica(string driveName)
        {
            ParamScarica p = new ParamScarica();

            p.cartellaSorgente = driveName;

            FlashCardConfig fcc = null;

            string nomeFileConfig = Path.Combine(driveName, FlashCardConfig.NOMEFILECONFIG);

            if (File.Exists(nomeFileConfig))
            {
                try {
                    fcc = FlashCardConfig.Deserialize(nomeFileConfig);
                } catch (Exception e) {
                    _giornale.Debug("File riconoscimento flash card nel drive : " + driveName, e);
                } finally {
                    p.flashCardConfig = fcc;
                }
            }

            return(p);
        }
 public ElaboratoreFotoAcquisite(IList <FileInfo> list, ParamScarica paramScarica)
 {
     this._listaFiles   = list;
     this._paramScarica = paramScarica;
 }
Exemplo n.º 5
0
 public CopiaImmaginiWorker(ParamScarica paramScarica, ElaboraImmaginiAcquisiteCallback elaboraCallback)
 {
     _paramScarica = paramScarica;
     _elaboraImmaginiAcquisiteCallback = elaboraCallback;
 }