Skip to content
This repository was archived by the owner on Oct 4, 2021. It is now read-only.

Commit 15eb26f

Browse files
author
Rodrigo Moya
authored
Merge pull request #9371 from mono/pr-aspnetcore-execution-target-group
[AspNet*] Add a group for ASP.NET Core Browser execution targets
2 parents 7ff7452 + 4df15d5 commit 15eb26f

File tree

4 files changed

+26
-8
lines changed

4 files changed

+26
-8
lines changed

main/src/addins/AspNet/Projects/AspNetAppProjectFlavor.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -708,14 +708,14 @@ public override string Id {
708708

709709
protected override IEnumerable<ExecutionTarget> OnGetExecutionTargets (ConfigurationSelector configuration)
710710
{
711-
var apps = new List<ExecutionTarget> ();
711+
var result = new ExecutionTargetGroup (GettextCatalog.GetString ("Browser"), "MonoDevelop.AspNet.BrowserExecutionTargets");
712712
foreach (var browser in MonoDevelop.Ide.IdeServices.DesktopService.GetApplications ("https://localhost", DesktopApplicationRole.Viewer)) {
713713
if (browser.IsDefault)
714-
apps.Insert (0, new BrowserExecutionTarget (browser.Id,browser.DisplayName,browser));
714+
result.Insert (0, new BrowserExecutionTarget (browser.Id,browser.DisplayName,browser));
715715
else
716-
apps.Add (new BrowserExecutionTarget (browser.Id,browser.DisplayName,browser));
716+
result.Add (new BrowserExecutionTarget (browser.Id,browser.DisplayName,browser));
717717
}
718-
return apps;
718+
yield return result;
719719
}
720720
}
721721
}

main/src/addins/MonoDevelop.AspNetCore/MonoDevelop.AspNetCore.Tests/MonoDevelop.AspNetCore.Tests/AspNetCoreProjectTests.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
using UnitTests;
3636
using MonoDevelop.Ide.Gui;
3737
using MonoDevelop.Ide.Projects.FileNesting;
38+
using MonoDevelop.Core.Execution;
3839

3940
namespace MonoDevelop.AspNetCore.Tests
4041
{
@@ -194,9 +195,10 @@ public async Task MultiTargetFrameworks_ExecutionTargets ()
194195
using (var sol = (Solution)await Services.ProjectService.ReadWorkspaceItem (Util.GetMonitor (), solutionFileName)) {
195196
var project = (DotNetProject)sol.Items[0];
196197

197-
var targets = project.GetExecutionTargets (ConfigurationSelector.Default)
198-
.Cast<AspNetCoreTargetFrameworkExecutionTarget> ()
198+
var groups = project.GetExecutionTargets (ConfigurationSelector.Default)
199+
.Cast<ExecutionTargetGroup> ()
199200
.ToList ();
201+
var targets = groups.SelectMany (x => x.ToArray ());
200202

201203
if (Directory.Exists ("/Applications/Safari.app")) {
202204
var matchNetCoreApp21 = targets.FirstOrDefault (x => x.Name.Contains ("Safari • netcoreapp2.1"));

main/src/addins/MonoDevelop.AspNetCore/MonoDevelop.AspNetCore/AspNetCoreProjectExtension.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ protected override Task OnExecute (
178178

179179
protected override IEnumerable<ExecutionTarget> OnGetExecutionTargets (OperationContext ctx, ConfigurationSelector configuration, SolutionItemRunConfiguration runConfig)
180180
{
181-
var result = new List<ExecutionTarget> ();
181+
var result = new ExecutionTargetGroup (GettextCatalog.GetString ("Browser"), "MonoDevelop.AspNetCore.BrowserExecutionTargets");
182182
foreach (var browser in IdeServices.DesktopService.GetApplications ("https://localhost", Ide.Desktop.DesktopApplicationRole.Viewer)) {
183183
if (browser.IsDefault) {
184184
if (Project.HasMultipleTargetFrameworks) {
@@ -195,7 +195,9 @@ protected override IEnumerable<ExecutionTarget> OnGetExecutionTargets (Operation
195195
}
196196
}
197197

198-
return result.Count > 0 ? result : base.OnGetExecutionTargets (configuration);
198+
return result.Count > 0
199+
? new ExecutionTarget [] { result }
200+
: base.OnGetExecutionTargets (ctx, configuration, runConfig);
199201
}
200202

201203
IEnumerable<ExecutionTarget> GetMultipleTargetFrameworkExecutionTargets (DesktopApplication browser)

main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ExecutionTarget.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,20 @@ IEnumerator IEnumerable.GetEnumerator ()
220220
}
221221

222222
#endregion
223+
224+
#region Helper methods
225+
226+
public void AddRange (IEnumerable<ExecutionTarget> collection)
227+
{
228+
targets.AddRange (collection);
229+
}
230+
231+
public void InsertRange (int index, IEnumerable<ExecutionTarget> collection)
232+
{
233+
targets.InsertRange (index, collection);
234+
}
235+
236+
#endregion
223237
}
224238

225239
public class MultiProjectExecutionTarget : ExecutionTarget

0 commit comments

Comments
 (0)