예제 #1
0
        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];
        }
예제 #2
0
        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]);
        }
예제 #3
0
 public PackageNodeFactory( PackageDescriptor package )
 {
     _package = package;
 }