dto mapper
using System;
using Two90Signs.Core.Domain.Common;
using Two90Signs.Core.Domain.Customer;
namespace Two90Signs.Presentation.API.Models.Quote
{
public class QuoteSearchListDTO : ISelectList
{
/// <summary>
/// The customer's storage ID
/// </summary>
public int Id { get; set; }
/// <summary>
/// The customer's 290-assigned number
/// </summary>
public string CustomerNumber { get; set; }
/// <summary>
/// The customer's full name
/// </summary>
public string CustomerName { get; set; }
/// <summary>
/// Quote number (old match to M2M)
/// </summary>
public string QuoteNumber { get; set; }
/// <summary>
/// Sales order number
/// </summary>
public string SalesOrderNumber { get; set; }
/// <summary>
/// Gets or sets the name of the project.
/// </summary>
/// <value>The name of the project.</value>
public string ProjectName { get; set; }
public AccountTypeEntity AccountType { get; set; }
public CustomerTypeEntity CustomerType { get; set; }
public AddressEntity SoldToAddress { get; set; }
public DateTime? CreatedDate { get; set; }
public DateTime? UtcEditDate { get; set; }
public string EditDateString => UtcEditDate?.ToShortDateString();
/// <summary>
/// The value to select when this is included in a select list
/// </summary>
public string SelectValue => Id.ToString( );
/// <summary>
/// The description to use when this is included in a select list
/// </summary>
public string SelectText => CustomerName;
/// <summary>
/// Quote status
/// </summary>
public string QuoteStatus { get; set; }
/// <summary>
/// Quote start date
/// </summary>
public DateTime? QuoteIssuedDate { get; set; }
/// <summary>
/// Customer service rep's initials
/// </summary>
public string CSRInitials { get; set; }
}
}
using System;
using Two90Signs.Core.Domain.Common;
using Two90Signs.Core.Domain.Customer;
using Two90Signs.Core.Domain.SalesRep;
using Two90Signs.Core.Domain.Security;
namespace Two90Signs.Core.Domain.QuoteOrder
{
public class QuoteOrderSummaryEntity : ISelectList
{
public virtual int Id { get; set; }
public virtual string CustomerNumber { get; set; }
public virtual string CustomerName { get; set; }
public virtual string QuoteNumber { get; set; }
public virtual string SalesOrderNumber { get; set; }
public virtual string ProjectName { get; set; }
public virtual AccountTypeEntity AccountType { get; set; }
public virtual CustomerTypeEntity CustomerType { get; set; }
public virtual AddressEntity SoldToAddress { get; set; }
public virtual DateTime? CreatedDate { get; set; }
public virtual DateTime? UtcEditDate { get; set; }
public virtual QuoteOrderStatusEntity QuoteOrderStatus { get; set; }
public virtual UserMaster CustomerServiceRep { get; set; }
public virtual DateTime? OrderStartDate { get; set; }
public virtual DateTime? QuoteIssuedDate { get; set; }
public virtual DateTime? ShipDate { get; set; }
public virtual string CustomerNumberName
{
get { return string.Format( "{0} - {1}", CustomerNumber, CustomerName ); }
}
public virtual string SelectValue
{
get
{
return Id.ToString( );
}
}
public virtual string SelectText
{
get
{
return CustomerName;
}
}
public override bool Equals( object obj )
{
return ( obj is QuoteOrderSummaryEntity && ( obj as QuoteOrderSummaryEntity ).Id == Id );
}
public override int GetHashCode()
{
return Id;
}
}
}
using AutoMapper;
using Two90Signs.Core.Domain.QuoteOrder;
using Two90Signs.Presentation.API.Models.Quote;
using Two90Signs.Presentation.API.Models.QuoteOrder.Order;
namespace Two90Signs.Infrastructure.Mapping.Profiles
{
internal class QuoteOrderSearchProfile : Profile
{
public QuoteOrderSearchProfile()
{
CreateMap<QuoteSearchInputDTO, QuoteOrderSearchParams>( MemberList.Source )
.ForMember( dest => dest.ContactFirstName, opts => opts.MapFrom( src => src.ContactFirstName ) )
.ForMember( dest => dest.ContactLastName, opts => opts.MapFrom( src => src.ContactLastName ) )
.ForMember( dest => dest.ContactEmailAddress, opts => opts.MapFrom( src => src.ContactEmailAddress ) )
.ForMember(dest => dest.QuoteOrderDateStart, opts => opts.MapFrom(src => src.QuoteDateStart))
.ForMember(dest => dest.QuoteOrderDateEnd, opts => opts.MapFrom(src => src.QuoteDateEnd))
;
CreateMap<OrderSearchInputDTO, QuoteOrderSearchParams>(MemberList.Source)
.ForMember(dest => dest.QuoteOrderDateStart, opts => opts.MapFrom(src => src.OrderDateStart))
.ForMember(dest => dest.QuoteOrderDateEnd, opts => opts.MapFrom(src => src.OrderDateEnd));
CreateMap<QuoteOrderSummaryEntity, QuoteSearchListDTO>()
.ForMember(dest => dest.QuoteStatus, opts => opts.MapFrom(src => src.QuoteOrderStatus.Name))
.ForMember(dest => dest.CSRInitials, opts => opts.MapFrom(src => src.CustomerServiceRep.Initials));
CreateMap<QuoteOrderSummaryEntity, OrderListDTO>()
.ForMember(x => x.OrderStatus, y => y.MapFrom(z => z.QuoteOrderStatus.Name))
.ForMember(x => x.CSRInitials, y => y.MapFrom(z => z.CustomerServiceRep.Initials));
}
}
}