Skip to content
This repository was archived by the owner on Apr 6, 2024. It is now read-only.

Commit d61728c

Browse files
committed
(GH-34) Add report using DevExtreme PivotGrid
1 parent 6c343f8 commit d61728c

10 files changed

+830
-1
lines changed

src/Cake.Issues.Reporting.Generic.Tests/Cake.Issues.Reporting.Generic.Tests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@
8383
</Reference>
8484
</ItemGroup>
8585
<ItemGroup>
86+
<Compile Include="HtmlDxPivotGridAreaExtensionsTests.cs" />
8687
<Compile Include="ColumnSortOrderExtensionsTests.cs" />
8788
<Compile Include="DevExtremeThemeExtensionsTests.cs" />
8889
<Compile Include="ExceptionAssertExtensions.cs" />

src/Cake.Issues.Reporting.Generic.Tests/GenericIssueReportGeneratorTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public sealed class TheInternalCreateReportMethod
4343
[InlineData(GenericIssueReportTemplate.HtmlDiagnostic)]
4444
[InlineData(GenericIssueReportTemplate.HtmlDataTable)]
4545
[InlineData(GenericIssueReportTemplate.HtmlDxDataGrid)]
46+
[InlineData(GenericIssueReportTemplate.HtmlDxPivotGrid)]
4647
public void Should_Generate_Report_From_Embedded_Template(GenericIssueReportTemplate template)
4748
{
4849
// Given
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
namespace Cake.Issues.Reporting.Generic.Tests
2+
{
3+
using Shouldly;
4+
using Xunit;
5+
6+
public sealed class HtmlDxPivotGridAreaExtensionsTests
7+
{
8+
public sealed class TheToJavaScriptIdentifierMethod
9+
{
10+
[Theory]
11+
[InlineData(HtmlDxPivotGridArea.Column)]
12+
[InlineData(HtmlDxPivotGridArea.Row)]
13+
[InlineData(HtmlDxPivotGridArea.Filter)]
14+
[InlineData(HtmlDxPivotGridArea.Data)]
15+
public void Should_Return_Identifier(HtmlDxPivotGridArea area)
16+
{
17+
// Given
18+
19+
// When
20+
var result = area.ToJavaScriptIdentifier();
21+
22+
// Then
23+
result.ShouldNotBeNullOrWhiteSpace();
24+
}
25+
}
26+
}
27+
}

src/Cake.Issues.Reporting.Generic/Cake.Issues.Reporting.Generic.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,14 @@
6868
</ItemGroup>
6969
<ItemGroup>
7070
<Compile Include="ColumnSortOrder.cs" />
71+
<Compile Include="HtmlDxPivotGridAreaExtensions.cs" />
7172
<Compile Include="ColumnSortOrderExtensions.cs" />
7273
<Compile Include="DevExtremeTheme.cs" />
7374
<Compile Include="DevExtremeThemeExtensions.cs" />
7475
<Compile Include="FileLinkSettings.cs" />
7576
<Compile Include="HtmlDxDataGridColumnDescription.cs" />
77+
<Compile Include="HtmlDxPivotGridArea.cs" />
78+
<Compile Include="HtmlDxPivotGridOption.cs" />
7679
<Compile Include="HtmlDxDataGridOption.cs" />
7780
<Compile Include="GenericIssueReportFormatAliases.cs" />
7881
<Compile Include="GenericIssueReportFormatSettingsExtensions.cs" />
@@ -96,6 +99,7 @@
9699
</None>
97100
<EmbeddedResource Include="Templates\DataTable.cshtml" />
98101
<EmbeddedResource Include="Templates\DxDataGrid.cshtml" />
102+
<EmbeddedResource Include="Templates\DxPivotGrid.cshtml" />
99103
</ItemGroup>
100104
<ItemGroup>
101105
<Analyzer Include="..\packages\Microsoft.CodeQuality.Analyzers.2.6.3\analyzers\dotnet\cs\Humanizer.dll" />

src/Cake.Issues.Reporting.Generic/GenericIssueReportTemplate.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@ public enum GenericIssueReportTemplate
1919
/// Template for a HTML report containing a rich data grid with sorting, filtering, grouping and search capabilities.
2020
/// See <see cref="HtmlDxDataGridOption"/> for template specific options.
2121
/// </summary>
22-
HtmlDxDataGrid
22+
HtmlDxDataGrid,
23+
24+
/// <summary>
25+
/// Template for a HTML report containing a pivot grid showing number of errors, warnings, suggestions and hints,
26+
/// with a detail drill down view and an overview chart.
27+
/// </summary>
28+
HtmlDxPivotGrid
2329
}
2430
}

src/Cake.Issues.Reporting.Generic/GenericIssueReportTemplateExtensions.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ public static string GetTemplateResourceName(this GenericIssueReportTemplate tem
2525
case GenericIssueReportTemplate.HtmlDxDataGrid:
2626
return "DxDataGrid.cshtml";
2727

28+
case GenericIssueReportTemplate.HtmlDxPivotGrid:
29+
return "DxPivotGrid.cshtml";
30+
2831
default:
2932
throw new ArgumentOutOfRangeException(nameof(template));
3033
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
namespace Cake.Issues.Reporting.Generic
2+
{
3+
/// <summary>
4+
/// Possible areas for fields.
5+
/// </summary>
6+
public enum HtmlDxPivotGridArea
7+
{
8+
/// <summary>
9+
/// Field will be shown as row.
10+
/// </summary>
11+
Row,
12+
13+
/// <summary>
14+
/// Field will be shown as column.
15+
/// </summary>
16+
Column,
17+
18+
/// <summary>
19+
/// Field will be shown as data.
20+
/// </summary>
21+
Data,
22+
23+
/// <summary>
24+
/// Field will be available to filter.
25+
/// </summary>
26+
Filter
27+
}
28+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
namespace Cake.Issues.Reporting.Generic
2+
{
3+
using System;
4+
5+
/// <summary>
6+
/// Extension methods for the <see cref="HtmlDxPivotGridArea"/> enumeration.
7+
/// </summary>
8+
public static class HtmlDxPivotGridAreaExtensions
9+
{
10+
/// <summary>
11+
/// Returns the short identifier of the pivot grid area.
12+
/// </summary>
13+
/// <param name="area">Area for which the identifier should be returned.</param>
14+
/// <returns>Short identifier of the area.</returns>
15+
public static string ToJavaScriptIdentifier(this HtmlDxPivotGridArea area)
16+
{
17+
switch (area)
18+
{
19+
case HtmlDxPivotGridArea.Row:
20+
return "row";
21+
case HtmlDxPivotGridArea.Column:
22+
return "column";
23+
case HtmlDxPivotGridArea.Data:
24+
return "data";
25+
case HtmlDxPivotGridArea.Filter:
26+
return "filter";
27+
default:
28+
throw new ArgumentException("Unknown enumeration value", nameof(area));
29+
}
30+
}
31+
}
32+
}

0 commit comments

Comments
 (0)