public PackageDescriptor GetPackage(string path, IContext context, ProgressRecord progress) { path = path.ToLowerInvariant(); if (!_cache.ContainsKey(path)) { var events = new NullEvents(); context.WriteDebug("Loading " + path); if (null != progress) { progress.CurrentOperation = path; context.WriteProgress(progress); } try { var package = _drive.Application.LoadPackage(path, events, true); var descriptor = new PackageDescriptor(package, path); _cache.Add(path, descriptor); } catch (Exception e) { /*if (!context.Force) * { * throw; * }*/ _cache.Add(path, null); var errorRecord = new ErrorRecord(e, "PackageCache.GetPackage", ErrorCategory.ReadError, path); context.WriteError(errorRecord); } finally { context.WriteDebug(events.ToString()); context.WriteDebug("Done loading " + path); } } return(_cache[path]); }
public PackageDescriptor GetPackage(string path, IContext context, ProgressRecord progress) { path = path.ToLowerInvariant(); if (!_cache.ContainsKey(path)) { var events = new NullEvents(); context.WriteDebug("Loading " + path); if (null != progress) { progress.CurrentOperation = path; context.WriteProgress(progress); } try { var package = _drive.Application.LoadPackage(path, events, true); var descriptor = new PackageDescriptor(package, path); _cache.Add(path, descriptor); } catch(Exception e) { /*if (!context.Force) { throw; }*/ _cache.Add( path, null ); var errorRecord = new ErrorRecord( e, "PackageCache.GetPackage", ErrorCategory.ReadError, path); context.WriteError( errorRecord ); } finally { context.WriteDebug(events.ToString()); context.WriteDebug("Done loading " + path); } } return _cache[path]; }