Example #1
0
        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());
        }
Example #2
0
        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());
        }
Example #3
0
        public override async Task <IPartition> GetSystemPartition()
        {
            var partitions = await disk.GetPartitions();

            var systemPartition = partitions.First();

            if (systemPartition.Root == null)
            {
                await systemPartition.AssignDriveLetter();
            }

            return(systemPartition);
        }
Example #4
0
        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));
        }
Example #5
0
        public static async Task <IPartition> GetPartitionByNumber(this IDisk disk, int number)
        {
            var partitions = await disk.GetPartitions();

            return(partitions.FirstOrDefault(x => x.Number == number));
        }
Example #6
0
        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]);
        }