Esempio n. 1
0
		internal void Init(PackageCollection packages)
		{
			m_Packages.Clear();

			// Initialize the root package
			m_RootPackage = new Package();
			m_Packages.Add(m_RootPackage);

			// Create a flattened list of packages
			for (int i = 0; i < packages.Count; i++)
			{
				Package package = new Package(packages[i]);
				m_RootPackage.Packages.Add(package);
			}

			// Convert the flattened list of packages into an actual tree
			for (int i = 0; i < m_RootPackage.Packages.Count; i++)
			{
				Package package = m_RootPackage.Packages[i];
				Package parentPackage = FindPackageById(package.ParentId);
				if (parentPackage == null)
					continue;
				parentPackage.Packages.Add(package);
				m_RootPackage.Packages.Remove(package);
				i--;
			}
		}
 public IList<Auction.Domain.Package> GetByCategory(long categoryId,
                            ref IAuctionTransaction trans)
 {
     using (var records = new PackageCollection())
     {
         var filter = new PredicateExpression(PackageFields.CategoryId == categoryId);
         if (trans != null)
         {
             trans.Add(records);
         }
         records.GetMulti(filter);
         return records.Select(r => new Package()
         {
             BidderId = r.BidderId,
             CategoryId = r.CategoryId,
             ClosedOutBy = r.ClosedOutBy,
             Code = r.Code,
             CreatedBy = r.CreatedBy,
             EndingBid = r.EndingBid,
             EventId = r.EventId,
             Id = r.Id,
             Name = r.Name,
             Notes = r.Notes,
             Paid = (bool)r.Paid,
             StartingBid = r.StartingBid,
             UpdatedBy = r.UpdatedBy
         }).ToList();
     }
 }
 public Auction.Domain.Package Get(long Id, ref IAuctionTransaction trans)
 {
     using (var records = new PackageCollection())
     {
         var filter = new PredicateExpression(PackageFields.Id == Id);
         if (trans != null)
         {
             trans.Add(records);
         }
         records.GetMulti(filter, 1);
         var r = records.FirstOrDefault();
         return new Package()
                    {
                        BidderId = r.BidderId,
                        CategoryId = r.CategoryId,
                        ClosedOutBy = r.ClosedOutBy,
                        Code = r.Code,
                        CreatedBy = r.CreatedBy,
                        EndingBid = r.EndingBid,
                        EventId = r.EventId,
                        Id = r.Id,
                        Name = r.Name,
                        Notes = r.Notes,
                        Paid = (bool) r.Paid,
                        StartingBid = r.StartingBid,
                        UpdatedBy = r.UpdatedBy
                    };
     }
 }
Esempio n. 4
0
 public Updater(string channel)
 {
         this.Channel = channel;
         this.Progress = new Types.OperationProgress("Actualizador", "Mantiene los archivos de la aplicación actualizados.");
         this.Progress.Modal = false;
         this.Progress.Advertise = false;
         this.Packages = new PackageCollection(this);
 }
Esempio n. 5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PackageSession"/> class.
 /// </summary>
 public PackageSession(Package package)
 {
     packages = new PackageCollection();
     packagesCopy = new PackageCollection();
     assemblyContainer = new AssemblyContainer();
     packages.CollectionChanged += PackagesCollectionChanged;
     if (package != null)
     {
         Packages.Add(package);
     }            
 }
Esempio n. 6
0
        /// <summary>
        /// Initializes a new instance of the <see cref="PackageSession"/> class.
        /// </summary>
        public PackageSession(Package package)
        {
            constraintProvider.AddConstraint(PackageStore.Instance.DefaultPackageName, new VersionSpec(PackageStore.Instance.DefaultPackageVersion.ToSemanticVersion()));

            packages = new PackageCollection();
            packagesCopy = new PackageCollection();
            assemblyContainer = new AssemblyContainer();
            packages.CollectionChanged += PackagesCollectionChanged;
            if (package != null)
            {
                Packages.Add(package);
            }            
        }
Esempio n. 7
0
        /// <summary>
        /// Finds the package dependencies for the specified <see cref="Package" />. See remarks.
        /// </summary>
        /// <param name="rootPackage">The root package.</param>
        /// <param name="includeRootPackage">if set to <c>true</c> [include root package].</param>
        /// <param name="isRecursive">if set to <c>true</c> [is recursive].</param>
        /// <param name="storeOnly">if set to <c>true</c> [ignores local packages and keeps only store packages].</param>
        /// <returns>List&lt;Package&gt;.</returns>
        /// <exception cref="System.ArgumentNullException">rootPackage</exception>
        /// <exception cref="System.ArgumentException">Root package must be part of a session;rootPackage</exception>
        public static PackageCollection FindDependencies(this Package rootPackage, bool includeRootPackage = false, bool isRecursive = true, bool storeOnly = false)
        {
            if (rootPackage == null) throw new ArgumentNullException("rootPackage");
            var packages = new PackageCollection();

            if (includeRootPackage)
            {
                packages.Add(rootPackage);
            }

            FillPackageDependencies(rootPackage, isRecursive, packages, storeOnly);

            return packages;
        }
