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

60 lines
1.8 KiB
C#

using AyCode.Core.Serializers.Attributes;
using AyCode.Core.Serializers.Toons;
using Nop.Core.Domain.Catalog;
using Nop.Core.Domain.Common;
using Nop.Core.Domain.Customers;
namespace Mango.Nop.Core.Dtos;
[AcBinarySerializable(false, true, false, true, false)]
[LinqToDB.Mapping.Table(Name = nameof(Customer))]
[System.ComponentModel.DataAnnotations.Schema.Table(nameof(Customer))]
[ToonDescription($"Data transfer object for {nameof(Customer)}", TypeRelation = ToonTypeRelation.DtoOf, RelatedTypes = [typeof(Customer)])]
public class CustomerDto : ModelDtoBase<Customer>, ISoftDeletedEntity
{
public string Username { get; set; }
public string Email { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
[ToonDescription(BusinessRule = "get => $\"{LastName} {FirstName}\"")]
public string FullName => $"{LastName} {FirstName}";
public int RegisteredInStoreId { get; set; }
public bool Deleted { get; set; }
public CustomerDto() :base()
{ }
public CustomerDto(int customerId) : base(customerId)
{ }
public CustomerDto(Customer customer) : base(customer)
{
}
public override void CopyDtoValuesToEntity(Customer entity)
{
base.CopyDtoValuesToEntity(entity);
entity.Username = Username;
entity.FirstName = FirstName;
entity.LastName = LastName;
entity.Email = Email;
entity.RegisteredInStoreId = RegisteredInStoreId;
entity.Deleted = Deleted;
}
public override void CopyEntityValuesToDto(Customer entity)
{
base.CopyEntityValuesToDto(entity);
Username = entity.Username;
FirstName = entity.FirstName;
LastName = entity.LastName;
Email = entity.Email;
RegisteredInStoreId = entity.RegisteredInStoreId;
Deleted = entity.Deleted;
}
}