Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version 1.0.6 #11

Merged
merged 5 commits into from
Jan 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 21 additions & 4 deletions Build/.nuke/build.schema.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Build Schema",
"$ref": "#/definitions/build",
"title": "Build Schema",
"definitions": {
"build": {
"type": "object",
Expand Down Expand Up @@ -85,12 +85,18 @@
"ProjectNameFolder": {
"type": "boolean"
},
"ProjectRemoveTargetFrameworkFolder": {
"type": "boolean"
},
"ProjectVersionFolder": {
"type": "boolean"
},
"ReleaseBundle": {
"type": "boolean"
},
"ReleaseFolder": {
"type": "string"
},
"ReleaseNameVersion": {
"type": "boolean"
},
Expand Down Expand Up @@ -121,7 +127,8 @@
"GitRelease",
"PackageBuilder",
"Release",
"Sign"
"Sign",
"Test"
]
}
},
Expand All @@ -141,10 +148,20 @@
"GitRelease",
"PackageBuilder",
"Release",
"Sign"
"Sign",
"Test"
]
}
},
"TestBuildStopWhenFailed": {
"type": "boolean"
},
"TestProjectName": {
"type": "string"
},
"TestResults": {
"type": "boolean"
},
"VendorDescription": {
"type": "string"
},
Expand All @@ -164,4 +181,4 @@
}
}
}
}
}
2 changes: 1 addition & 1 deletion Build/Build.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
using ricaun.Nuke;
using ricaun.Nuke.Components;