Esempio n. 8
0
		public override void Dispose()
		{
			base.MouseLeftButtonDown -= OnMouseButtonDown;
			base.DataContext = null;

			m_EditablePackages.Clear();
			m_EditablePackages = null;

			if (m_ParentSearch != null)
				m_ParentSearch.ItemsSource = null;

			if (m_DataGrid != null)
			{
				m_DataGrid.CurrentCellChanged -= OnCurrentCellChanged;
				m_DataGrid.KeyDown -= OnItemsKeyDown;
				m_DataGrid.ItemsSource = null;
			}

			if (m_ListControl != null)
			{
				m_ListControl.KeyDown -= OnItemsKeyDown;
				m_ListControl.ItemsSource = null;
			}
		}
Esempio n. 9
0
        /// <summary>
        /// Adds an existing package to the current session.
        /// </summary>
        /// <param name="packagePath">The package path.</param>
        /// <param name="logger">The session result.</param>
        /// <param name="loadParametersArg">The load parameters argument.</param>
        /// <exception cref="System.ArgumentNullException">packagePath</exception>
        /// <exception cref="System.ArgumentException">Invalid relative path. Expecting an absolute package path;packagePath</exception>
        /// <exception cref="System.IO.FileNotFoundException">Unable to find package</exception>
        public Package AddExistingPackage(UFile packagePath, ILogger logger, PackageLoadParameters loadParametersArg = null)
        {
            if (packagePath == null) throw new ArgumentNullException("packagePath");
            if (logger == null) throw new ArgumentNullException("logger");
            if (!packagePath.IsAbsolute) throw new ArgumentException("Invalid relative path. Expecting an absolute package path", "packagePath");
            if (!File.Exists(packagePath)) throw new FileNotFoundException("Unable to find package", packagePath);

            var loadParameters = loadParametersArg ?? PackageLoadParameters.Default();

            Package package;
            try
            {
                // Enable reference analysis caching during loading
                AssetReferenceAnalysis.EnableCaching = true;

                var packagesLoaded = new PackageCollection();

                package = PreLoadPackage(this, logger, packagePath, false, packagesLoaded, loadParameters);

                // Load all missing references/dependencies
                LoadMissingReferences(logger, loadParameters);

                // Load assets
                TryLoadAssets(this, logger, package, loadParameters);

                // Run analysis after
                foreach (var packageToAdd in packagesLoaded)
                {
                    var analysis = new PackageAnalysis(packageToAdd, GetPackageAnalysisParametersForLoad());
                    analysis.Run(logger);
                }
            }
            finally
            {
                // Disable reference analysis caching after loading
                AssetReferenceAnalysis.EnableCaching = false;
            }
            return package;
        }
Esempio n. 10
0
        private static void PreLoadPackageDependencies(PackageSession session, ILogger log, Package package, PackageCollection loadedPackages, PackageLoadParameters loadParameters)
        {
            if (session == null) throw new ArgumentNullException("session");
            if (log == null) throw new ArgumentNullException("log");
            if (package == null) throw new ArgumentNullException("package");
            if (loadParameters == null) throw new ArgumentNullException("loadParameters");

            bool packageDependencyErrors = false;

            // TODO: Remove and recheck Dependencies Ready if some secondary packages are removed?
            if (package.State >= PackageState.DependenciesReady)
                return;

            // 1. Load store package
            foreach (var packageDependency in package.Meta.Dependencies)
            {
                var loadedPackage = session.Packages.Find(packageDependency);
                if (loadedPackage == null)
                {
                    var file = PackageStore.Instance.GetPackageFileName(packageDependency.Name, packageDependency.Version, session.constraintProvider);

                    if (file == null)
                    {
                        // TODO: We need to support automatic download of packages. This is not supported yet when only Xenko
                        // package is supposed to be installed, but It will be required for full store
                        log.Error("Unable to find package {0} not installed", packageDependency);
                        packageDependencyErrors = true;
                        continue;
                    }

                    // Recursive load of the system package
                    loadedPackage = PreLoadPackage(session, log, file, true, loadedPackages, loadParameters);
                }

                if (loadedPackage == null || loadedPackage.State < PackageState.DependenciesReady)
                    packageDependencyErrors = true;
            }

            // 2. Load local packages
            foreach (var packageReference in package.LocalDependencies)
            {
                // Check that the package was not already loaded, otherwise return the same instance
                if (session.Packages.ContainsById(packageReference.Id))
                {
                    continue;
                }

                // Expand the string of the location
                var newLocation = (UFile)AssetRegistry.ExpandString(session, packageReference.Location);

                var subPackageFilePath = package.RootDirectory != null ? UPath.Combine(package.RootDirectory, newLocation) : newLocation;

                // Recursive load
                var loadedPackage = PreLoadPackage(session, log, subPackageFilePath.FullPath, false, loadedPackages, loadParameters);

                if (loadedPackage == null || loadedPackage.State < PackageState.DependenciesReady)
                    packageDependencyErrors = true;
            }

            // 3. Update package state
            if (!packageDependencyErrors)
            {
                package.State = PackageState.DependenciesReady;
            }
        }
