public FlowToken Execute( EntityToken entityToken, ActionToken actionToken, FlowControllerServicesContainer flowControllerServicesContainer) { string currentConsoleId = flowControllerServicesContainer. GetService<IManagementConsoleMessageService>().CurrentConsoleId; if (entityToken is NugetRootEntityToken) { var dataEntityToken = entityToken as NugetRootEntityToken; string url = string.Format("/Composite/InstalledPackages/Composite.Integration.Nuget/views/NugetPackageManager.cshtml"); ConsoleMessageQueueFacade.Enqueue(new OpenViewMessageQueueItem { Url = url, ViewId = Guid.NewGuid().ToString(), ViewType = ViewType.Main, Label = "loading..." }, currentConsoleId); } else if (entityToken is NugetPackageEntityToken) { var pm = new CompositePackageManager(); var token = entityToken as NugetPackageEntityToken; IManagementConsoleMessageService managementConsoleMessageService = flowControllerServicesContainer.GetService<IManagementConsoleMessageService>(); if(token.IsLocalPackage()) { try { pm.UninstallPackage(token.PackageId, new NuGet.SemanticVersion(token.Version),false,true); }catch(InvalidOperationException ex) { // ConsoleMessageQueueFacade.Enqueue(new MessageBoxMessageQueueItem { DialogType = DialogType.Question, Message = ex.Message, Title = "Package Manager" }, managementConsoleMessageService.CurrentConsoleId); ConsoleMessageQueueFacade.Enqueue(new MessageBoxMessageQueueItem { DialogType = DialogType.Error, Message = ex.Message, Title = "Package Manager" }, managementConsoleMessageService.CurrentConsoleId); // ConsoleMessageQueueFacade.Enqueue(new MessageBoxMessageQueueItem { DialogType = DialogType.Message, Message = ex.Message, Title = "Package Manager" }, managementConsoleMessageService.CurrentConsoleId); // ConsoleMessageQueueFacade.Enqueue(new MessageBoxMessageQueueItem { DialogType = DialogType.Warning, Message = ex.Message, Title = "Package Manager" }, managementConsoleMessageService.CurrentConsoleId); // throw; } } else if(token.IsRemotePackage()) { try { pm.InstallPackage(token.PackageId, new NuGet.SemanticVersion(token.Version)); } catch(Exception ex) { ConsoleMessageQueueFacade.Enqueue(new MessageBoxMessageQueueItem { DialogType = DialogType.Error, Message = ex.Message, Title = "Package Manager" }, managementConsoleMessageService.CurrentConsoleId); } finally { ConsoleMessageQueueFacade.Enqueue(new RefreshTreeMessageQueueItem { EntityToken = NugetEntityToken.InstalledEntityToken }, currentConsoleId); } }else if(token.IsUpdatePackage()) { pm.UpdatePackage(token.PackageId, true, false); ConsoleMessageQueueFacade.Enqueue(new RefreshTreeMessageQueueItem { EntityToken = NugetEntityToken.InstalledEntityToken }, currentConsoleId); } } ConsoleMessageQueueFacade.Enqueue(new RefreshTreeMessageQueueItem { EntityToken = new NugetRootEntityToken()}, currentConsoleId); return null; }
public IEnumerable<Element> GetChildren(EntityToken parentEntityToken, Dictionary<string, string> piggybag) { if (parentEntityToken is NugetEntityToken && parentEntityToken.Id == "AvaliblePackages") { var pm = new CompositePackageManager(); var locals = pm.LocalRepository.GetPackages().ToList().GroupBy(p=>p.Id) .Select(key => key.OrderByDescending(p=>p.Version).First()); var Updates = pm.SourceRepository.GetUpdates(locals, false, false).ToList(); var CompositeNugetPackages = pm.SourceRepository.GetPackages().Where(p => p.Tags.IndexOf("composite-c1") != -1) .AsEnumerable().Where(PackageExtensions.IsListed).GroupBy(p => p.Id) .Select(key => key.OrderByDescending(p => p.Version).First()); var NotInstalledCompositePackages = CompositeNugetPackages .Where(p => !locals.Any(l => l.Id == p.Id)); foreach (var p in Updates) { yield return new Element(this.Context.CreateElementHandle( NugetPackageEntityToken.UpdateablePackageEntityToken(p.Id,p.Version.ToString()))) { VisualData = new ElementVisualizedData { Label = string.Format("{0} {1}", p.Id, p.Version), ToolTip = string.Format("Update from version {0}",locals.First(lp=>p.Id==lp.Id).Version), HasChildren = false, Icon = CommonCommandIcons.Refresh } }; } foreach (var p in NotInstalledCompositePackages) { yield return new Element(this.Context.CreateElementHandle( NugetPackageEntityToken.RemotePackageEntityToken(p.Id,p.Version.ToString()))) { VisualData = new ElementVisualizedData { Label = string.Format("{0} {1}",p.Id ,p.Version), ToolTip = "Nuget Sources", HasChildren = false, Icon = CommonCommandIcons.AddNew } }; } } else if (parentEntityToken is NugetEntityToken && parentEntityToken.Id == "InstalledPackages") { var pm = new CompositePackageManager(); foreach (var p in pm.LocalRepository.GetPackages()) { yield return new Element(this.Context.CreateElementHandle( NugetPackageEntityToken.LocalPackageEntityToken(p.Id,p.Version.ToString()))) { VisualData = new ElementVisualizedData { Label = string.Format("{0} {1}", p.Id, p.Version), ToolTip = "Nuget Sources", HasChildren = false, Icon = CommonElementIcons.Advanced } }; } } else if (parentEntityToken is NugetRootEntityToken) { // var pm = new CompositePackageManager(); yield return new Element(this.Context.CreateElementHandle( new NugetEntityToken("InstalledPackages"))) { VisualData = new ElementVisualizedData { Label = "Installed Packages", ToolTip = "Already Installed Packages", HasChildren = true, Icon = CommonElementIcons.Folder }, }; yield return new Element(this.Context.CreateElementHandle( new NugetEntityToken("AvaliblePackages"))) { VisualData = new ElementVisualizedData { Label = "Avalible Packages", ToolTip = "Avalible Packages", HasChildren = true, Icon = CommonElementIcons.Earth }, }; yield return new Element(this.Context.CreateElementHandle( new NugetEntityToken("Respositories"))) { VisualData = new ElementVisualizedData { Label = "Nuget Sources", ToolTip = "Nuget Sources", HasChildren = false, Icon = CommonElementIcons.Advanced } }; } }