Skip to content

Commit 673096b

Browse files
Added YamlService using YamlDotNet NuGet Package
1 parent 44092d0 commit 673096b

File tree

8 files changed

+55
-1
lines changed

8 files changed

+55
-1
lines changed

src/jQueryDatatableServerSideNetCore/Controllers/TestRegistersController.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,11 @@ await _exportService.ExportToExcel(resultList),
167167
return File(_exportService.ExportToXml(resultList),
168168
"application/xml",
169169
"data.xml");
170+
171+
case ExportFormat.Yaml:
172+
return File(_exportService.ExportToYaml(resultList),
173+
"application/yaml",
174+
"data.yaml");
170175
}
171176

172177
return null;

src/jQueryDatatableServerSideNetCore/Data/ExportFormat.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,6 @@ public class ExportFormat
1313
public const string Html = "html";
1414
public const string Json = "json";
1515
public const string Xml = "xml";
16+
public const string Yaml = "yaml";
1617
}
1718
}

src/jQueryDatatableServerSideNetCore/Program.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using jQueryDatatableServerSideNetCore.Services.HtmlService;
66
using jQueryDatatableServerSideNetCore.Services.JsonService;
77
using jQueryDatatableServerSideNetCore.Services.XmlService;
8+
using jQueryDatatableServerSideNetCore.Services.YamlService;
89
using Microsoft.AspNetCore.Identity;
910
using Microsoft.EntityFrameworkCore;
1011
using Microsoft.OpenApi.Models;
@@ -33,6 +34,7 @@
3334
builder.Services.AddScoped<IHtmlService, HtmlService>();
3435
builder.Services.AddScoped<IJsonService, JsonService>();
3536
builder.Services.AddScoped<IXmlService, XmlService>();
37+
builder.Services.AddScoped<IYamlService, YamlService>();
3638

3739
// Register the Swagger generator, defining 1 or more Swagger documents
3840
builder.Services.AddSwaggerGen(c =>

src/jQueryDatatableServerSideNetCore/Services/ExportService/ExportService.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
using jQueryDatatableServerSideNetCore.Services.HtmlService;
55
using jQueryDatatableServerSideNetCore.Services.JsonService;
66
using jQueryDatatableServerSideNetCore.Services.XmlService;
7+
using jQueryDatatableServerSideNetCore.Services.YamlService;
8+
using System.Text;
79

810
namespace jQueryDatatableServerSideNetCore.Services.ExportService
911
{
@@ -14,14 +16,16 @@ public class ExportService : IExportService
1416
private readonly IHtmlService _htmlService;
1517
private readonly IJsonService _jsonService;
1618
private readonly IXmlService _xmlService;
19+
private readonly IYamlService _yamlService;
1720

18-
public ExportService(IExcelService excelService, ICsvService csvService, IHtmlService htmlService, IJsonService jsonService, IXmlService xmlService)
21+
public ExportService(IExcelService excelService, ICsvService csvService, IHtmlService htmlService, IJsonService jsonService, IXmlService xmlService, IYamlService yamlService)
1922
{
2023
_excelService = excelService;
2124
_csvService = csvService;
2225
_htmlService = htmlService;
2326
_jsonService = jsonService;
2427
_xmlService = xmlService;
28+
_yamlService = yamlService;
2529
}
2630

2731
public async Task<byte[]> ExportToExcel(List<TestRegister> registers)
@@ -48,5 +52,10 @@ public byte[] ExportToXml(List<TestRegister> registers)
4852
{
4953
return _xmlService.Write(registers);
5054
}
55+
56+
public byte[] ExportToYaml(List<TestRegister> registers)
57+
{
58+
return _yamlService.Write(registers);
59+
}
5160
}
5261
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace jQueryDatatableServerSideNetCore.Services.YamlService
2+
{
3+
public interface IYamlService
4+
{
5+
byte[] Write<T>(IList<T> registers);
6+
}
7+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using System.Text;
2+
using YamlDotNet.Serialization;
3+
4+
namespace jQueryDatatableServerSideNetCore.Services.YamlService
5+
{
6+
public class YamlService : IYamlService
7+
{
8+
public byte[] Write<T>(IList<T> registers)
9+
{
10+
var serializer = new SerializerBuilder().Build();
11+
12+
string yamlString = serializer.Serialize(registers);
13+
14+
return Encoding.UTF8.GetBytes(yamlString);
15+
}
16+
}
17+
}

src/jQueryDatatableServerSideNetCore/jQueryDatatableServerSideNetCore.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
<PackageReference Include="RandomGen" Version="1.1.6" />
2424
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0" />
2525
<PackageReference Include="Swashbuckle.AspNetCore.Swagger" Version="6.5.0" />
26+
<PackageReference Include="YamlDotNet" Version="13.1.0" />
2627
</ItemGroup>
2728

2829
</Project>

src/jQueryDatatableServerSideNetCore/wwwroot/js/app.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,12 @@ $(document).ready(function () {
4545
action: function () {
4646
exportToXml();
4747
}
48+
},
49+
{
50+
text: 'YAML',
51+
action: function () {
52+
exportToYaml();
53+
}
4854
}
4955
],
5056
// Searching Setups
@@ -171,5 +177,11 @@ function exportToJson() {
171177
function exportToXml() {
172178
renderDownloadForm("xml");
173179

180+
$("#export-to-file-form").submit();
181+
}
182+
183+
function exportToYaml() {
184+
renderDownloadForm("yaml");
185+
174186
$("#export-to-file-form").submit();
175187
}

0 commit comments

Comments
 (0)