Skip to content

Commit f38fa15

Browse files
committed
add file header support
1 parent 285b758 commit f38fa15

File tree

14 files changed

+64
-1
lines changed

14 files changed

+64
-1
lines changed

src/EntityFrameworkCore.Generator.Core/Metadata/Generation/Model.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ public Model()
1919

2020
public string? ModelAttributes { get; set; }
2121

22+
public string? ModelHeader { get; internal set; }
23+
2224

2325
public string? ValidatorNamespace { get; set; }
2426

src/EntityFrameworkCore.Generator.Core/ModelGenerator.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -538,6 +538,10 @@ private void CreateModel<TOption>(Entity entity, TOption options, ModelType mode
538538
? options.Namespace
539539
: _options.Model.Shared.Namespace;
540540

541+
var modelHeader = options.Header.HasValue()
542+
? options.Header
543+
: _options.Model.Shared.Header;
544+
541545
modelNamespace ??= "Data.Models";
542546

543547
var modelClass = ToLegalName(options.Name);
@@ -551,6 +555,7 @@ private void CreateModel<TOption>(Entity entity, TOption options, ModelType mode
551555
ModelNamespace = modelNamespace,
552556
ModelClass = modelClass,
553557
ModelAttributes = options.Attributes,
558+
ModelHeader = modelHeader
554559
};
555560

556561
foreach (var property in entity.Properties)

src/EntityFrameworkCore.Generator.Core/OptionMapper.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ private static void MapClassBase(ClassOptionsBase option, ClassBase classBase)
6363
option.Name = classBase.Name;
6464
option.BaseClass = classBase.BaseClass;
6565
option.Attributes = classBase.Attributes;
66+
option.Header = classBase.Header;
6667
}
6768

6869
private static void MapModelBase(ModelOptionsBase option, ModelBase modelBase)
@@ -109,6 +110,7 @@ private static void MapShared(SharedModelOptions option, SharedModel shared)
109110
{
110111
option.Namespace = shared.Namespace;
111112
option.Directory = shared.Directory;
113+
option.Header = shared.Header;
112114

113115
MapSelection(option.Include, shared.Include);
114116
MapSelection(option.Exclude, shared.Exclude);

src/EntityFrameworkCore.Generator.Core/Options/ClassOptionsBase.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,4 +87,13 @@ public string? Attributes
8787
get => GetProperty();
8888
set => SetProperty(value);
8989
}
90+
91+
/// <summary>
92+
/// Gets or sets the file header.
93+
/// </summary>
94+
public string? Header
95+
{
96+
get => GetProperty();
97+
set => SetProperty(value);
98+
}
9099
}

src/EntityFrameworkCore.Generator.Core/Options/SharedModelOptions.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,15 @@ public string? Directory
4545
set => SetProperty(value);
4646
}
4747

48+
/// <summary>
49+
/// Gets or sets the file header
50+
/// </summary>
51+
public string? Header
52+
{
53+
get => GetProperty();
54+
set => SetProperty(value);
55+
}
56+
4857
/// <summary>
4958
/// Gets or sets the include selection options.
5059
/// </summary>
@@ -60,5 +69,4 @@ public string? Directory
6069
/// The exclude selection options.
6170
/// </value>
6271
public SelectionOptions Exclude { get; }
63-
6472
}

src/EntityFrameworkCore.Generator.Core/Serialization/ClassBase.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,4 +55,9 @@ public abstract class ClassBase
5555
/// The attributes to add to the class
5656
/// </value>
5757
public string? Attributes { get; set; }
58+
59+
/// <summary>
60+
/// Gets or sets the file header.
61+
/// </summary>
62+
public string? Header { get; set; }
5863
}

src/EntityFrameworkCore.Generator.Core/Serialization/SharedModel.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ public SharedModel()
3232
/// </value>
3333
public string Directory { get; set; }
3434

35+
/// <summary>
36+
/// Gets or sets the file header.
37+
/// </summary>
38+
public string? Header { get; set; }
39+
3540
/// <summary>
3641
/// Gets or sets the include selection options.
3742
/// </summary>

src/EntityFrameworkCore.Generator.Core/Templates/DataContextTemplate.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,11 @@ public override string WriteCode()
1919
{
2020
CodeBuilder.Clear();
2121

22+
if (Options.Data.Context.Header.HasValue())
23+
CodeBuilder.AppendLine(Options.Data.Context.Header).AppendLine();
24+
2225
CodeBuilder.AppendLine("using System;");
26+
CodeBuilder.AppendLine();
2327
CodeBuilder.AppendLine("using Microsoft.EntityFrameworkCore;");
2428
CodeBuilder.AppendLine("using Microsoft.EntityFrameworkCore.Metadata;");
2529
CodeBuilder.AppendLine();

src/EntityFrameworkCore.Generator.Core/Templates/EntityClassTemplate.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ public override string WriteCode()
2121
{
2222
CodeBuilder.Clear();
2323

24+
if (Options.Data.Entity.Header.HasValue())
25+
CodeBuilder.AppendLine(Options.Data.Entity.Header).AppendLine();
26+
2427
CodeBuilder.AppendLine("using System;");
2528
CodeBuilder.AppendLine("using System.Collections.Generic;");
2629
CodeBuilder.AppendLine();

src/EntityFrameworkCore.Generator.Core/Templates/MapperClassTemplate.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,13 @@ public override string WriteCode()
1919
{
2020
CodeBuilder.Clear();
2121

22+
if (Options.Model.Mapper.Header.HasValue())
23+
CodeBuilder.AppendLine(Options.Model.Mapper.Header).AppendLine();
24+
2225
CodeBuilder.AppendLine("using System;");
26+
CodeBuilder.AppendLine();
2327
CodeBuilder.AppendLine("using AutoMapper;");
28+
CodeBuilder.AppendLine();
2429

2530
var imports = new SortedSet<string>
2631
{

0 commit comments

Comments
 (0)