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

Commit a73f0f7

Browse files
committed
(GH-34) Add report using DevExtreme PivotGrid
1 parent 05bf1dc commit a73f0f7

9 files changed

+825
-0
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ public sealed class TheInternalCreateReportMethod
4646
[InlineData(GenericIssueReportTemplate.HtmlDiagnostic)]
4747
[InlineData(GenericIssueReportTemplate.HtmlDataTable)]
4848
[InlineData(GenericIssueReportTemplate.HtmlDxDataGrid)]
49+
[InlineData(GenericIssueReportTemplate.HtmlDxPivotGrid)]
4950
public void Should_Generate_Report_From_Embedded_Template(GenericIssueReportTemplate template)
5051
{
5152
// 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: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
<EmbeddedResource Include="Templates\DataTable.cshtml" />
2222
<EmbeddedResource Include="Templates\Diagnostic.cshtml" />
2323
<EmbeddedResource Include="Templates\DxDataGrid.cshtml" />
24+
<EmbeddedResource Include="Templates\DxPivotGrid.cshtml" />
2425
</ItemGroup>
2526

2627
<ItemGroup>

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,11 @@ public enum GenericIssueReportTemplate
2020
/// See <see cref="HtmlDxDataGridOption"/> for template specific options.
2121
/// </summary>
2222
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)