예제 #1
0
        //***********************************************************************************************************************

        //***********************************************************************************************************************
        /// <summary>
        /// Charge dans le cache des données exploitables.
        /// </summary>
        /// <param name="FileName">Nom de base du fichier.</param>
        /// <param name="ExpireDate">Date d'expiration.</param>
        /// <param name="Entry">Objet <b>AppCacheFile</b>.</param>
        /// <returns><b>True</b> si du cahce a été trouvé, sinon <b>False</b>.</returns>
        //-----------------------------------------------------------------------------------------------------------------------
        public static bool Find(string FileName, DateTime ExpireDate, out AppCacheFile Entry)
        {
            //-------------------------------------------------------------------------------------------------------------------
            #region             // Implémentation de la Procédure
            //-------------------------------------------------------------------------------------------------------------------

            //-------------------------------------------------------------------------------------------------------------------
            Entry = AppCacheFile.Empty;
            //-------------------------------------------------------------------------------------------------------------------

            //-------------------------------------------------------------------------------------------------------------------
            try
            {
                //---------------------------------------------------------------------------------------------------------------
                if (!NetworkInterface.GetIsNetworkAvailable())
                {
                    ExpireDate = DateTime.MinValue;
                }
                //---------------------------------------------------------------------------------------------------------------

                //---------------------------------------------------------------------------------------------------------------
                using (var Iso = IsolatedStorageFile.GetUserStoreForApplication())
                {
                    //-----------------------------------------------------------------------------------------------------------
                    if (Iso.DirectoryExists("AppCache"))
                    {
                        //-------------------------------------------------------------------------------------------------------
                        // On recherche dans le Cache
                        //-------------------------------------------------------------------------------------------------------
                        foreach (string FileID in Iso.GetFileNames("AppCache/*-" + FileName))
                        {
                            //---------------------------------------------------------------------------------------------------
                            // A t'on le bon format de fichier ?
                            //---------------------------------------------------------------------------------------------------
                            if (FileID.Length > 14)
                            {
                                //-----------------------------------------------------------------------------------------------
                                string FileDate = FileID.Substring(0, 14);
                                //-----------------------------------------------------------------------------------------------

                                //-----------------------------------------------------------------------------------------------
                                // On contrôle la validité des données
                                //-----------------------------------------------------------------------------------------------
                                DateTime Date = DateTime.MinValue;

                                DateTime.TryParseExact(FileDate, "yyyyMMddHHmmss", null,
                                                       DateTimeStyles.None, out Date);

                                TimeSpan FileValidity = DateTime.Now.Subtract(Date);
                                //-----------------------------------------------------------------------------------------------

                                //-----------------------------------------------------------------------------------------------
                                string CacheFile = "AppCache/" + FileID;

                                using (var File = Iso.OpenFile(CacheFile, FileMode.Open))
                                {
                                    using (var Sr = new StreamReader(File))
                                    {
                                        Entry = new AppCacheFile()
                                        {
                                            Name    = "AppCache/" + FileID,
                                            Date    = Date,
                                            Content = Sr.ReadToEnd(),
                                        };

                                        return((!Entry.IsEmpty) && (Date >= ExpireDate));
                                    }
                                }
                                //-----------------------------------------------------------------------------------------------
                            }
                            //---------------------------------------------------------------------------------------------------
                        }
                        //-------------------------------------------------------------------------------------------------------
                    }
                    //-----------------------------------------------------------------------------------------------------------
                }
                //---------------------------------------------------------------------------------------------------------------
            }
            //-------------------------------------------------------------------------------------------------------------------
            catch {}
            //-------------------------------------------------------------------------------------------------------------------

            //-------------------------------------------------------------------------------------------------------------------
            return(false);

            //-------------------------------------------------------------------------------------------------------------------

            //-------------------------------------------------------------------------------------------------------------------
            #endregion
            //-------------------------------------------------------------------------------------------------------------------
        }
예제 #2
0
        //***********************************************************************************************************************

        //***********************************************************************************************************************
        /// <summary>
        /// Charge dans le cache des données exploitables.
        /// </summary>
        /// <param name="FileName">Nom de base du fichier.</param>
        /// <param name="Entry">Objet <b>AppCacheFile</b>.</param>
        /// <returns><b>True</b> si du cahce a été trouvé, sinon <b>False</b>.</returns>
        //-----------------------------------------------------------------------------------------------------------------------
        public static bool Find(string FileName, out AppCacheFile Entry)
        {
            //-------------------------------------------------------------------------------------------------------------------
            return(Find(FileName, DateTime.MinValue, out Entry));
            //-------------------------------------------------------------------------------------------------------------------
        }