Mango.Nop.Libraries/Mango.Nop.Core/Dtos/ModelDtoBase.cs

46 lines
996 B
C#

using AyCode.Core.Interfaces;
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<TMainEntity> : ModelDtoBase, IModelDtoBase<TMainEntity> 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<TMainEntity>();
CopyDtoValuesToEntity(mainEntity);
return mainEntity;
}
public virtual void CopyDtoValuesToEntity(TMainEntity entity)
{
entity.Id = Id;
}
public virtual void CopyEntityValuesToDto(TMainEntity entity)
{
Id = entity.Id;
}
}