class Build : NukeBuild, IPublishRevit
class Build : NukeBuild, IPublishRevit, ITest
{
string IHazRevitPackageBuilder.Application => "Revit.App";
public static int Main() => Execute<Build>(x => x.From<IPublishRevit>().Build);
Expand Down
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,17 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## [1.0.6] / 2024-01-27
### Features
- Using `ricaun.Revit.UI.Tasks`
### Tests
- Add `CodeDom` simple test.
### Updated
- Add `ICodeDomService` interface
- Add `CodeDomFactory` class
### Remove
- Remove `Revit.Async`

## [1.0.5] / 2023-05-05
### Features
- Support C# version 7.3 in Revit 2021+ with `DotNetCompilerPlatform`.
Expand Down Expand Up @@ -38,6 +49,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- [x] AutoUpdater

[vNext]: ../../compare/1.0.0...HEAD
[1.0.6]: ../../compare/1.0.5...1.0.6
[1.0.5]: ../../compare/1.0.4...1.0.5
[1.0.4]: ../../compare/1.0.3...1.0.4
[1.0.3]: ../../compare/1.0.2...1.0.3
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ namespace RevitAddin
* [ricaun.Revit.UI](https://github.com/ricaun-io/ricaun.Revit.UI)
* [ricaun.Revit.Mvvm](https://github.com/ricaun-io/ricaun.Revit.Mvvm)
* [ricaun.Revit.Github](https://github.com/ricaun-io/ricaun.Revit.Github)
* [Revit.Async](https://github.com/KennanChan/Revit.Async)
* [ricaun.Revit.UI.Tasks](https://github.com/ricaun-io/ricaun.Revit.UI.Tasks)

## Installation

Expand Down
31 changes: 31 additions & 0 deletions RevitAddin.CommandLoader.Tests/CodeDom/CodeDomTester.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
using RevitAddin.CommandLoader.Services.CodeDom;
using System.Reflection;

namespace RevitAddin.CommandLoader.Tests.CodeDom
{
public class CodeDomTester
{
private readonly ICodeDomService codeDomService;
private readonly CodeTester codeTester;

public CodeDomTester(ICodeDomService codeDomService, CodeTester codeTester)
{
this.codeDomService = codeDomService;
this.codeTester = codeTester;
}

public Assembly GenerateCode()
{
var assembly = codeDomService
.SetDefines(codeTester.Defines)
.GenerateCode(codeTester.Code);
return assembly;
}

public bool Test()
{
var assembly = GenerateCode();
return codeTester.HasMethodTest(assembly) && codeTester.HasMethodDebug(assembly);
}
}
}
29 changes: 29 additions & 0 deletions RevitAddin.CommandLoader.Tests/CodeDom/CodeTester.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
using System.Reflection;

namespace RevitAddin.CommandLoader.Tests.CodeDom
{
public class CodeTester
{
const string code = """
public class Tests
{
public void Test() { }
#if DEBUG
public void Debug() { }
#endif
}
""";
public string Code => code;
public string[] Defines => new[] { "DEBUG" };
public bool HasMethodTest(Assembly assembly)
{
var method = assembly.GetType("Tests").GetMethod("Test");
return method is not null;
}
public bool HasMethodDebug(Assembly assembly)
{
var method = assembly.GetType("Tests").GetMethod("Debug");
return method is not null;
}
}
}
32 changes: 32 additions & 0 deletions RevitAddin.CommandLoader.Tests/CodeDomTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
using NUnit.Framework;
using RevitAddin.CommandLoader.Services;
using RevitAddin.CommandLoader.Services.CodeDom;
using RevitAddin.CommandLoader.Tests.CodeDom;
using System;

namespace RevitAddin.CommandLoader.Tests
{
public class CodeDomTests
{
CodeTester CodeTester = new CodeTester();

public void Test_ICodeDomService(ICodeDomService codeDomService)
{
var assembly = codeDomService
.SetDefines(CodeTester.Defines)
.GenerateCode(CodeTester.Code);

Console.WriteLine(assembly);

Assert.IsTrue(CodeTester.HasMethodTest(assembly), "Test method not found.");
Assert.IsTrue(CodeTester.HasMethodDebug(assembly), "Debug method not found.");
}

[Test]
public void Test_CodeDomService()
{
var codeDomService = CodeDomFactory.Instance;
Test_ICodeDomService(codeDomService);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<IsPackable>false</IsPackable>
<LangVersion>Latest</LangVersion>
<Configurations>Debug 2017;2017;Debug 2021;2021</Configurations>
</PropertyGroup>

<!-- RevitVersion -->
<Choose>
<When Condition="$(Configuration.Contains('2017'))">
<PropertyGroup>
<RevitVersion>2017</RevitVersion>
<TargetFramework>net46</TargetFramework>
</PropertyGroup>
</When>
<When Condition="$(Configuration.Contains('2018'))">
<PropertyGroup>
<RevitVersion>2018</RevitVersion>
<TargetFramework>net46</TargetFramework>
</PropertyGroup>
</When>
<When Condition="$(Configuration.Contains('2019'))">
<PropertyGroup>
<RevitVersion>2019</RevitVersion>
<TargetFramework>net47</TargetFramework>
</PropertyGroup>
</When>
<When Condition="$(Configuration.Contains('2020'))">
<PropertyGroup>
<RevitVersion>2020</RevitVersion>
<TargetFramework>net47</TargetFramework>
</PropertyGroup>
</When>
<When Condition="$(Configuration.Contains('2021'))">
<PropertyGroup>
<RevitVersion>2021</RevitVersion>
<TargetFramework>net48</TargetFramework>
</PropertyGroup>
</When>
<When Condition="$(Configuration.Contains('2022'))">
<PropertyGroup>
<RevitVersion>2022</RevitVersion>
<TargetFramework>net48</TargetFramework>
</PropertyGroup>
</When>
<When Condition="$(Configuration.Contains('2023'))">
<PropertyGroup>
<RevitVersion>2023</RevitVersion>
<TargetFramework>net48</TargetFramework>
</PropertyGroup>
</When>
<Otherwise>
<PropertyGroup>
<RevitVersion>2017</RevitVersion>
<TargetFramework>net46</TargetFramework>
</PropertyGroup>
</Otherwise>
</Choose>

<!-- DefineConstants -->
<PropertyGroup>
<DefineConstants>REVIT$(RevitVersion)</DefineConstants>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="NUnit" Version="3.13.3" />
<PackageReference Include="NUnit3TestAdapter" Version="3.16.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\RevitAddin.CommandLoader\RevitAddin.CommandLoader.csproj" />
</ItemGroup>

<ItemGroup Condition=" '$(TargetFramework)' == 'net48' ">
<PackageReference Include="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" Version="4.1.0" />
</ItemGroup>

</Project>
10 changes: 10 additions & 0 deletions RevitAddin.CommandLoader.sln
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution", "Solution", "{E6
README.md = README.md
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RevitAddin.CommandLoader.Tests", "RevitAddin.CommandLoader.Tests\RevitAddin.CommandLoader.Tests.csproj", "{42C706AF-0255-4E98-A5A0-C043FA7B0496}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
2017|Any CPU = 2017|Any CPU
Expand All @@ -34,6 +36,14 @@ Global
{34853418-411C-4B27-82AF-DDE5309AEE10}.2021|Any CPU.ActiveCfg = Release|Any CPU
{34853418-411C-4B27-82AF-DDE5309AEE10}.Debug 2017|Any CPU.ActiveCfg = Debug|Any CPU
{34853418-411C-4B27-82AF-DDE5309AEE10}.Debug 2021|Any CPU.ActiveCfg = Debug|Any CPU
{42C706AF-0255-4E98-A5A0-C043FA7B0496}.2017|Any CPU.ActiveCfg = 2017|Any CPU
{42C706AF-0255-4E98-A5A0-C043FA7B0496}.2017|Any CPU.Build.0 = 2017|Any CPU
{42C706AF-0255-4E98-A5A0-C043FA7B0496}.2021|Any CPU.ActiveCfg = 2021|Any CPU
{42C706AF-0255-4E98-A5A0-C043FA7B0496}.2021|Any CPU.Build.0 = 2021|Any CPU
{42C706AF-0255-4E98-A5A0-C043FA7B0496}.Debug 2017|Any CPU.ActiveCfg = Debug|Any CPU
{42C706AF-0255-4E98-A5A0-C043FA7B0496}.Debug 2017|Any CPU.Build.0 = Debug|Any CPU
{42C706AF-0255-4E98-A5A0-C043FA7B0496}.Debug 2021|Any CPU.ActiveCfg = Debug 2021|Any CPU
{42C706AF-0255-4E98-A5A0-C043FA7B0496}.Debug 2021|Any CPU.Build.0 = Debug 2021|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
12 changes: 10 additions & 2 deletions RevitAddin.CommandLoader/Revit/App.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Revit.Async;
using RevitAddin.CommandLoader.Extensions;
using ricaun.Revit.Github;
using ricaun.Revit.UI;
using ricaun.Revit.UI.Drawing;
using ricaun.Revit.UI.Tasks;
using System;
using System.ComponentModel;
using System.Linq;
Expand All @@ -19,9 +20,14 @@ public class App : IExternalApplication
private static RibbonPanel ribbonPanel;
private static RibbonPanel ribbonPanelAssembly;
private static UIControlledApplication UIControlledApplication;

private static RevitTaskService revitTaskService;
public static IRevitTask RevitTask { get; private set; }
public Result OnStartup(UIControlledApplication application)
{
RevitTask.Initialize(application);
revitTaskService = new RevitTaskService(application);
revitTaskService.Initialize();
RevitTask = new RevitTask(revitTaskService);

UIControlledApplication = application;
ribbonPanel = application.CreatePanel("CommandLoader");
Expand All @@ -43,6 +49,8 @@ public Result OnStartup(UIControlledApplication application)
}
public Result OnShutdown(UIControlledApplication application)
{
revitTaskService?.Dispose();

ribbonPanel?.Remove();
ribbonPanelAssembly?.Remove();

Expand Down
2 changes: 1 addition & 1 deletion RevitAddin.CommandLoader/Revit/Commands/CommandTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public Result Execute(ExternalCommandData commandData, ref string message, Eleme

try
{
CodeDomService codeDomService = new CodeDomService();
var codeDomService = CodeDomFactory.Instance;
var assembly = codeDomService.GenerateCode(
CodeSamples.CommandVersion,
CodeSamples.CommandTask,
Expand Down
2 changes: 1 addition & 1 deletion RevitAddin.CommandLoader/Revit/Commands/CommandTestGist.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public Result Execute(ExternalCommandData commandData, ref string message, Eleme

try
{
CodeDomService codeDomService = new CodeDomService() { UseLegacyCodeDom = true };
var codeDomService = CodeDomFactory.Instance;
var assembly = codeDomService.GenerateCode(gistContent);

App.CreateCommands(assembly);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ public Result Execute(ExternalCommandData commandData, ref string message, Eleme

try
{
CodeDomService codeDomService = new CodeDomService();
System.Console.WriteLine(gistFilesContent.Length);
var codeDomService = CodeDomFactory.Instance;
var assembly = codeDomService.GenerateCode(gistFilesContent);

App.CreateCommands(assembly);
Expand Down
Loading