Esempio n. 11
0
		public override void Dispose()
		{
			base.Dispose();
			Accounts.Dispose();
			Incomes.Dispose();
			Packages.Dispose();
			Categories.Dispose();
			Accounts = new AccountCollection();
			Incomes = new IncomeCollection();
			Packages = new PackageCollection();
			Categories = new CategoryCollection();
			_BackgroundRun = null;
			_BackgroundUpdateBalances = null;
		}
        void FillSummaryPage()
        {
            btnPrev.Sensitive = true;

            AddinHeader[]     infos = tree.GetSelectedAddins();
            PackageCollection packs = new PackageCollection();

            foreach (AddinHeader info in infos)
            {
                AddinRepositoryEntry arep = (AddinRepositoryEntry)tree.GetAddinData(info);
                packs.Add(Package.FromRepository(arep));
            }

            packagesToInstall = new PackageCollection(packs);

            PackageCollection    toUninstall;
            DependencyCollection unresolved;
            bool res;

            InstallMonitor m = new InstallMonitor();

            res = service.ResolveDependencies(m, packs, out toUninstall, out unresolved);

            StringBuilder sb = new StringBuilder();

            if (!res)
            {
                sb.Append(Catalog.GetString("<b><span foreground=\"red\">The selected add-ins can't be installed because there are dependency conflicts.</span></b>\n"));
                foreach (string s in m.Errors)
                {
                    sb.Append(Catalog.GetString("<b><span foreground=\"red\">" + s + "</span></b>\n"));
                }
                sb.Append("\n");
            }

            if (m.Warnings.Count != 0)
            {
                foreach (string w in m.Warnings)
                {
                    sb.Append(Catalog.GetString("<b><span foreground=\"red\">" + w + "</span></b>\n"));
                }
                sb.Append("\n");
            }

            sb.Append(Catalog.GetString("<b>The following packages will be installed:</b>\n\n"));
            foreach (Package p in packs)
            {
                sb.Append(p.Name);
                if (!p.SharedInstall)
                {
                    sb.Append(Catalog.GetString(" (in user directory)"));
                }
                sb.Append("\n");
            }
            sb.Append("\n");

            if (toUninstall.Count > 0)
            {
                sb.Append(Catalog.GetString("<b>The following packages need to be uninstalled:</b>\n\n"));
                foreach (Package p in toUninstall)
                {
                    sb.Append(p.Name + "\n");
                }
                sb.Append("\n");
            }

            if (unresolved.Count > 0)
            {
                sb.Append(Catalog.GetString("<b>The following dependencies could not be resolved:</b>\n\n"));
                foreach (Dependency p in unresolved)
                {
                    sb.Append(p.Name + "\n");
                }
                sb.Append("\n");
            }
            btnNext.Sensitive   = res;
            labelSummary.Markup = sb.ToString();
        }
Esempio n. 13
0
 private void RetrievePackages()
 {
     this.Packages = new PackageCollection(this.packageRepository.FindAll());
 }
Esempio n. 14
0
		public UserInterface(INHydrateModelObject root)
			: base(root)
		{
			_packages = new PackageCollection(this.Root);
			_name = "User Interface";
		}
