public override ILocation GetLocation(string path) {
            var parsedPath = Path.ParseWithContainer(path);

            // strip off the azure:
            /*
            if (parsedPath.Scheme != string.Empty && parsedPath.Scheme != AzureDriveInfo.ProviderScheme) {
                return AzureLocation.InvalidLocation;
            }*/

            // is this just a empty location?
            if (string.IsNullOrEmpty(parsedPath.HostAndPort)) {
                NamespaceProvider = NamespaceProvider ?? this;
                return AzureNamespace;
            }



            var byAccount = AddingDrives.Union(Drives).Select(each => each as AzureDriveInfo).Where(each =>  each.HostAndPort == parsedPath.HostAndPort || each.ActualHostAndPort == parsedPath.HostAndPort);

            if (!byAccount.Any())
            {
                return AzureLocation.UnknownLocation;
            }

            var byContainer = byAccount.Where(each => each.ContainerName == parsedPath.Container);
            var byFolder = byContainer.Where(each => each.Path.IsSubpath(parsedPath)).OrderByDescending(each => each.RootPath.Length);

            var result = byFolder.FirstOrDefault() ?? byContainer.FirstOrDefault() ?? byAccount.FirstOrDefault();

            

            return new AzureLocation(result, parsedPath, null);
        }
        public override ILocation GetLocation(string path)
        {
            var parsedPath = Path.ParseWithContainer(path);

            // strip off the azure:

            /*
             * if (parsedPath.Scheme != string.Empty && parsedPath.Scheme != AzureDriveInfo.ProviderScheme) {
             *  return AzureLocation.InvalidLocation;
             * }*/

            // is this just a empty location?
            if (string.IsNullOrEmpty(parsedPath.HostAndPort))
            {
                NamespaceProvider = NamespaceProvider ?? this;
                return(AzureNamespace);
            }



            var byAccount = AddingDrives.Union(Drives).Select(each => each as AzureDriveInfo).Where(each => each.HostAndPort == parsedPath.HostAndPort || each.ActualHostAndPort == parsedPath.HostAndPort);

            if (!byAccount.Any())
            {
                return(AzureLocation.UnknownLocation);
            }

            var byContainer = byAccount.Where(each => each.ContainerName == parsedPath.Container);
            var byFolder    = byContainer.Where(each => each.Path.IsSubpath(parsedPath)).OrderByDescending(each => each.RootPath.Length);

            var result = byFolder.FirstOrDefault() ?? byContainer.FirstOrDefault() ?? byAccount.FirstOrDefault();



            return(new AzureLocation(result, parsedPath, null));
        }