using System; using MediatR; using System.Collections.Generic; using System.Runtime.Serialization; namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands { [DataContract] public class CreateOrderCommand :IAsyncRequest { [DataMember] private readonly List _orderItems; [DataMember] public string City { get; private set; } [DataMember] public string Street { get; private set; } [DataMember] public string State { get; private set; } [DataMember] public string Country { get; private set; } [DataMember] public string ZipCode { get; private set; } [DataMember] public string CardNumber { get; private set; } [DataMember] public string CardHolderName { get; private set; } [DataMember] public DateTime CardExpiration { get; private set; } [DataMember] public string CardSecurityNumber { get; private set; } [DataMember] public int CardTypeId { get; private set; } [DataMember] public IEnumerable OrderItems => _orderItems; public void AddOrderItem(OrderItemDTO item) { _orderItems.Add(item); } public CreateOrderCommand() { _orderItems = new List(); } public CreateOrderCommand(string city, string street, string state, string country, string zipcode, string cardNumber, string cardHolderName, DateTime cardExpiration, string cardSecurityNumber, int cardTypeId) : this() { City = city; Street = street; State = state; Country = country; ZipCode = zipcode; CardNumber = cardNumber; CardHolderName = cardHolderName; CardSecurityNumber = cardSecurityNumber; CardTypeId = cardTypeId; } public class OrderItemDTO { public int ProductId { get; set; } public string ProductName { get; set; } public decimal UnitPrice { get; set; } public decimal Discount { get; set; } public int Units { get; set; } public string PictureUrl { get; set; } } } }