Inject empty constructor
This commit is contained in:
parent
a6f5116656
commit
7de9b48c69
|
@ -32,6 +32,7 @@ namespace MapTo.Extensions
|
|||
.WriteOpeningBracket()
|
||||
.WriteLine()
|
||||
// Class body
|
||||
.GeneratePublicEmptyConstructor(model, ref constructorHeaders, true)
|
||||
.GeneratePublicConstructor(model, ref constructorHeaders)
|
||||
.GeneratePublicConstructor(model, ref constructorHeaders, true);
|
||||
|
||||
|
@ -112,6 +113,40 @@ namespace MapTo.Extensions
|
|||
return builder;
|
||||
}
|
||||
|
||||
private static SourceBuilder GeneratePublicEmptyConstructor(this SourceBuilder builder, MappingModel model, ref List<string> constructorHeaders, bool filterNonMapped = false)
|
||||
{
|
||||
const string mappingContextParameterName = "context";
|
||||
|
||||
foreach (var targetSourceType in model.MappedSourceTypes)
|
||||
{
|
||||
var baseConstructor = /*model.HasMappedBaseClass ? $" : base({mappingContextParameterName}, {sourceClassParameterName})" :*/ string.Empty;
|
||||
|
||||
var constructorHeader =
|
||||
$"public {model.TypeIdentifierName}(){baseConstructor}";
|
||||
|
||||
|
||||
bool hasAlreadyConstructor = false;
|
||||
|
||||
foreach (var header in constructorHeaders)
|
||||
{
|
||||
if(constructorHeader.Contains(header)) hasAlreadyConstructor = true;
|
||||
}
|
||||
|
||||
if (hasAlreadyConstructor) continue;
|
||||
|
||||
constructorHeaders.Add(constructorHeader);
|
||||
|
||||
builder
|
||||
.WriteLine(constructorHeader)
|
||||
.WriteOpeningBracket()
|
||||
.WriteClosingBracket()
|
||||
.WriteLine();
|
||||
}
|
||||
|
||||
// End constructor declaration
|
||||
return builder;
|
||||
}
|
||||
|
||||
private static bool IsMappedProperty(this System.Collections.Immutable.ImmutableArray<MappedMember> properties, MappedMember property)
|
||||
{
|
||||
|
||||
|
|
Loading…
Reference in New Issue