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