Esempio n. 15
0
    private void CreatePackagesList()
    {
        using (StringWriter sw = new StringWriter())
        {
            using (HtmlTextWriter writer = new HtmlTextWriter(sw))
            {
                PackageCollection packages = Package.Utils.GetPackagesByWaiveID(waiveID);

                Waive waive = new Waive(waiveID);
                if (packages.Count() > 0)
                {
                    writer.AddAttribute("class", "listview");
                    writer.AddAttribute("cellspacing", "0");
                    writer.AddAttribute("cellpadding", "0");
                    writer.RenderBeginTag(HtmlTextWriterTag.Table);
                    writer.RenderBeginTag(HtmlTextWriterTag.Tr);
                    writer.AddAttribute("class", "package");
                    writer.RenderBeginTag(HtmlTextWriterTag.Th);
                    writer.Write(Resources.PackageTexts.Package);
                    writer.RenderEndTag(); // Th


                    writer.AddAttribute("class", "amount");
                    writer.RenderBeginTag(HtmlTextWriterTag.Th);
                    writer.Write(Resources.PackageTexts.Amount);
                    writer.RenderEndTag(); // Th

                    writer.AddAttribute("class", "produtionweeks");
                    writer.RenderBeginTag(HtmlTextWriterTag.Th);
                    writer.Write(Resources.PackageTexts.ListHeaderProductionWeeks);
                    writer.RenderEndTag(); // Th

                    writer.AddAttribute("class", "delete");
                    writer.RenderBeginTag(HtmlTextWriterTag.Th);
                    writer.Write(Resources.Global.ListHeaderButtons);
                    writer.RenderEndTag(); // Th
                    writer.RenderEndTag(); // Tr
                    foreach (var package in packages)
                    {
                        Activity activity = new Activity(package.ActivityID);

                        writer.RenderBeginTag(HtmlTextWriterTag.Tr);
                        writer.AddAttribute("class", "package");
                        writer.RenderBeginTag(HtmlTextWriterTag.Td);
                        writer.AddAttribute("href", Urls.PackageUrl + "?caseid=" + caseID + "&packageid=" + package.ID + "&activityid=" + package.ActivityID + "&pagetype=package");
                        writer.RenderBeginTag(HtmlTextWriterTag.A);
                        writer.AddAttribute("class", "title");
                        writer.RenderBeginTag(HtmlTextWriterTag.Span);
                        writer.Write(package.Title + " - " + activity.Title);
                        writer.RenderEndTag(); //Span
                        writer.RenderEndTag(); // A
                        writer.RenderEndTag(); // Td
                        writer.AddAttribute("class", "amount");
                        writer.RenderBeginTag(HtmlTextWriterTag.Td);
                        writer.AddAttribute("class", "amount");
                        writer.RenderBeginTag(HtmlTextWriterTag.Span);
                        writer.Write(package.WaiveAmount);
                        if (!waive.IsOrdered)
                        {
                            writer.AddAttribute("class", "fa fa-pencil edit");
                            writer.AddAttribute("onclick", "return editPackageAmount(" + package.ID + ", '" + package.Title + "', " + package.WaiveAmount + ", " + package.WaiveProductionWeeks + ");");
                            writer.RenderBeginTag(HtmlTextWriterTag.I);
                            writer.RenderEndTag(); // I
                        }
                        writer.RenderEndTag();     // Span
                        writer.RenderEndTag();     // Td

                        writer.AddAttribute("class", "amount");
                        writer.RenderBeginTag(HtmlTextWriterTag.Td);
                        writer.AddAttribute("class", "amount");
                        writer.RenderBeginTag(HtmlTextWriterTag.Span);
                        writer.Write(package.WaiveProductionWeeks);
                        if (!waive.IsOrdered)
                        {
                            writer.AddAttribute("class", "fa fa-pencil edit");
                            writer.AddAttribute("onclick", "return editPackageProdutionWeeks(" + package.ID + ", '" + package.Title + "', " + package.WaiveAmount + ", " + package.WaiveProductionWeeks + ");");
                            writer.RenderBeginTag(HtmlTextWriterTag.I);
                            writer.RenderEndTag(); // I
                        }
                        writer.RenderEndTag();     // Span
                        writer.RenderEndTag();     // Td

                        writer.AddAttribute("class", "delete");
                        writer.RenderBeginTag(HtmlTextWriterTag.Td);
                        if (!waive.IsOrdered)
                        {
                            writer.AddAttribute("class", "fa fa fa-times remove");
                            writer.AddAttribute("onclick", "return removePackage(" + package.ID + ", '" + package.Title + "');");
                            writer.RenderBeginTag(HtmlTextWriterTag.I);
                            writer.RenderEndTag(); // I
                        }
                        writer.RenderEndTag();     //Td

                        writer.RenderEndTag();     // Tr
                    }

                    writer.RenderEndTag(); // Table
                }
                litPackagesList.Text = sw.ToString();
            }
        }
    }
        void LoadWindow()
        {
            // Do not reenter if already in progress...
            if (m_LoadWindowInProgress)
            {
                return;
            }
            m_LoadWindowInProgress = true;

            rootVisualElement.Clear();

            var mainTemplate = EditorGUIUtility.Load(k_ServicesWindowUxmlPath) as VisualTreeAsset;

            rootVisualElement.AddStyleSheetPath(ServicesUtils.StylesheetPath.servicesWindowCommon);
            rootVisualElement.AddStyleSheetPath(EditorGUIUtility.isProSkin ? ServicesUtils.StylesheetPath.servicesWindowDark : ServicesUtils.StylesheetPath.servicesWindowLight);

            mainTemplate.CloneTree(rootVisualElement, new Dictionary <string, VisualElement>(), null);
            notificationSubscriber = new UIElementsNotificationSubscriber(rootVisualElement);
            notificationSubscriber.Subscribe(
                Notification.Topic.AdsService,
                Notification.Topic.AnalyticsService,
                Notification.Topic.BuildService,
                Notification.Topic.CollabService,
                Notification.Topic.CoppaCompliance,
                Notification.Topic.CrashService,
                Notification.Topic.ProjectBind,
                Notification.Topic.PurchasingService
                );

            rootVisualElement.Q <Button>(k_ProjectSettingsBtnName).clicked += () =>
            {
                ServicesUtils.OpenServicesProjectSettings(GeneralProjectSettings.generalProjectSettingsPath, typeof(GeneralProjectSettings).Name);
            };

            var dashboardClickable = new Clickable(() =>
            {
                if (UnityConnect.instance.projectInfo.projectBound)
                {
                    ServicesConfiguration.instance.RequestBaseDashboardUrl(baseDashboardUrl =>
                    {
                        EditorAnalytics.SendOpenDashboardForService(new ServicesProjectSettings.OpenDashboardForService()
                        {
                            serviceName    = k_WindowTitle,
                            url            = baseDashboardUrl,
                            organizationId = UnityConnect.instance.projectInfo.organizationId,
                            projectId      = UnityConnect.instance.projectInfo.projectId
                        });
                        ServicesConfiguration.instance.RequestCurrentProjectDashboardUrl(Application.OpenURL);
                    });
                }
                else
                {
                    NotificationManager.instance.Publish(Notification.Topic.ProjectBind, Notification.Severity.Warning, L10n.Tr(k_ProjectNotBoundMessage));
                    ServicesUtils.OpenServicesProjectSettings(GeneralProjectSettings.generalProjectSettingsPath, typeof(GeneralProjectSettings).Name);
                }
            });

            rootVisualElement.Q(k_DashboardLinkName).AddManipulator(dashboardClickable);

            m_SortedServices = new SortedList <string, SingleService>();
            bool needProjectListOfPackage = false;

            foreach (var service in ServicesRepository.GetServices())
            {
                m_SortedServices.Add(service.title, service);
                if (service.isPackage && service.packageName != null)
                {
                    needProjectListOfPackage = true;
                }
            }
            // Only launch the listing if a service really needs the packages list...
            m_PackageCollection = null;
            if (needProjectListOfPackage)
            {
                m_ListRequestOfPackage    = Client.List();
                EditorApplication.update += ListingCurrentPackageProgress;
            }
            else
            {
                FinalizeServiceSetup();
                m_LoadWindowInProgress = false;
            }
        }
