using System; using System.Collections.Generic; using System.Collections.ObjectModel; namespace BBWY.Client.Models { public class OrderDropShipping : NotifyObject, ICloneable { public OrderDropShipping() { PurchaseFreightStr = PurchaseFreight.ToString(); RelationPurchaseOrderSkuList = new ObservableCollection(); } public long Id { get; set; } public string OrderId { get; set; } public string BuyerAccount { get => buyerAccount; set { Set(ref buyerAccount, value); } } public string SellerAccount { get => sellerAccount; set { Set(ref sellerAccount, value); } } public decimal DeliveryFreight { get => deliveryFreight; set { Set(ref deliveryFreight, value); } } public string PurchaseOrderId { get => purchaseOrderId; set { Set(ref purchaseOrderId, value); } } public string MerchantOrderId { get => merchantOrderId; set { Set(ref merchantOrderId, value); } } public Platform PurchasePlatform { get => purchasePlatform; set { Set(ref purchasePlatform, value); } } public decimal PurchaseAmount { get => purchaseAmount; set { Set(ref purchaseAmount, value); } } public decimal SkuAmount { get => skuAmount; set { if (Set(ref skuAmount, value)) OnAmountChanged(); } } public decimal PurchaseFreight { get => purchaseFreight; set { if (Set(ref purchaseFreight, value)) OnAmountChanged(); } } public string PurchaseFreightStr { get => purchaseFreightStr; set { if (Set(ref purchaseFreightStr, value)) { if (decimal.TryParse(purchaseFreightStr, out decimal d)) PurchaseFreight = d; } } } private string buyerAccount; private string sellerAccount; private decimal deliveryFreight; private string purchaseOrderId; private string merchantOrderId; private Platform purchasePlatform; private decimal purchaseAmount; private decimal skuAmount; private decimal purchaseFreight; private string purchaseFreightStr; private void OnAmountChanged() { PurchaseAmount = SkuAmount + PurchaseFreight; OnPurchaseAmountChanged?.Invoke(); } public Action OnPurchaseAmountChanged { get; set; } public object Clone() { return this.MemberwiseClone(); } public IList RelationPurchaseOrderSkuList { get; set; } } }