Skip to content

Commit bd7ac29

Browse files
authored
Merge pull request #9 from umbraco/dev/mutli-target
Dev/mutli target
2 parents 7d29375 + 56a5a5c commit bd7ac29

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+2406
-132
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2+
3+
<PropertyGroup>
4+
<uiexamplesContentFilesPath>$(MSBuildThisFileDirectory)..\content\App_Plugins\uiexamples\**\*.*</uiexamplesContentFilesPath>
5+
</PropertyGroup>
6+
7+
<Target Name="CopyuiexamplesAssets" BeforeTargets="Build">
8+
<ItemGroup>
9+
<uiexamplesContentFiles Include="$(uiexamplesContentFilesPath)" />
10+
</ItemGroup>
11+
<Message Text="Copying uiexamples files: $(uiexamplesContentFilesPath) - #@(uiexamplesContentFiles->Count()) files" Importance="high" />
12+
<Copy
13+
SourceFiles="@(uiexamplesContentFiles)"
14+
DestinationFiles="@(uiexamplesContentFiles->'$(MSBuildProjectDirectory)\App_Plugins\uiexamples\%(RecursiveDir)%(Filename)%(Extension)')"
15+
SkipUnchangedFiles="true" />
16+
17+
</Target>
18+
19+
<Target Name="ClearuiexamplesAssets" BeforeTargets="Clean">
20+
<ItemGroup>
21+
<uiexamplesDir Include="$(MSBuildProjectDirectory)\App_Plugins\uiexamples\" />
22+
</ItemGroup>
23+
<Message Text="Clear old uiexamples data" Importance="high" />
24+
<RemoveDir Directories="@(uiexamplesDir)" />
25+
</Target>
26+
27+
</Project>

src/Our.Umbraco.UiExamples/Migrations/AddSectionForAdmins.cs

Lines changed: 0 additions & 44 deletions
This file was deleted.
Lines changed: 45 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,57 @@
1-
using Umbraco.Core.Logging;
1+

2+
#if NETCOREAPP
3+
using Umbraco.Cms.Core.Scoping;
4+
using Umbraco.Cms.Core.Services;
5+
using Umbraco.Cms.Core;
6+
using Umbraco.Cms.Infrastructure.Migrations;
7+
using Umbraco.Cms.Core.Logging;
8+
using Umbraco.Cms.Core.Web;
9+
#else
10+
using Umbraco.Core;
211
using Umbraco.Core.Migrations;
12+
using Umbraco.Core.Scoping;
13+
using Umbraco.Core.Services;
14+
using Umbraco.Web;
15+
#endif
16+
317

