private void WriteEntityLoader <T>( ICodeContainer <T> codeContainer, string entityTypeName, string entityVarName, string entityIdVarName) { codeContainer.AddCode( $"{entityTypeName} {entityVarName} = {_entityStoreFieldName}" + $".GetOrCreate<{entityTypeName}>({entityIdVarName});"); }
private void WritePropertyAssignments <T>(ICodeContainer <T> codeContainer, IReadOnlyList <PropertyDescriptor> properties, string entityVarName) { foreach (PropertyDescriptor property in properties) { codeContainer.AddCode( AssignmentBuilder.New() .SetLefthandSide($"{entityVarName}.{property.Name}") .SetRighthandSide(BuildUpdateMethodCall(property))); } }
private void WriteEntityLoader <T>( ICodeContainer <T> codeContainer, string entityTypeName) { codeContainer.AddCode( AssignmentBuilder .New() .SetLefthandSide($"{entityTypeName} {_entity}") .SetRighthandSide( MethodCallBuilder .Inline() .SetMethodName(_entityStore, nameof(IEntityStore.GetOrCreate)) .AddGeneric(entityTypeName) .AddArgument(_entityId))); }