Esempio n. 17
0
        public override bool Execute()
        {
            if (Packages?.Length == 0)
            {
                Log.LogError("No packages were found.");
                return(false);
            }

            if (string.IsNullOrEmpty(CsvFile) || !File.Exists(CsvFile))
            {
                Log.LogError($"Package manifest (csv file) could not be loaded from '{CsvFile}'");
                return(false);
            }

            var expectedPackages = PackageCollection.DeserializeFromCsv(CsvFile);

            Directory.CreateDirectory(DestinationFolder);

            foreach (var package in Packages)
            {
                PackageIdentity identity;
                using (var reader = new PackageArchiveReader(package.ItemSpec))
                {
                    identity = reader.GetIdentity();
                }

                if (!expectedPackages.TryGetCategory(identity.Id, out var category))
                {
                    Log.LogError($"{CsvFile} does not contain an entry for a package with id: {identity.Id}");
                    return(false);
                }

                string destDir;
                switch (category)
                {
                case PackageCategory.Unknown:
                    throw new InvalidOperationException($"Package {identity} does not have a recognized package category.");

                case PackageCategory.Shipping:
                    destDir = Path.Combine(DestinationFolder, "ship");
                    break;

                case PackageCategory.NoShip:
                    destDir = Path.Combine(DestinationFolder, "noship");
                    break;

                case PackageCategory.ShipOob:
                    destDir = Path.Combine(DestinationFolder, "shipoob");
                    break;

                default:
                    throw new NotImplementedException();
                }

                Directory.CreateDirectory(destDir);

                var destFile = Path.Combine(destDir, Path.GetFileName(package.ItemSpec));

                Log.LogMessage($"Copying {package.ItemSpec} to {destFile}");

                File.Copy(package.ItemSpec, destFile);
                expectedPackages.Remove(identity.Id);
            }

            if (expectedPackages.Count != 0)
            {
                var error = new StringBuilder();
                foreach (var key in expectedPackages.Keys)
                {
                    error.Append(" - ").AppendLine(key);
                }

                Log.LogError($"Expected the following packages based on the contents of {CsvFile}, but they were not found:" + error.ToString());
                return(false);
            }

            return(true);
        }
Esempio n. 18
0
 public SetItemInfoTemplateManager(PackageCollection collection) : base(collection)
 {
 }
