예제 #1
0
        private string Lecture(string Chemin, bool Encryption)
        {
            try
            {
                FileStream fs     = new FileStream(Chemin, FileMode.Open, FileAccess.ReadWrite, FileShare.Read);
                byte[]     buffer = new byte[fs.Length];
                fs.Read(buffer, 0, (int)fs.Length);
                string Texte = System.Text.Encoding.ASCII.GetString(buffer);

                if (Encryption)
                {
                    Texte = DatabaseEncryption.Decrypter(Texte, m_MotDePasse);
                }

                fs.Dispose();
                return(Texte);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Data.ToString());
                return("");
            }
        }
예제 #2
0
        private bool InventaireUpdate(string Item, out int Quantite, out decimal Prix)
        {
            Quantite = -1;
            Prix     = 0.0M;
            string StrQuantiteInv;
            string StrPrixInv;
            int    QuantiteInv;

#if Encryption
            string StrInventaire = Lecture("Inventaire.txt", false); //Lis l'inventaire au complet et ne la decrypte pas
#else
            string StrInventaire = Lecture("Inventaire.txt");        //Lis l'inventaire au complet et ne la decrypte pas
#endif
            string[] Inventaire = StrInventaire.Split('\n');
            int      i          = Array.FindIndex(Inventaire, element => element.StartsWith(Item, StringComparison.Ordinal)); //position (index) de l'item en inventaire (evite de devoir decrypter chaque lignes de l'inventaire pour trouver le bon item)
            if (i > 0 && i <= Int32.Parse(Inventaire[0]))                                                                     //Verifie que l'item est enregistre en inventaire
            {
                //Ecriture(DatabaseEncryption.Encryter((Int32.Parse(DatabaseEncryption.Decrypter(Lecture("inventaire.txt", false).Split('\n')[Int32.Parse(Lecture("inventaire.txt", false).Split('\n')[Array.FindIndex(Lecture("inventaire.txt", false).Split('\n'), element => element.StartsWith(Item, StringComparison.Ordinal))].Split('-').Last())], m_MotDePasse)) - 1).ToString(), m_MotDePasse), "Inventaire.txt", FileMode.Append, false);
#if Encryption
                StrQuantiteInv = DatabaseEncryption.Decrypter(Inventaire[Int32.Parse(Inventaire[i].Split('-').Last())], m_MotDePasse);
                if (StrQuantiteInv == null)
                {
                    MessageBox.Show("Mauvais mot de passe"); //Message d'erreur generique
                    return(false);
                }
                StrPrixInv = DatabaseEncryption.Decrypter(Inventaire[Int32.Parse(Inventaire[i].Split('-').Last()) + Int32.Parse(Inventaire[0])], m_MotDePasse);
#else
                StrQuantiteInv = Inventaire[Int32.Parse(Inventaire[i].Split('-').Last())];
                StrPrixInv     = Inventaire[Int32.Parse(Inventaire[i].Split('-').Last()) + Int32.Parse(Inventaire[0])];
#endif


                if (!Int32.TryParse(StrQuantiteInv, out QuantiteInv))
                {
                    MessageBox.Show("Erreur lors de la recuperation de la quantite en inventaire"); //Message d'erreur generique
                    return(false);
                }
                if (!Decimal.TryParse(StrPrixInv, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out Prix))
                {
                    MessageBox.Show("Erreur lors de la recuperation du prix en inventaire"); //Message d'erreur generique
                    return(false);
                }
            }
            else
            {
                MessageBox.Show("Item introuvable dans l'inventaire"); //Message d'erreur generique
                return(false);
            }
            QuantiteInv--;
            if (QuantiteInv < 0)
            {
                MessageBox.Show("Inventaire insuffisant");
                return(false);
            }
            Quantite = QuantiteInv;
#if Encryption
            Inventaire[Int32.Parse(Inventaire[i].Split('-').Last())] = DatabaseEncryption.Encryter(QuantiteInv.ToString(), m_MotDePasse);
#else
            Inventaire[Int32.Parse(Inventaire[i].Split('-').Last())] = QuantiteInv.ToString();
#endif

            StrInventaire = String.Join("\n", Inventaire);
#if Encryption
            Ecriture(StrInventaire, "Inventaire.txt", FileMode.Create, false);
#else
            Ecriture(StrInventaire, "Inventaire.txt", FileMode.Create);
#endif
            return(true);
        }