using Nop.Core; namespace Mango.Nop.Core.Dtos; public abstract class ModelDtoBase : IModelDtoBase { public int Id { get; set; } protected ModelDtoBase(){} protected ModelDtoBase(int id) => Id = id; } public abstract class ModelDtoBase : ModelDtoBase, IModelDtoBase where TMainEntity : BaseEntity { protected ModelDtoBase() : base() { } protected ModelDtoBase(int id) : base(id) { } protected ModelDtoBase(TMainEntity mainEntity) { CopyEntityValuesToDto(mainEntity); } public virtual TMainEntity CreateMainEntity() { var mainEntity = Activator.CreateInstance(); CopyDtoValuesToEntity(mainEntity); return mainEntity; } public virtual void CopyDtoValuesToEntity(TMainEntity entity) { entity.Id = Id; } public virtual void CopyEntityValuesToDto(TMainEntity entity) { Id = entity.Id; } }