Esempio n. 19
0
        /// <summary>
        /// Loads a package from specified file path.
        /// </summary>
        /// <param name="filePath">The file path to a package file.</param>
        /// <param name="sessionResult">The session result.</param>
        /// <param name="loadParameters">The load parameters.</param>
        /// <returns>A package.</returns>
        /// <exception cref="System.ArgumentNullException">filePath</exception>
        /// <exception cref="System.ArgumentException">File [{0}] must exist.ToFormat(filePath);filePath</exception>
        public static void Load(string filePath, PackageSessionResult sessionResult, PackageLoadParameters loadParameters = null)
        {
            if (filePath == null) throw new ArgumentNullException("filePath");
            if (sessionResult == null) throw new ArgumentNullException("sessionResult");

            // Make sure with have valid parameters
            loadParameters = loadParameters ?? PackageLoadParameters.Default();

            // Make sure to use a full path.
            filePath = FileUtility.GetAbsolutePath(filePath);

            if (!File.Exists(filePath)) throw new ArgumentException("File [{0}] must exist".ToFormat(filePath), "filePath");

            try
            {
                // Enable reference analysis caching during loading
                AssetReferenceAnalysis.EnableCaching = true;

                using (var profile = Profiler.Begin(PackageSessionProfilingKeys.Loading))
                {
                    sessionResult.Clear();
                    sessionResult.Progress("Loading..", 0, 1);

                    var session = new PackageSession();

                    var packagePaths = new List<string>();

                    // If we have a solution, load all packages
                    if (PackageSessionHelper.IsSolutionFile(filePath))
                    {
                        PackageSessionHelper.LoadSolution(session, filePath, packagePaths, sessionResult);
                    }
                    else if (PackageSessionHelper.IsPackageFile(filePath))
                    {
                        packagePaths.Add(filePath);
                    }
                    else
                    {
                        sessionResult.Error("Unsupported file extension (only .sln or {0} are supported)", Package.PackageFileExtension);
                        return;
                    }

                    var cancelToken = loadParameters.CancelToken;

                    // Load all packages
                    var packagesLoaded = new PackageCollection();
                    foreach (var packageFilePath in packagePaths)
                    {
                        PreLoadPackage(session, sessionResult, packageFilePath, false, packagesLoaded, loadParameters);

                        // Output the session only if there is no cancellation
                        if (cancelToken.HasValue && cancelToken.Value.IsCancellationRequested)
                        {
                            return;
                        }
                    }

                    // Load all missing references/dependencies
                    session.LoadMissingReferences(sessionResult, loadParameters);

                    // Fix relative references
                    var analysis = new PackageSessionAnalysis(session, GetPackageAnalysisParametersForLoad());
                    var analysisResults = analysis.Run();
                    analysisResults.CopyTo(sessionResult);

                    // Run custom package session analysis
                    foreach (var type in AssetRegistry.GetPackageSessionAnalysisTypes())
                    {
                        var pkgAnalysis = (PackageSessionAnalysisBase)Activator.CreateInstance(type);
                        pkgAnalysis.Session = session;
                        var results = pkgAnalysis.Run();
                        results.CopyTo(sessionResult);
                    }

                    // Output the session only if there is no cancellation
                    if (!cancelToken.HasValue || !cancelToken.Value.IsCancellationRequested)
                    {
                        sessionResult.Session = session;

                        // Defer the initialization of the dependency manager
                        //session.DependencyManager.InitializeDeferred();
                    }

                    // Setup the current package when loading it
                    if (packagePaths.Count == 1)
                    {
                        var currentPackagePath = new UFile(packagePaths[0]);
                        foreach (var package in packagesLoaded)
                        {
                            if (package.FullPath == currentPackagePath)
                            {
                                session.CurrentPackage = package;
                                break;
                            }
                        }
                    }

                    // The session is not dirty when loading it
                    session.IsDirty = false;
                }
            }
            finally
            {
                // Disable reference analysis caching after loading
                AssetReferenceAnalysis.EnableCaching = false;
            }
        }
 public void Update(ref Auction.Domain.Package package,
                    ref IAuctionTransaction trans)
 {
     using(var records = new PackageCollection())
     {
         var pack = new PackageEntity()
         {
             BidderId = package.BidderId,
             CategoryId = package.CategoryId,
             ClosedOutBy = package.ClosedOutBy,
             Code = package.Code,
             CreatedBy = package.CreatedBy,
             EndingBid = (decimal?)package.EndingBid,
             EventId = package.EventId,
             Name = package.Name,
             Notes = package.Notes,
             Paid = package.Paid,
             StartingBid = (decimal)package.StartingBid,
             UpdatedBy = package.UpdatedBy
         };
         if (trans != null)
         {
             trans.Add(pack);
         }
         records.UpdateMulti(pack, new PredicateExpression(PackageFields.Id == package.Id));
     }
 }
Esempio n. 21
0
        /// <summary>
        /// Make sure packages have their dependencies loaded.
        /// </summary>
        /// <param name="log">The log.</param>
        /// <param name="loadParametersArg">The load parameters argument.</param>
        public void LoadMissingDependencies(ILogger log, PackageLoadParameters loadParametersArg = null)
        {
            var loadParameters = loadParametersArg ?? PackageLoadParameters.Default();

            var cancelToken = loadParameters.CancelToken;

            var packagesLoaded = new PackageCollection();

            // Make a copy of Packages as it can be modified by PreLoadPackageDependencies
            var previousPackages = Packages.ToList();
            foreach (var package in previousPackages)
            {
                // Output the session only if there is no cancellation
                if (cancelToken.HasValue && cancelToken.Value.IsCancellationRequested)
                {
                    return;
                }

                PreLoadPackageDependencies(this, log, package, packagesLoaded, loadParameters);
            }
        }
