public static void OnServerBuyProduct <T>(NetworkMessage netMsg) where T : BaseIAPProduct { T iapProduct = null; ServerBuyProductFail fail = ServerBuyProductFail.None; MsgBuyProductFromClient msg = netMsg.ReadMessage <MsgBuyProductFromClient>(); if (ValidateIAP(msg, out iapProduct, out fail)) { if (onBuyProductSuccess != null) { onBuyProductSuccess(netMsg.conn, msg, iapProduct); } } else { if (onBuyProductFail != null) { onBuyProductFail(netMsg.conn, msg, fail); } } }
public static bool ValidateIAP <T>(MsgBuyProductFromClient msg, out T iapProduct, out ServerBuyProductFail fail) where T : BaseIAPProduct { iapProduct = null; fail = ServerBuyProductFail.None; // Variables from message string productId = msg.productId; if (IAPManager <T> .Instance.ConsumableProducts.TryGetValue(productId, out iapProduct)) { return(true); } else { fail = ServerBuyProductFail.NoProduct; } return(false); }