public virtual void LoadToggleData(StorageDirectory holderAppDataFolder) { DataFolder = new StorageDirectory(holderAppDataFolder.RelativePathParts.Merge(Id)); if (FileStorageManager.Instance.DataState == DataActualityState.Updated || FileStorageManager.Instance.UseLocalMode) { return; } AsyncHelper.RunSync(async() => { var templateVersionFile = new StorageFile(DataFolder.RelativePathParts.Merge("version.txt")); if (!await templateVersionFile.Exists(true) || await templateVersionFile.IsOutOfDate()) { await DataFolder.Allocate(false); if (await DataFolder.Exists(true)) { var templateFiles = (await DataFolder.GetRemoteFiles()).ToList(); foreach (var templateFile in templateFiles) { if (templateFile.Name.Contains(".rar")) { var archiveFolder = new ArchiveDirectory(DataFolder.RelativePathParts.Merge(templateFile.NameOnly)); await archiveFolder.Download(); } else { await templateFile.Download(); } } } } }); }
public string GetMasterPath() { var masterFilePath = _contentsFolder.GetLocalFiles().FirstOrDefault(file => String.Equals(file.Extension, ".PPTX", StringComparison.OrdinalIgnoreCase)); if (masterFilePath == null) { if (!_templatesFolder.ExistsLocal()) { AsyncHelper.RunSync(() => _templatesFolder.Allocate(false)); } masterFilePath = new StorageFile(_templatesFolder.RelativePathParts.Merge(GetMasterFileName())); var lastUpdateInfoFilePath = Path.Combine(_templatesFolder.LocalPath, "last_update_info.txt"); if (!masterFilePath.ExistsLocal() || !File.Exists(lastUpdateInfoFilePath) || File.GetLastWriteTime(LogoFile.LocalPath) > File.GetLastWriteTime(lastUpdateInfoFilePath)) { Task.Run(async() => { await masterFilePath.Download(true); }).Wait(); File.WriteAllText(lastUpdateInfoFilePath, DateTime.Now.ToString(CultureInfo.InvariantCulture)); } } return(masterFilePath.LocalPath); }