MyBookmark/Modules.Library.Domain/EntityBuilders/LanguageBuilder.cs
2024-09-23 03:00:50 +03:00

33 lines
879 B
C#

using Modules.Library.Domain.Entities.Language;
namespace Modules.Library.Domain.EntityBuilders;
public class LanguageBuilder : EntityBuilder<Language>
{
private static readonly Func<Language> CreateInstanceFunc = CreateInstanceFunction();
private static readonly Action<LanguageBuilder, Language> SetInstanceFieldsAction = SetInstanceFieldsAction<LanguageBuilder>();
private readonly string _codeIso2;
private readonly string _name;
private Guid? _iconId;
public LanguageBuilder(string codeIso2, string name)
{
_codeIso2 = codeIso2;
_name = name;
}
public LanguageBuilder WithIcon(Guid iconId)
{
_iconId = iconId;
return this;
}
public override Language Build()
{
var result = CreateInstanceFunc();
SetInstanceFieldsAction(this, result);
return result;
}
}