Beispiel #1
0
        internal void Add(string currency, int count, bool commit = true)
        {
            WalletCurrencyItem item;

            if (!m_itemDict.TryGetValue(currency, out item))
            {
                item = new WalletCurrencyItem
                {
                    CurrencyName = currency,
                    Limit        = int.MaxValue
                };

                m_itemDict[item.CurrencyName] = item;
            }

            var newCount = Math.Min(item.Count + count, item.Limit);

            item.Count = newCount;

            if (commit)
            {
                Save();

                if (Updated != null)
                {
                    Updated(this, new WalletUpdateEventArgs(new CurrencyCount[] { new CurrencyCount {
                                                                                      Currency = currency, Count = count
                                                                                  } }));
                }
            }
        }
Beispiel #2
0
        internal void SetLimits(WalletCurrencyLimit limits)
        {
            if (limits.CurrencyCounts != null)
            {
                foreach (var limit in limits.CurrencyCounts)
                {
                    WalletCurrencyItem item;

                    if (!m_itemDict.TryGetValue(limit.Currency, out item))
                    {
                        item = new WalletCurrencyItem
                        {
                            CurrencyName = limit.Currency,
                            Limit        = int.MaxValue
                        };

                        m_itemDict[item.CurrencyName] = item;
                    }

                    item.Limit = MathHelper.ApplyNumericalOperator(limits.Operator, item.Limit, limit.Count);
                }
            }
        }