Esempio n. 22
0
    private void CreateListPackages()
    {
        using (StringWriter sw = new StringWriter())
        {
            using (HtmlTextWriter writer = new HtmlTextWriter(sw))
            {
                PackageCollection packages = Package.Utils.GetPackagesByCaseID(caseID);

                writer.AddAttribute("class", "listview");
                writer.AddAttribute("cellspacing", "0");
                writer.AddAttribute("cellpadding", "0");
                writer.RenderBeginTag(HtmlTextWriterTag.Table);
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);


                writer.AddAttribute("class", "id");
                writer.RenderBeginTag(HtmlTextWriterTag.Th);
                writer.Write(Resources.PackageTexts.ListHeaderID);
                writer.RenderEndTag(); // Th


                writer.AddAttribute("class", "title");
                writer.RenderBeginTag(HtmlTextWriterTag.Th);
                writer.Write(Resources.PackageTexts.ListHeaderTitle);
                writer.RenderEndTag(); // Th


                //writer.AddAttribute("class", "activity");
                //writer.RenderBeginTag(HtmlTextWriterTag.Th);
                //writer.Write(Resources.PackageTexts.ListHeaderActivity);
                //writer.RenderEndTag(); // Th

                writer.AddAttribute("class", "price");
                writer.RenderBeginTag(HtmlTextWriterTag.Th);
                writer.Write(Resources.PackageTexts.ListHeaderPrice);
                writer.RenderEndTag(); // Th
                writer.AddAttribute("class", "delete");
                writer.RenderBeginTag(HtmlTextWriterTag.Th);
                writer.Write(Resources.Global.ListHeaderButtons);
                writer.RenderEndTag(); // Th
                writer.RenderEndTag(); // Tr
                foreach (var package in packages)
                {
                    writer.RenderBeginTag(HtmlTextWriterTag.Tr);

                    writer.RenderBeginTag(HtmlTextWriterTag.Td);
                    writer.AddAttribute("class", "id dimmed");
                    writer.RenderBeginTag(HtmlTextWriterTag.Span);
                    writer.Write(package.ID);
                    writer.RenderEndTag(); //Span
                    writer.RenderEndTag(); // Td


                    writer.AddAttribute("class", "title");
                    writer.RenderBeginTag(HtmlTextWriterTag.Td);
                    writer.AddAttribute("href", Urls.PackageUrl + "?caseid=" + caseID + "&packageid=" + package.ID + "&activityid=" + package.ActivityID + "&pagetype=package#tabindex-0");
                    writer.RenderBeginTag(HtmlTextWriterTag.A);
                    writer.AddAttribute("class", "title");
                    writer.RenderBeginTag(HtmlTextWriterTag.Span);
                    writer.Write(package.Title);
                    writer.RenderEndTag(); //Span
                    writer.RenderEndTag(); // A
                    writer.RenderEndTag(); // Td

                    //Activity activity = new Activity(package.ActivityID);

                    //writer.RenderBeginTag(HtmlTextWriterTag.Td);
                    //writer.AddAttribute("class", "activity");
                    //writer.RenderBeginTag(HtmlTextWriterTag.Span);
                    //writer.Write(activity.Title);
                    //writer.RenderEndTag(); //Span
                    //writer.RenderEndTag(); // Td

                    writer.AddAttribute("class", "price");
                    writer.RenderBeginTag(HtmlTextWriterTag.Td);
                    writer.RenderBeginTag(HtmlTextWriterTag.Span);
                    writer.Write(package.GetTotalPrice().ToString("N2") + Resources.Global.CurrencyDisplay);
                    writer.RenderEndTag(); //Span
                    writer.RenderEndTag(); // Td


                    writer.AddAttribute("class", "delete");
                    writer.RenderBeginTag(HtmlTextWriterTag.Td);
                    if (!package.isUsedInWaive())
                    {
                        writer.AddAttribute("class", "fa fa fa-times remove");
                        writer.AddAttribute("onclick", "return deletePackage(" + package.ID + ", '" + package.Title + "');");
                        writer.RenderBeginTag(HtmlTextWriterTag.I);
                        writer.RenderEndTag(); // I
                    }
                    writer.RenderEndTag();     // Td

                    writer.RenderEndTag();     // Tr
                }
                writer.RenderEndTag();         // Table
            }
            litlistPackages.Text = sw.ToString();
        }
    }
