예제 #1
0
 private Card(CardNumber number, ExpiryDate expiryDate, Cvv cvv, string?holderName)
 {
     Number     = number;
     Cvv        = cvv;
     ExpiryDate = expiryDate;
     HolderName = holderName;
 }
예제 #2
0
        /// <summary>
        /// Returns a <see cref="Card"/>.
        /// </summary>
        /// <param name="number">The <see cref="CardNumber"/>.</param>
        /// <param name="expiryDate">The <see cref="ExpiryDate"/>.</param>
        /// <param name="cvv">The <see cref="Cvv"/>.</param>
        /// <param name="holderName">The card holder name.</param>
        /// <returns>A <see cref="Result{Card}"/> containing either a card or an error.</returns>
        public static Result <Card> Create(
            CardNumber number,
            ExpiryDate expiryDate,
            Cvv cvv,
            string?holderName = null)
        {
            if (number is null)
            {
                throw new ArgumentNullException(nameof(number));
            }
            if (expiryDate is null)
            {
                throw new ArgumentNullException(nameof(expiryDate));
            }
            if (cvv is null)
            {
                throw new ArgumentNullException(nameof(cvv));
            }

            return(Result.Ok(new Card(number, expiryDate, cvv, holderName)));
        }