public void Startup() { if (BaseFolder.EndsWith(".iro", StringComparison.InvariantCultureIgnoreCase)) { System.Diagnostics.Debug.WriteLine(" Loading archive " + BaseFolder); _archive = new IrosArc(BaseFolder); ScanChunk(); } }
public override int GetHashCode() { unchecked { var result = BaseFolder.GetHashCode(); result = (result * 397) ^ FileName.GetHashCode(); result = (result * 397) ^ Site.GetHashCode(); return(result); } }
public void GetSubFolder(BaseFolder folder, IList <string> paths) { paths.Add(folder.GetFullHashPath()); var type = folder.GetType(); var properties = type.GetProperties() .Where(x => x.CustomAttributes.Any(y => y.AttributeType == typeof(FolderAttribute))).ToList(); foreach (var property in properties) { GetSubFolder((BaseFolder)property.GetValue(folder), paths); } }
private void CreateFolderStructure() { var pathParts = BaseFolder.Split(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); var lastPathPart = pathParts.LastOrDefault(); if (!string.Equals(lastPathPart, "taskdata", StringComparison.OrdinalIgnoreCase)) { BaseFolder = Path.Combine(BaseFolder, "TASKDATA"); } Directory.CreateDirectory(BaseFolder); }
public TaskData(IEnumerable<Task> tasks, IEnumerable<Folder> folders, BaseFolder currentFolder, string filter) { Contract.Requires(tasks != null, "tasks"); Contract.Requires(null != folders, "folders"); Contract.Requires(null != currentFolder, "currentFolder"); folders.ForEach(folder => AddFolder(folder)); m_userFolders = new ReadOnlyCollection<Folder>(m_folderList); tasks.ForEach(task => AddTask(task)); CurrentFolder = currentFolder; m_filter = filter; refreshAllFolders(); }
public void GetSubFolder(BaseFolder folder, IList <string> paths) { _logger.LogInformation($"{nameof(FileService)}.{nameof(GetSubFolder)}.Start"); paths.Add(folder.GetFullHashPath()); var type = folder.GetType(); var properties = type.GetProperties() .Where(x => x.CustomAttributes.Any(y => y.AttributeType == typeof(FolderAttribute))).ToList(); foreach (var property in properties) { GetSubFolder((BaseFolder)property.GetValue(folder), paths); } _logger.LogInformation($"{nameof(FileService)}.{nameof(GetSubFolder)}.End"); }
public static async Task DeleteStuckFiles() { var undeletedDir = GetUndeletedFilesDirectory(); try { // Remove undeleted files var undeletedFolder = await StorageFolder.GetFolderFromPathAsync(undeletedDir); foreach (var storageFile in await undeletedFolder.GetFilesAsync()) { try { var badFilePath = await FileIO.ReadTextAsync(storageFile); await SafeFileDelete(badFilePath); await SafeFileDelete(storageFile); } catch { // Continue } } // Remove failed downloads var queryOptions = new QueryOptions(CommonFileQuery.DefaultQuery, new[] { DownloadableViewModelBase.DownloadExtension }); queryOptions.FolderDepth = FolderDepth.Deep; var storageFiles = (await BaseFolder.CreateFileQueryWithOptions(queryOptions).GetFilesAsync()) .Concat(await AudioFolder.CreateFileQueryWithOptions(queryOptions).GetFilesAsync()); foreach (var storageFile in storageFiles) { try { await SafeFileDelete(storageFile); } catch { // Continue } } } catch { // Do nothing } }
private IEnumerable <string> AlternativeModuleScan(PsRequest request) { var psModulePath = Environment.GetEnvironmentVariable("PSModulePath") ?? ""; IEnumerable <string> paths = psModulePath.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); // add assumed paths just in case the environment variable isn't really set. try { paths = paths.ConcatSingleItem(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), @"WindowsPowerShell\v1.0\Modules")); } catch { // skip the folder if it's not valid } try { paths = paths.ConcatSingleItem(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), @"WindowsPowerShell\Modules")); } catch { // skip the folder if it's not valid } if (!string.IsNullOrWhiteSpace(BaseFolder) && BaseFolder.DirectoryExists()) { paths = paths.ConcatSingleItem(BaseFolder); } paths = paths.Distinct(new PathEqualityComparer(PathCompareOption.Full)).ToArray(); var moduleFolders = paths.Where(each => each.DirectoryExists()).SelectMany(each => Directory.EnumerateDirectories(each).Where(dir => !_exclusionList.Contains(Path.GetFileName(dir)))); var modules = moduleFolders.Select(module => { var moduleManifest = Path.Combine(module, Path.GetFileName(module) + ".psd1"); if (File.Exists(moduleManifest)) { return(moduleManifest); } var versions = Directory.EnumerateDirectories(module).Select(dir => new { folder = dir, ver = (FourPartVersion)Path.GetFileName(dir) }).Where(each => each.ver > 0L).OrderByDescending(each => each).Select(each => each.folder); return(versions.Select(version => Path.Combine(version, Path.GetFileName(Path.GetFileName(module)) + ".psd1")).FirstOrDefault(File.Exists)); }).WhereNotNull(); return(modules.Where(moduleName => File.ReadAllText(moduleName).IndexOf("PackageManagementProviders", StringComparison.OrdinalIgnoreCase) > -1)); }
/// <summary> /// Creates Quran root directory. /// </summary> /// <returns></returns> public async static Task MakeQuranDirectory(ScreenInfo qsi) { if (qsi == null) { throw new ArgumentNullException(nameof(qsi)); } if (BaseFolder == null) { BaseFolder = ApplicationData.Current.LocalFolder; var quranBaseFolder = await BaseFolder.TryGetItemAsync(QuranBase); if (quranBaseFolder == null) { quranBaseFolder = await BaseFolder.CreateFolderAsync(QuranBase); } BaseFolder = quranBaseFolder as StorageFolder; } if (BaseFolder == null) { throw new InvalidOperationException("Unable to create a base folder."); } if (ImageFolder == null) { var imageFolderName = "width" + qsi.GetWidthParam(); var quranBaseFolder = await BaseFolder.TryGetItemAsync(imageFolderName); if (quranBaseFolder == null) { quranBaseFolder = await BaseFolder.CreateFolderAsync(imageFolderName); } ImageFolder = quranBaseFolder as StorageFolder; } if (ImageFolder == null) { throw new InvalidOperationException("Unable to create a base image folder."); } }
private IEnumerable <string> AlternativeModuleScan(PsRequest request) { var psModulePath = Environment.GetEnvironmentVariable("PSModulePath") ?? ""; IEnumerable <string> paths = psModulePath.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); var sysRoot = Environment.GetEnvironmentVariable("systemroot"); var userProfile = Environment.GetEnvironmentVariable("userprofile"); // add assumed paths just in case the environment variable isn't really set. paths = paths.ConcatSingleItem(Path.Combine(sysRoot, @"system32\WindowsPowerShell\v1.0\Modules")); paths = paths.ConcatSingleItem(Path.Combine(userProfile, @"Documents\WindowsPowerShell\Modules")); if (!string.IsNullOrWhiteSpace(BaseFolder) && BaseFolder.DirectoryExists()) { paths = paths.ConcatSingleItem(BaseFolder); } paths = paths.Distinct().ToArray(); return(paths.Where(each => each.DirectoryExists()).SelectMany(each => Directory.EnumerateDirectories(each).Where(dir => !_exclusionList.Contains(Path.GetFileName(dir))), (p, child) => Path.Combine(child, Path.GetFileName(child) + ".psd1")).Where(moduleName => File.Exists(moduleName) && File.ReadAllText(moduleName).IndexOf("OneGetProviders", StringComparison.OrdinalIgnoreCase) > -1)); }
public void DownloadAsync(MediaType mediaType) { if (ExecutionStatus == ExecutionStatus.Deleted) { Delete(); return; } // Now Download Async calls this // UpdateStatus(DownloadState.DownloadStart, 0.0); MediaType = mediaType; BaseFolder = KnownFolders.VideosLibrary; ProviderFolder = BaseFolder.GetFolder(Enum.GetName(typeof(ContentProviderType), YoutubeUrl.Provider)); VideoFolder = ProviderFolder.GetFolder(DownloadHelper.GetLegalPath(ChannelName)); if (MediaType == MediaType.Audio) { var audioFolder = KnownFolders.MusicLibrary; ProviderFolder = audioFolder.GetFolder(Enum.GetName(typeof(ContentProviderType), YoutubeUrl.Provider)); DownloadFolder = ProviderFolder.GetFolder(DownloadHelper.GetLegalPath(ChannelName)); } var videoInCache = false; if (!String.IsNullOrEmpty(Title)) { VideoExtension = ".mp4"; var videoFile1 = DownloadHelper.GetLegalPath(Title) + VideoExtension; var storageFile1 = VideoFolder.CreateFile(videoFile1); if (!CacheManager.Instance.NeedsDownload(YoutubeUrl.VideoId, storageFile1)) { videoInCache = true; } } if (!videoInCache) { var videoInfos = DownloadHelper.GetDownloadUrlsAsync(Uri); VideoInfo videoInfo = null; foreach (VideoInfo info in videoInfos) { if (info.VideoType == VideoType.Mp4 && info.Resolution == 360) { videoInfo = info; break; } } if (videoInfo == null) { UpdateStatus(DownloadState.Error); return; } Title = videoInfo.Title; VideoExtension = videoInfo.VideoExtension; var videoFile = DownloadHelper.GetLegalPath(Title) + VideoExtension; UpdateStatus(DownloadState.TitleChanged, Percentage); var storageFile = VideoFolder.CreateFile(videoFile); if (CacheManager.Instance.NeedsDownload(YoutubeUrl.VideoId, storageFile)) { CacheManager.Instance.SetFinished(YoutubeUrl.VideoId, storageFile.ToString(), false); DownloadHelper.DownloadToFileAsync(this, videoInfo.DownloadUri, storageFile, OnYoutubeLoading); CacheManager.Instance.SetFinished(YoutubeUrl.VideoId, storageFile.ToString(), true); if (OnEntryDownloadStatusChange != null) { OnEntryDownloadStatusChange(this, DownloadState.UpdateCache, Percentage); } } } DownloadState = DownloadState.DownloadFinish; //UpdateStatus(DownloadState, (MediaType == MediaType.Audio) ? 50 : 100); if (MediaType == MediaType.Audio) { Percentage = 50.0; var converter = new AudioConverter(this, OnAudioConversionStatusChange); converter.ConvertToMp3(); } else if (OnEntryDownloadStatusChange != null) { UpdateStatus(DownloadState.Ready); } }
public CustomBackgroundFolder(BaseFolder rootFolder) : base("Custom", rootFolder) { }
public void CreateFolder(BaseFolder folder, string mediaFolder) { var path = Path.Combine(mediaFolder, folder.GetFullHashPath()); Directory.CreateDirectory(path); }
public void SetFolder(BaseFolder folder) { currentFolder = folder; _renderer.Render(currentFolder, ChatId); }
private async void Init() { BookFolder = await BaseFolder.CreateFolderAsync("txt", CreationCollisionOption.OpenIfExists); ThemeFolder = await BaseFolder.CreateFolderAsync("theme", CreationCollisionOption.OpenIfExists); }
public void RenameFolder(Folder folder, string newName) { Contract.Requires(null != folder, "folder"); Contract.Requires(m_folderList.Contains(folder), "folder"); Contract.Requires(newName == newName.SuperTrim(), "newName"); Contract.Requires(Folder.IsValidFolderName(newName), "newName"); if (folder.Name == newName) { // no-op } else if (folder.Name.EasyEquals(newName)) { // just a case change -> easy // make darn sure we haven't broken our logic -> should only have folder that matches w/ case Debug.Assert(m_folderList.Count(existing => existing.Name.EasyEquals(newName)) == 1); folder.UpdateName(newName); } else if (m_folderList.Count(existing => existing.Name.EasyEquals(newName)) > 0) { Debug.Assert(m_folderList.Count(existing => existing.Name.EasyEquals(newName)) == 1); var target = m_folderList.First(existing => existing.Name.EasyEquals(newName)); // move existing items to target folder m_taskList .Where(task => task.Folder == folder) .ForEach(task => task.Folder = target); // nuke existing folder m_folderList.Remove(folder); if (m_currentFolder == folder) { CurrentFolder = target; } } else { // this is an entirely novel name. Cool! // make darn sure we haven't broken our logic -> should have no folder with matching name Debug.Assert(m_folderList.Count(existing => existing.Name.EasyEquals(newName)) == 0); folder.UpdateName(newName); } refreshAllFolders(); }
public DefaultFolder(BaseFolder rootFolder) : base("Default", rootFolder) { Smalls = new SmallDefaultSizeFolder(this); Larges = new LargeDefaultSizeFolder(this); Originals = new OriginalSizeFolder(this); }
protected BackgroundSizeFolders(string folderName, BaseFolder rootFolder) : base(folderName, rootFolder) { Originals = new OriginalSizeFolder(this); Mobiles = new MobileBackgroundSizeFolder(this); }
protected AvatarSizeFolders(string folderName, BaseFolder rootFolder) : base(folderName, rootFolder) { Smalls = new SmallAvatarSizeFolder(this); Larges = new LargeAvatarSizeFolder(this); Originals = new OriginalSizeFolder(this); }
public StandardAvatarFolder(BaseFolder rootFolder) : base("Standard", rootFolder) { }
public CustomAvatarFolder(BaseFolder rootFolder) : base("Custom", rootFolder) { }
public AvatarFolder(BaseFolder rootFolder) : base("Avatar", rootFolder) { Customs = new CustomAvatarFolder(this); Standards = new StandardAvatarFolder(this); }
private IEnumerable <string> AlternativeModuleScan( PsRequest request, Version requiredVersion, Version minimumVersion, Version maximumVersion, ProviderOption providerOption = ProviderOption.LatestVersion) { var psModulePath = Environment.GetEnvironmentVariable("PSModulePath") ?? ""; IEnumerable <string> paths = psModulePath.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); // add assumed paths just in case the environment variable isn't really set. try { #if CORECLR paths = paths.ConcatSingleItem(Path.Combine(Environment.GetEnvironmentVariable("windir"), "system32", @"WindowsPowerShell\v1.0\Modules")); #else paths = paths.ConcatSingleItem(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), @"WindowsPowerShell\v1.0\Modules")); #endif } catch { // skip the folder if it's not valid } try { #if CORECLR paths = paths.ConcatSingleItem(Path.Combine(Environment.GetEnvironmentVariable("userprofile"), "documents", @"WindowsPowerShell\Modules")); #else paths = paths.ConcatSingleItem(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), @"WindowsPowerShell\Modules")); #endif } catch { // skip the folder if it's not valid } if (!string.IsNullOrWhiteSpace(BaseFolder) && BaseFolder.DirectoryExists()) { paths = paths.ConcatSingleItem(BaseFolder); } var moduleFolders = paths.Distinct(new PathEqualityComparer(PathCompareOption.Full)).Where(each => each.DirectoryExists()).SelectMany(each => Directory.EnumerateDirectories(each).Where(dir => !_exclusionList.Contains(Path.GetFileName(dir)))); foreach (var module in moduleFolders) { var moduleManifest = Path.Combine(module, Path.GetFileName(module) + ".psd1"); if (File.Exists(moduleManifest)) { //The version check is defered in the GetPackageManagementModules() because we do not know the version without looking into the content. yield return(moduleManifest); } //The following are the cases where there are multiple modules installed on the system. The file folder is the module version. var selectedVersions = Directory.EnumerateDirectories(module).Select(dir => new { folder = dir, ver = (FourPartVersion)Path.GetFileName(dir) }).Where(each => each.ver > 0L); if (requiredVersion != null) { var version = selectedVersions.Where(each => each.ver == (FourPartVersion)requiredVersion).Select(each => each.folder).FirstOrDefault(); if (version != null) { var file = Path.Combine(version, Path.GetFileName(Path.GetFileName(module)) + ".psd1"); if (File.Exists(file)) { yield return(file); } } } if (minimumVersion != null) { selectedVersions = selectedVersions.Where(each => each.ver >= (FourPartVersion)minimumVersion); } if (maximumVersion != null) { selectedVersions = selectedVersions.Where(each => each.ver <= (FourPartVersion)maximumVersion); } var results = (providerOption == PackageManagementService.ProviderOption.AllProvider) ? selectedVersions.Select(version => Path.Combine(version.folder, Path.GetFileName(Path.GetFileName(module)) + ".psd1")).Where(File.Exists) : new[] { selectedVersions.OrderByDescending(each => each.ver) .Select(version => Path.Combine(version.folder, Path.GetFileName(Path.GetFileName(module)) + ".psd1")) .FirstOrDefault(File.Exists) }; foreach (var result in results.WhereNotNull()) { yield return(result); } } }
public BackgroundFolder(BaseFolder rootFolder) : base("Background", rootFolder) { Customs = new CustomBackgroundFolder(this); Standards = new StandardBackgroundFolder(this); }
public SmallDefaultSizeFolder(BaseFolder rootFolder) : base("Small", rootFolder) { Size = new Size { Height = 100, Width = 100 }; }
public LargeDefaultSizeFolder(BaseFolder rootFolder) : base("Large", rootFolder) { Size = new Size { Height = 600, Width = 600 }; }
public StandardBackgroundFolder(BaseFolder rootFolder) : base("Standard", rootFolder) { }
public async Task <StorageFile> CreateDatabaseAsync() { return(await BaseFolder.CreateFileAsync("zodream.db", CreationCollisionOption.OpenIfExists)); }
public MobileBackgroundSizeFolder(BaseFolder rootFolder) : base("Mobile", rootFolder) { Size = new Size { Height = 200, Width = 512 }; }