418
namespace Our.Umbraco.UiExamples.Migrations
519
{
620
public class AddSectionToAdminsMigration : MigrationBase
721
{
8-
public AddSectionToAdminsMigration( IMigrationContext context) : base(context) { }
22+
private readonly IUmbracoContextFactory _context;
23+
private readonly IScopeProvider _scopeProvider;
24+
private readonly IUserService _userService;
25+
26+
public AddSectionToAdminsMigration(IMigrationContext context,
27+
IUmbracoContextFactory umbracoContextFactory,
28+
IScopeProvider scopeProvider,
29+
IUserService userService) : base(context)
30+
{
31+
_userService = userService;
32+
_context = umbracoContextFactory;
33+
_scopeProvider = scopeProvider;
34+
}
935

36+
#if NETCOREAPP
37+
protected override void Migrate()
38+
#else
1039
public override void Migrate()
40+
#endif
1141
{
12-
Context.Logger.Info<AddSectionToAdminsMigration>("Starting migration to add UI Examples section to the admin usergroup");
13-
Context.AddPostMigration<AddSectionForAdmins>();
14-
Context.Logger.Info<AddSectionToAdminsMigration>("Migration completed");
42+
using (UmbracoContextReference umbracoContextReference = _context.EnsureUmbracoContext())
43+
{
44+
using (var scope = _scopeProvider.CreateScope())
45+
{
46+
var adminGroup = _userService.GetUserGroupByAlias(Constants.Security.AdminGroupAlias);
47+
adminGroup.AddAllowedSection("uiExamples");
48+
49+
_userService.Save(adminGroup);
50+
51+
scope.Complete();
52+
}
53+
}
54+
1555
}
1656
}
1757
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
//
2+
// FRAMEWORK ONLY CODE
3+
//
4+
#if NETFRAMEWORK
5+
using Umbraco.Core.Composing;
6+
using Umbraco.Core.Logging;
7+
using Umbraco.Core.Migrations;
8+
using Umbraco.Core.Migrations.Upgrade;
9+
using Umbraco.Core.Scoping;
10+
using Umbraco.Core.Services;
11+
12+
namespace Our.Umbraco.UiExamples.Migrations
13+
{
14+
public class UiExamplesMigrationComponent : IComponent
15+
{
16+
private readonly IScopeProvider _scopeProvider;
17+
private readonly IMigrationBuilder _migrationBuilder;
18+
private readonly IKeyValueService _keyValueService;
19+
private readonly IProfilingLogger _profilingLogger;
20+
21+
public UiExamplesMigrationComponent(IScopeProvider scopeProvider, IMigrationBuilder migrationBuilder, IKeyValueService keyValueService, IProfilingLogger profilingLogger)
22+
{
23+
_scopeProvider = scopeProvider;
24+
_migrationBuilder = migrationBuilder;
25+
_keyValueService = keyValueService;
26+
_profilingLogger = profilingLogger;
27+
}
28+
29+
30+
public void Initialize()
31+
{
32+
var upgrader = new Upgrader(new UiExamplesMigrationPlan());
33+
upgrader.Execute(_scopeProvider, _migrationBuilder, _keyValueService, _profilingLogger);
34+
}
35+
36+
public void Terminate()
37+
{ }
38+
}
39+
}
40+
#endif
Lines changed: 23 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,35 @@
1-
using Umbraco.Core;
1+
#if NETCOREAPP
2+
using Umbraco.Cms.Core.Composing;
3+
using Umbraco.Cms.Core.DependencyInjection;
4+
using Umbraco.Cms.Core.Events;
5+
using Umbraco.Cms.Core.Notifications;
6+
#else
7+
using Umbraco.Core;
28
using Umbraco.Core.Composing;
3-
using Umbraco.Core.Logging;
4-
using Umbraco.Core.Migrations;
5-
using Umbraco.Core.Migrations.Upgrade;
6-
using Umbraco.Core.Scoping;
7-
using Umbraco.Core.Services;
9+
#endif
10+
811

912
namespace Our.Umbraco.UiExamples.Migrations
1013
{
11-
[RuntimeLevel(MinLevel = RuntimeLevel.Run)]
12-
public class UiExamplesMigrationComposer : ComponentComposer<UiExamplesMigrationComponent>, IUserComposer
13-
{ }
1414

15-
public class UiExamplesMigrationComponent : IComponent
16-
{
17-
private readonly IScopeProvider _scopeProvider;
18-
private readonly IMigrationBuilder _migrationBuilder;
19-
private readonly IKeyValueService _keyValueService;
20-
private readonly IProfilingLogger _profilingLogger;
15+
#if NETCOREAPP
2116

22-
public UiExamplesMigrationComponent(IScopeProvider scopeProvider, IMigrationBuilder migrationBuilder, IKeyValueService keyValueService, IProfilingLogger profilingLogger)
17+
public class UiExamplesMigrationComposer : IComposer
18+
{
19+
public void Compose(IUmbracoBuilder builder)
2320
{
24-
_scopeProvider = scopeProvider;
25-
_migrationBuilder = migrationBuilder;
26-
_keyValueService = keyValueService;
27-
_profilingLogger = profilingLogger;
21+
builder.AddNotificationHandler<UmbracoApplicationStartingNotification, UmbracoAppStartingHandler>();
2822
}
23+
}
24+
25+
26+
#else
27+
[RuntimeLevel(MinLevel = RuntimeLevel.Run)]
28+
public class UiExamplesMigrationComposer : ComponentComposer<UiExamplesMigrationComponent>, IUserComposer
29+
{ }
30+
#endif
31+
2932

3033

31-
public void Initialize()
32-
{
33-
var upgrader = new Upgrader(new UiExamplesMigrationPlan());
34-
upgrader.Execute(_scopeProvider, _migrationBuilder, _keyValueService, _profilingLogger);
35-
}
3634

37-
public void Terminate()
38-
{ }
39-
}
4035
}

src/Our.Umbraco.UiExamples/Migrations/UiExamplesMigrationPlan.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
using Umbraco.Core.Migrations;
1+

2+
#if NETCOREAPP
3+
using Umbraco.Cms.Infrastructure.Migrations;
4+
#else
5+
using Umbraco.Core.Migrations;
6+
#endif
27

38
namespace Our.Umbraco.UiExamples.Migrations
49
{
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#if NETCOREAPP
2+
3+
using Umbraco.Cms.Core.Events;
4+
using Umbraco.Cms.Core.Migrations;
5+
using Umbraco.Cms.Core.Notifications;
6+
using Umbraco.Cms.Core.Scoping;
7+
using Umbraco.Cms.Core.Services;
8+
using Umbraco.Cms.Infrastructure.Migrations.Upgrade;
9+
10+
namespace Our.Umbraco.UiExamples.Migrations
11+
{
12+
public class UmbracoAppStartingHandler
13+
: INotificationHandler<UmbracoApplicationStartingNotification>
14+
{
15+
private readonly IRuntimeState _runtimeState;
16+
private readonly IMigrationPlanExecutor _migrationPlanExecutor;
17+
private readonly IScopeProvider _scopeProvider;
18+
private readonly IKeyValueService _keyValueService;
19+
20+
public UmbracoAppStartingHandler(IRuntimeState runtimeState,
21+
IMigrationPlanExecutor migrationPlanExecutor,
22+
IScopeProvider scopeProvider,
23+
IKeyValueService keyValueService
24+
)
25+
{
26+
_runtimeState = runtimeState;
27+
28+
_migrationPlanExecutor = migrationPlanExecutor;
29+
_scopeProvider = scopeProvider;
30+
_keyValueService = keyValueService;
31+
}
32+
public void Handle(UmbracoApplicationStartingNotification notification)
33+
{
34+
if (_runtimeState.Level == global::Umbraco.Cms.Core.RuntimeLevel.Run)
35+
{
36+
var upgrader = new Upgrader(new UiExamplesMigrationPlan());
37+
upgrader.Execute(_migrationPlanExecutor, _scopeProvider, _keyValueService);
38+
39+
}
40+
}
41+
}
42+
}
43+
#endif
Lines changed: 60 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,66 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net472</TargetFramework>
4+
<TargetFrameworks>net472;net50</TargetFrameworks>
55
</PropertyGroup>
66

7-
<ItemGroup>
8-
<PackageReference Include="UmbracoCms.Web" Version="8.10.1" />
9-
</ItemGroup>
7+
<!-- nuget package stuff -->
8+
<PropertyGroup>
9+
<PackageId>Our.Umbraco.UIExamples</PackageId>
10+
<Version>2.0-beta001</Version>
11+
12+
<PackageIconUrl></PackageIconUrl>
13+
<PackageLicenseExpression>MIT</PackageLicenseExpression>
14+
<PackageProjectUrl>https://our.umbraco.com/packages/developer-tools/ui-examples/</PackageProjectUrl>
15+
<PackageTags>Umbraco</PackageTags>
16+
17+
<RepositoryUrl>https://github.com/umbraco/UI-Examples</RepositoryUrl>
18+
19+
<Description>A collection of backoffice elements designed to help Umbraco developers extend the backoffice.</Description>
20+
<PackageReleaseNotes>
21+
1.0 - Initial version
22+
2.0 - Multi-targeted v8/v9 version
23+
</PackageReleaseNotes>
24+
25+
<EmbedUntrackedSources>true</EmbedUntrackedSources>
26+
<IncludeSymbols>true</IncludeSymbols>
27+
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
28+
29+
<ContentTargetFolders>content</ContentTargetFolders>
30+
31+
<PackageOutputPath>../../output</PackageOutputPath>
32+
33+
</PropertyGroup>
34+
35+
<!-- package files -->
36+
<ItemGroup>
37+
<Content Include="App_Plugins\**\*.*">
38+
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
39+
<CopyToPublishDirectory>Always</CopyToPublishDirectory>
40+
</Content>
41+
42+
<!-- target file to copy app_plugins in .netcore -->
43+
<None Include="build\**\*.*">
44+
<Pack>True</Pack>
45+
<PackagePath>buildTransitive</PackagePath>
46+
</None>
47+
48+
</ItemGroup>
49+
50+
51+
<ItemGroup Condition="'$(TargetFramework)' == 'net472'">
52+
<PackageReference Include="UmbracoCms.Web" Version="8.10.1" />
53+
</ItemGroup>
54+
55+
<ItemGroup Condition="'$(TargetFramework)' == 'net50'">
56+
<PackageReference Include="Umbraco.Cms.Web.Website" Version="9.0.0-rc001" />
57+
<PackageReference Include="Umbraco.Cms.Web.BackOffice" Version="9.0.0-rc001" />
58+
</ItemGroup>
59+
60+
<Target Name="RemoveLuceneAnalyzer" BeforeTargets="CoreCompile">
61+
<ItemGroup>
62+
<Analyzer Remove="@(Analyzer)" Condition="%(FileName) == 'Lucene.Net.CodeAnalysis.CSharp'" />
63+
</ItemGroup>
64+
</Target>
1065

1166
</Project>

0 commit comments

Comments
 (0)