Esempio n. 1
0
        /// <summary>
        /// Evento richiamato al collegamento di un nuovo dispositivo USB
        ///
        /// Controlla se il dispositivo presenta l'installazione del sistema di sicurezza
        /// 1 - nel caso negativo richiede la conferma per procedere con l'installazione
        /// 2 - nel caso affermativo avvia l'operazione di decrittazione
        /// </summary>
        /// <param name="name">Nome della periferica. Esempio C:, D:, E:, F:, etc...</param>
        void OnDeviceAdded(string name)
        {
            var idService = new Services.DeviceIdentificationService(name);
            var result    = idService.Identify();

            if (result.Ok)
            {
                // Avvia il watcher
                DeviceWatcherHandler(name, result.Id);
                return;
            }
            else
            {
                if (result.FileExists && string.IsNullOrEmpty(result.Id))
                {
                    // Il protocollo ss è stato installato sul dispositivo
                    // ma risulta corroto, non possiamo dedurre niente dallo stato corrente
                    // Errore fatale, Il dispositivo è inutilizzabile
                    MessageBox.Show(
                        "The Device's ID is invalid! Cannot access Device.",
                        "USB Error",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Error
                        );
                    return;
                }
                else if (result.FileExists == false)
                {
                    // Il dispositivo non presenta alcun modulo ss installato
                    if (MessageBox.Show(
                            "Would you like to setup Security System on this USB Device?",
                            "Configure USB Device?",
                            MessageBoxButtons.YesNo,
                            MessageBoxIcon.Question
                            ) == DialogResult.Yes)
                    {
                        var setupService = new Services.DeviceSetupService(idService.Filename);
                        var setupResult  = setupService.Setup();
                        if (setupResult)
                        {
                            DeviceWatcherHandler(name, setupService.Id);
                            return;
                        }
                        else
                        {
                            MessageBox.Show(
                                "Fatal error during device setup!",
                                "Setup Error",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
                        }
                    }
                }
                else if (result.FileExists && result.EntryExists == false)
                {
                    // Non sei il propretario del dispositivo
                    // Inseriscilo nel database e in seguito chiedi la chiave di accesso
                    var setupService = new Services.DeviceSetupService(idService.Filename);
                    var setupResult  = setupService.Setup(result.Id);
                    if (setupResult)
                    {
                        DeviceWatcherHandler(name, result.Id);
                        return;
                    }
                    else
                    {
                        MessageBox.Show(
                            "Fatal error during device setup!",
                            "Setup Error",
                            MessageBoxButtons.OK,
                            MessageBoxIcon.Error);
                    }
                }
            }
        }
Esempio n. 2
0
 /// <summary>
 /// Evento richiamato al collegamento di un nuovo dispositivo USB
 /// 
 /// Controlla se il dispositivo presenta l'installazione del sistema di sicurezza
 /// 1 - nel caso negativo richiede la conferma per procedere con l'installazione
 /// 2 - nel caso affermativo avvia l'operazione di decrittazione
 /// </summary>
 /// <param name="name">Nome della periferica. Esempio C:, D:, E:, F:, etc...</param>
 void OnDeviceAdded(string name)
 {
     var idService = new Services.DeviceIdentificationService(name);
     var result = idService.Identify();
     if(result.Ok)
     {
         // Avvia il watcher
         DeviceWatcherHandler(name, result.Id);
         return;
     }
     else
     {
         if (result.FileExists && string.IsNullOrEmpty(result.Id))
         {
             // Il protocollo ss è stato installato sul dispositivo
             // ma risulta corroto, non possiamo dedurre niente dallo stato corrente
             // Errore fatale, Il dispositivo è inutilizzabile
             MessageBox.Show(
                 "The Device's ID is invalid! Cannot access Device.",
                 "USB Error",
                 MessageBoxButtons.OK,
                 MessageBoxIcon.Error
                 );
             return;
         }
         else if (result.FileExists == false)
         {
             // Il dispositivo non presenta alcun modulo ss installato
             if (MessageBox.Show(
                "Would you like to setup Security System on this USB Device?",
                "Configure USB Device?",
                MessageBoxButtons.YesNo,
                MessageBoxIcon.Question
                ) == DialogResult.Yes)
             {
                 var setupService = new Services.DeviceSetupService(idService.Filename);
                 var setupResult = setupService.Setup();
                 if (setupResult)
                 {
                     DeviceWatcherHandler(name, setupService.Id);
                     return;
                 }
                 else
                     MessageBox.Show(
                    "Fatal error during device setup!",
                    "Setup Error",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error);
             }
         }
         else if (result.FileExists && result.EntryExists == false)
         {
             // Non sei il propretario del dispositivo
             // Inseriscilo nel database e in seguito chiedi la chiave di accesso
             var setupService = new Services.DeviceSetupService(idService.Filename);
             var setupResult = setupService.Setup(result.Id);
             if (setupResult)
             {
                 DeviceWatcherHandler(name, result.Id);
                 return;
             }
             else
                 MessageBox.Show(
                "Fatal error during device setup!",
                "Setup Error",
                MessageBoxButtons.OK,
                MessageBoxIcon.Error);
         }
     }
 }