Esempio n. 23
0
        private static Package PreLoadPackage(PackageSession session, ILogger log, string filePath, bool isSystemPackage, PackageCollection loadedPackages, PackageLoadParameters loadParameters)
        {
            if (session == null) throw new ArgumentNullException("session");
            if (log == null) throw new ArgumentNullException("log");
            if (filePath == null) throw new ArgumentNullException("filePath");
            if (loadedPackages == null) throw new ArgumentNullException("loadedPackages");
            if (loadParameters == null) throw new ArgumentNullException("loadParameters");

            try
            {
                var packageId = Package.GetPackageIdFromFile(filePath);

                // Check that the package was not already loaded, otherwise return the same instance
                if (session.Packages.ContainsById(packageId))
                {
                    return session.Packages.Find(packageId);
                }

                // Package is already loaded, use the instance 
                if (loadedPackages.ContainsById(packageId))
                {
                    return loadedPackages.Find(packageId);
                }

                // Load the package without loading any assets
                var package = Package.LoadRaw(log, filePath);
                package.IsSystem = isSystemPackage;

                // Convert UPath to absolute (Package only)
                // Removed for now because it is called again in PackageSession.LoadAssembliesAndAssets (and running it twice result in dirty package)
                // If we remove it from here (and call it only in the other method), templates are not loaded (Because they are loaded via the package store that do not use PreLoadPackage)
                //if (loadParameters.ConvertUPathToAbsolute)
                //{
                //    var analysis = new PackageAnalysis(package, new PackageAnalysisParameters()
                //    {
                //        ConvertUPathTo = UPathType.Absolute,
                //        SetDirtyFlagOnAssetWhenFixingAbsoluteUFile = true,
                //        IsProcessingUPaths = true,
                //    });
                //    analysis.Run(log);
                //}
                // If the package doesn't have a meta name, fix it here (This is supposed to be done in the above disabled analysis - but we still need to do it!)
                if (string.IsNullOrWhiteSpace(package.Meta.Name) && package.FullPath != null)
                {
                    package.Meta.Name = package.FullPath.GetFileName();
                    package.IsDirty = true;
                }

                // Add the package has loaded before loading dependencies
                loadedPackages.Add(package);

                // Package has been loaded, register it in constraints so that we force each subsequent loads to use this one (or fails if version doesn't match)
                session.constraintProvider.AddConstraint(package.Meta.Name, new VersionSpec(package.Meta.Version.ToSemanticVersion()));

                // Load package dependencies
                // This will perform necessary asset upgrades
                // TODO: We should probably split package loading in two recursive top-level passes (right now those two passes are mixed, making it more difficult to make proper checks)
                //   - First, load raw packages with their dependencies recursively, then resolve dependencies and constraints (and print errors/warnings)
                //   - Then, if everything is OK, load the actual references and assets for each packages
                PreLoadPackageDependencies(session, log, package, loadedPackages, loadParameters);

                // Add the package to the session but don't freeze it yet
                session.Packages.Add(package);

                return package;
            }
            catch (Exception ex)
            {
                log.Error("Error while pre-loading package [{0}]", ex, filePath);
            }

            return null;
        }
Esempio n. 24
0
 public void Reload()
 {
     this.packages = null;
 }
 private void RetrievePackages()
 {
     this.Packages = new PackageCollection(this.packageRepository.FindAll());
 }
Esempio n. 26
0
		public PackageCollectionForm(PackageCollection packageCollection):this()
		{
			_packageCollection = packageCollection;
			this.LoadList();
		}		
Esempio n. 27
0
        private static Package PreLoadPackage(PackageSession session, ILogger log, string filePath, bool isSystemPackage, PackageCollection loadedPackages, PackageLoadParameters loadParameters)
        {
            if (session == null) throw new ArgumentNullException("session");
            if (log == null) throw new ArgumentNullException("log");
            if (filePath == null) throw new ArgumentNullException("filePath");
            if (loadedPackages == null) throw new ArgumentNullException("loadedPackages");
            if (loadParameters == null) throw new ArgumentNullException("loadParameters");

            try
            {
                var packageId = Package.GetPackageIdFromFile(filePath);

                // Check that the package was not already loaded, otherwise return the same instance
                if (session.Packages.ContainsById(packageId))
                {
                    return session.Packages.Find(packageId);
                }

                // Package is already loaded, use the instance 
                if (loadedPackages.ContainsById(packageId))
                {
                    return loadedPackages.Find(packageId);
                }

                // Load the package without loading assets
                var newLoadParameters = loadParameters.Clone();
                newLoadParameters.AssemblyContainer = session.assemblyContainer;

                // Load the package
                var package = Package.Load(log, filePath, newLoadParameters);
                package.IsSystem = isSystemPackage;

                // Add the package has loaded before loading dependencies
                loadedPackages.Add(package);

                // Package has been loaded, register it in constraints so that we force each subsequent loads to use this one (or fails if version doesn't match)
                session.constraintProvider.AddConstraint(package.Meta.Name, new VersionSpec(package.Meta.Version.ToSemanticVersion()));

                // Load package dependencies
                PreLoadPackageDependencies(session, log, package, loadedPackages, loadParameters);

                // Add the package to the session but don't freeze it yet
                session.Packages.Add(package);

                // Validate assets from package
                package.ValidateAssets(loadParameters.GenerateNewAssetIds);

                // Freeze the package after loading the assets
                session.FreezePackage(package);

                return package;
            }
            catch (Exception ex)
            {
                log.Error("Error while pre-loading package [{0}]", ex, filePath);
            }

            return null;
        }
Esempio n. 28
0
 public FilterViewModel(PackageCollection fullList)
 {
     FullList = fullList;
     FullList.CollectionChanged += FullListChanged;
 }
Esempio n. 29
0
 static PackageTable()
 {
     Packages = new PackageCollection();
 }
Esempio n. 30
0
 public MobLazyTemplateManager(PackageCollection collection) : base(collection)
 {
 }