示例#1
0
        /// <summary>
        /// Charge un fichier de mot de passe, ou le créer si aucun
        /// </summary>
        /// <returns>les erreurs à afficher</returns>
        public async Task <string> Valider()
        {
            var retour = Validate();

            if (string.IsNullOrWhiteSpace(retour))
            {
                //si le fichier est à créer
                if (ModeSelect.Equals(ModeOuvertureEnum.FichierACreer))
                {
                    PasswordBusiness.Password = MotDePasseA;
                    await PasswordBusiness.Save();
                }

                if (ModeSelect.Equals(ModeOuvertureEnum.FichierDejaExistant))
                {
                    if (!await PasswordBusiness.Load(MotDePasseA, true))
                    {
                        retour += ResourceLoader.GetForCurrentView("Errors").GetString("erreurOuvertureFichier");
                    }
                    else
                    {
                        if (ContexteAppli.IsCortanaActive)
                        {
                            await CortanaBusiness.CheckPassword();
                        }
                    }
                }
            }
            return(retour);
        }
示例#2
0
 public async void Current_DataChanged(ApplicationData sender, object args)
 {
     if (!string.IsNullOrWhiteSpace(PasswordBusiness.Password))
     {
         await PasswordBusiness.Load(PasswordBusiness.Password, true);
     }
 }
示例#3
0
        /// <summary>
        /// Tente d'ouvrir le fichier de mot de passe retourne null si ok sinon le message d'erreur
        /// </summary>
        /// <returns>le message d'erreur sinon null</returns>
        public async Task <string> OuvrirFichierPassword()
        {
            if (string.IsNullOrWhiteSpace(Password))
            {
                Password = "";
                return(ResourceLoader.GetForCurrentView("Errors").GetString("erreurChampsNonRemplis") + "\r\n");
            }


            if (!await PasswordBusiness.Load(Password, true))
            {
                Password = "";
                return(ResourceLoader.GetForCurrentView("Errors").GetString("erreurOuvertureFichier"));
            }
            IsLog = true;
            return(null);
        }
示例#4
0
        public async Task <string> Valider()
        {
            var retour = Validate();

            if (string.IsNullOrWhiteSpace(retour))
            {
                if (!await PasswordBusiness.Load(MotDePasse, true))
                {
                    retour += ResourceLoader.GetForCurrentView("Errors").GetString("erreurOuvertureFichier");
                }
                else
                {
                    await LancerRecherche();
                }
            }
            return(retour);
        }
示例#5
0
        /// <summary>
        /// Permet de vérifier si l'application peut s'autoLogger, s'autologue si possible, et lance la recherche
        /// </summary>
        /// <returns>true si à tout réussi à faire automatiquement</returns>
        public async Task <bool> LanceRechercheSansMotDePasse()
        {
            if (ContexteAppli.IsCortanaActive)
            {
                var mdp = await CortanaBusiness.GetPasswordUser();

                if (!string.IsNullOrWhiteSpace(mdp))
                {
                    if (await PasswordBusiness.Load(mdp, true))
                    {
                        await LancerRecherche();

                        return(true);
                    }
                }
            }
            return(false);
        }
示例#6
0
        /// <summary>
        /// Méthode se lancant lors de l'appel de cortana pour l'appli
        /// </summary>
        /// <param name="taskInstance"></param>
        public async void Run(IBackgroundTaskInstance taskInstance)
        {
            //lancement de cortana, récupération des objets nécéssaires
            _serviceDeferral       = taskInstance.GetDeferral();
            taskInstance.Canceled += (sender, reason) => _serviceDeferral?.Complete();
            var triggerDetails = taskInstance.TriggerDetails as AppServiceTriggerDetails;

            _voiceCommandServiceConnection = VoiceCommandServiceConnection.FromAppServiceTriggerDetails(triggerDetails);
            _voiceCommandServiceConnection.VoiceCommandCompleted += (sender, args) => _serviceDeferral?.Complete();
            var    identifiant = (await _voiceCommandServiceConnection.GetVoiceCommandAsync()).Properties["site"][0].ToLower();
            string message;
            var    openApp   = false;
            var    openTiles = false;
            var    tiles     = new List <VoiceCommandContentTile>();

            //Initialisation de l'appli
            await ContexteAppli.Initialize(false, null);

            //si le fichier existe
            if (await PasswordBusiness.DoesFileCypherExist())
            {
                //si cortana est autorisé
                if (ContexteAppli.IsCortanaActive)
                {
                    //récupération du mot de passe
                    var mdp = await CortanaBusiness.GetPasswordUser();

                    if (!string.IsNullOrWhiteSpace(mdp))
                    {
                        //chargement du fichier
                        if (await PasswordBusiness.Load(mdp, false))
                        {
                            tiles = CortanaBusiness.GetMotDePasseTile(identifiant, ContexteAppli.DossierMere);

                            if (tiles.Count == 0)
                            {
                                message = GetString("cortanaAucunIdentifiant");
                            }
                            else if (tiles.Count > 10)
                            {
                                message = GetString("cortanaPlusieursResultats");
                                openApp = true;
                            }
                            else
                            {
                                message   = GetString("cortanaIdentifiantsTrouves");
                                openTiles = true;
                            }
                        }
                        else
                        {
                            message = GetString("cortanaEchecFichier");
                            openApp = true;
                        }
                    }
                    else
                    {
                        message = GetString("cortanaEchecFichier");
                        openApp = true;
                    }
                }
                else
                {
                    message = GetString("cortanaLanceApp");
                    openApp = true;
                }
            }
            else
            {
                message = GetString("cortanaAucunIdentifiant");
            }

            var userPrompt = new VoiceCommandUserMessage
            {
                DisplayMessage = message,
                SpokenMessage  = message
            };

            if (openApp)
            {
                var response = VoiceCommandResponse.CreateResponse(userPrompt);
                response.AppLaunchArgument = identifiant;
                await _voiceCommandServiceConnection.RequestAppLaunchAsync(response);
            }
            else if (openTiles)
            {
                var response = VoiceCommandResponse.CreateResponse(userPrompt, tiles);
                await _voiceCommandServiceConnection.ReportSuccessAsync(response);
            }
            else
            {
                var response = VoiceCommandResponse.CreateResponse(userPrompt);
                await _voiceCommandServiceConnection.ReportSuccessAsync(response);
            }
        }