public static async Task <IPartition> GetPartitionByName(this IDisk disk, string name) { var partitions = await disk.GetPartitions(); var matching = from p in partitions where string.Equals(p.Name, name, StringComparison.InvariantCultureIgnoreCase) select p; return(matching.FirstOrDefault()); }
public static async Task <IList <IVolume> > GetVolumes(this IDisk self) { var partitions = await self.GetPartitions(); return(await partitions .ToObservable() .Select(x => Observable.FromAsync(x.GetVolume)) .Merge(1) .Where(x => x != null) .ToList()); }
public override async Task <IPartition> GetSystemPartition() { var partitions = await disk.GetPartitions(); var systemPartition = partitions.First(); if (systemPartition.Root == null) { await systemPartition.AssignDriveLetter(); } return(systemPartition); }
private static async Task <bool> IsDeviceDisk(IDisk disk) { var hasCorrectSize = HasCorrectSize(disk); if (!hasCorrectSize) { return(false); } var diskNames = new[] { "VEN_QUALCOMM&PROD_MMC_STORAGE", "VEN_MSFT&PROD_PHONE_MMC_STOR" }; var hasCorrectDiskName = diskNames.Any(name => disk.UniqueId.Contains(name)); if (hasCorrectDiskName) { return(true); } var partitions = await disk.GetPartitions(); var names = partitions.Select(x => x.Name); var lookup = new[] { "EFIESP", "TZAPPS", "DPP" }; return(lookup.IsSubsetOf(names)); }
public static async Task <IPartition> GetPartitionByNumber(this IDisk disk, int number) { var partitions = await disk.GetPartitions(); return(partitions.FirstOrDefault(x => x.Number == number)); }
public static async Task <IPartition> GetPartitionByNumber(this IDisk disk, int number) { var partitions = await disk.GetPartitions(); return(partitions.OrderBy(x => x.Number).ToList()[number - 1]); }