//*********************************************************************************************************************** //*********************************************************************************************************************** /// <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 //------------------------------------------------------------------------------------------------------------------- }
//*********************************************************************************************************************** //*********************************************************************************************************************** /// <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)); //------------------------------------------------------------------------------------------------------------------- }