public static bool ConnectFile(string nativeSystemId, ResourcePath nativeResourcePath, out IResourceAccessor result) { IRemoteResourceInformationService rris = ServiceRegistration.Get<IRemoteResourceInformationService>(); result = null; bool isFileSystemResource; bool isFile; string resourcePathName; string resourceName; DateTime lastChanged; long size; if (!rris.GetResourceInformation(nativeSystemId, nativeResourcePath, out isFileSystemResource, out isFile, out resourcePathName, out resourceName, out lastChanged, out size) || !isFile) return false; result = new RemoteFileResourceAccessor(nativeSystemId, nativeResourcePath, resourcePathName, resourceName, lastChanged, size); return true; }
public static bool ConnectFile(string nativeSystemId, ResourcePath nativeResourcePath, out IResourceAccessor result) { IRemoteResourceInformationService rris = ServiceRegistration.Get <IRemoteResourceInformationService>(); result = null; bool isFileSystemResource; bool isFile; string resourcePathName; string resourceName; DateTime lastChanged; long size; if (!rris.GetResourceInformation(nativeSystemId, nativeResourcePath, out isFileSystemResource, out isFile, out resourcePathName, out resourceName, out lastChanged, out size) || !isFile) { return(false); } result = new RemoteFileResourceAccessor(nativeSystemId, nativeResourcePath, resourcePathName, resourceName, lastChanged, size); return(true); }
public bool TryCreateResourceAccessor(string path, out IResourceAccessor result) { string nativeSystemId; ResourcePath nativeResourcePath; if (!TryExtractSystemAndPath(path, out nativeSystemId, out nativeResourcePath)) { throw new InvalidDataException("Path '{0}' is not a valid path for remote resource provider", path); } ISystemResolver systemResolver = ServiceRegistration.Get <ISystemResolver>(); SystemName nativeSystem = systemResolver.GetSystemNameForSystemId(nativeSystemId); if (nativeSystem == null) { throw new IllegalCallException("Cannot create resource accessor for resource location '{0}' at system '{1}': System is not available", nativeResourcePath, nativeSystemId); } // Try to access resource locally. This might work if we have the correct resource providers installed. if (nativeSystem.IsLocalSystem() && nativeResourcePath.IsValidLocalPath && nativeResourcePath.TryCreateLocalResourceAccessor(out result)) { return(true); } IFileSystemResourceAccessor fsra; if (RemoteFileSystemResourceAccessor.ConnectFileSystem(nativeSystemId, nativeResourcePath, out fsra)) { result = fsra; return(true); } IResourceAccessor ra; if (RemoteFileResourceAccessor.ConnectFile(nativeSystemId, nativeResourcePath, out ra)) { result = ra; return(true); } result = null; return(false); }