Advertisement
Pro_Unit

PurchaseData

Feb 7th, 2024
705
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.06 KB | None | 0 0
  1. using System;
  2.  
  3. using Game.PaymentsSystem.Data;
  4.  
  5. using UnityEngine;
  6.  
  7. namespace Game.PaymentsSystem
  8. {
  9.     [Serializable]
  10.     public class PurchaseData
  11.     {
  12.         /// <summary>
  13.         /// Тип метода оплаты
  14.         /// </summary>
  15.         [SerializeField] private PaymentMethodType _paymentMethodType;
  16.  
  17.         /// <summary>
  18.         /// Данные метода оплаты
  19.         /// </summary>
  20.         [field: SerializeReference] public IPaymentMethodData PaymentMethodData { get; private set; }
  21.  
  22.         /// <summary>
  23.         /// Метод для валидации данных
  24.         /// </summary>
  25.         public void Validate()
  26.         {
  27.             PaymentMethodData = _paymentMethodType switch
  28.             {
  29.                 PaymentMethodType.Free when PaymentMethodData is not FreePaymentMethodData =>
  30.                     new FreePaymentMethodData(),
  31.                 PaymentMethodType.Currency when PaymentMethodData is not CurrencyPaymentMethodData =>
  32.                     new CurrencyPaymentMethodData(),
  33.                 PaymentMethodType.InAppPurchase when PaymentMethodData is not InAppPurchasePaymentData =>
  34.                     new InAppPurchasePaymentData(),
  35.                 _ => PaymentMethodData
  36.             };
  37.         }
  38.     }
  39. }
  40.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement