2017-01-17 18:32:40 -08:00
|
|
|
|
namespace Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate
|
2016-11-22 18:40:47 +01:00
|
|
|
|
{
|
|
|
|
|
using Microsoft.eShopOnContainers.Services.Ordering.Domain.SeedWork;
|
|
|
|
|
using System;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class Payment
|
2016-11-24 14:59:25 +01:00
|
|
|
|
: Entity
|
2016-11-22 18:40:47 +01:00
|
|
|
|
{
|
2017-01-18 16:51:44 -08:00
|
|
|
|
public string Alias { get; private set; }
|
2016-11-24 14:59:25 +01:00
|
|
|
|
public int BuyerId { get; private set; }
|
|
|
|
|
|
2016-11-22 18:40:47 +01:00
|
|
|
|
public string CardNumber { get; private set; }
|
|
|
|
|
|
|
|
|
|
public string SecurityNumber { get; private set; }
|
|
|
|
|
|
|
|
|
|
public string CardHolderName { get; private set; }
|
|
|
|
|
|
|
|
|
|
public int CardTypeId { get; private set; }
|
|
|
|
|
|
|
|
|
|
public CardType CardType { get; private set; }
|
|
|
|
|
|
|
|
|
|
public DateTime Expiration { get; private set; }
|
|
|
|
|
|
|
|
|
|
protected Payment() { }
|
2016-11-24 14:59:25 +01:00
|
|
|
|
|
2017-01-18 16:51:44 -08:00
|
|
|
|
public Payment(string alias, string cardNumber, string securityNumber, string cardHolderName, DateTime expiration, int cardTypeId)
|
2016-11-24 14:59:25 +01:00
|
|
|
|
{
|
|
|
|
|
if (String.IsNullOrWhiteSpace(cardNumber))
|
|
|
|
|
{
|
|
|
|
|
throw new ArgumentException(nameof(cardNumber));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (String.IsNullOrWhiteSpace(securityNumber))
|
|
|
|
|
{
|
|
|
|
|
throw new ArgumentException(nameof(securityNumber));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (String.IsNullOrWhiteSpace(cardHolderName))
|
|
|
|
|
{
|
|
|
|
|
throw new ArgumentException(nameof(cardHolderName));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (expiration < DateTime.UtcNow)
|
|
|
|
|
{
|
|
|
|
|
throw new ArgumentException(nameof(expiration));
|
|
|
|
|
}
|
|
|
|
|
|
2017-01-18 16:51:44 -08:00
|
|
|
|
this.Alias = alias;
|
2016-11-24 14:59:25 +01:00
|
|
|
|
this.CardNumber = cardNumber;
|
|
|
|
|
this.SecurityNumber = securityNumber;
|
|
|
|
|
this.CardHolderName = cardHolderName;
|
|
|
|
|
this.Expiration = expiration;
|
|
|
|
|
this.CardTypeId = cardTypeId;
|
|
|
|
|
}
|
2016-11-22 18:40:47 +01:00
|
|
|
|
}
|
|
|
|
|
}
|