Пример #1
0
        /// <summary>
        /// Operacja żądania kwoty pieniężnej, serwer sprawdza płatność etc
        /// </summary>
        /// <param name="type"></param>
        public void DoTransferRequest(Enums.CurrencyType type)
        {
            var loggedUser = ClientModel.GetUser(CurrentClient);

            switch (type)
            {
            case Enums.CurrencyType.VIRTUAL:
                Task.Factory.StartNew(() =>
                {
                    System.Timers.Timer timer = new System.Timers.Timer(10000);
                    timer.Elapsed            += (o, e) =>
                    {
                        loggedUser.User.Deposit(
                            Enums.CurrencyType.VIRTUAL,
                            100.00m
                            );
                    };
                    timer.AutoReset = false;
                    timer.Enabled   = true;
                });

                break;

            case Enums.CurrencyType.BTC:
                break;
            }
        }
Пример #2
0
        public static void Deposit(this UserModel user, Enums.CurrencyType currency, decimal value, string comment = "", string flag = "")
        {
            using (var session = DatabaseSession.Open())
            {
                var wallet = session.QueryOver <WalletModel>().
                             Where(u => u.User.ID == user.ID).
                             Where(u => u.Type == currency).
                             SingleOrDefault();

                if (wallet == null)
                {
                    return;
                }

                using (var transaction = session.BeginTransaction())
                {
                    TransferModel transfer = new TransferModel()
                    {
                        Wallet             = wallet,
                        Amount             = value,
                        Timestamp          = DateTime.Now.ToUniversalTime(),
                        Type               = Enums.TransferType.DEPOSIT,
                        Comment            = comment,
                        Flag               = flag,
                        Currency           = wallet.Type,
                        WalletAmountBefore = wallet.Available
                    };

                    wallet.Available += value;

                    session.Save(transfer);
                    session.Update(wallet);

                    transaction.Commit();

                    if (user.IsOnline())
                    {
                        var client = user.GetClient();

                        if (transfer.Comment == "")
                        {
                            transfer.Comment = "Wpłata na konto w wysokości " + CurrencyFormat.Get(wallet.Type, transfer.Amount);
                        }

                        client.OnDepositInfo(transfer);
                    }
                }
            }
        }
Пример #3
0
        /// <summary>
        /// Oddaje kwote dla gracza, w wypadku turniejow jest to depozyt
        /// </summary>
        /// <param name="user"></param>
        /// <param name="currency"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public static bool GameLeaveTransaction(this UserModel user, Enums.CurrencyType currency, decimal value)
        {
            var wallet = user.GetWallet(currency);

            using (ISession session = DatabaseSession.Open())
            {
                using (var transaction = session.BeginTransaction())
                {
                    wallet.Available += value;
                    session.Update(wallet);
                    transaction.Commit();
                    return(true);
                }
            }
        }
Пример #4
0
        public static string GetName(Enums.CurrencyType type)
        {
            switch (type)
            {
            case Enums.CurrencyType.VIRTUAL:
                return("Wirtualne pieniądze");

            case Enums.CurrencyType.USD:
                return("Dolar amerykański");

            case Enums.CurrencyType.BTC:
                return("Bitcoin");

            default:
                return("Nieznany");
            }
        }
Пример #5
0
        private static NumberFormatInfo GetFormat(Enums.CurrencyType currency)
        {
            NumberFormatInfo nfi = (NumberFormatInfo)CultureInfo.CurrentCulture.NumberFormat.Clone();

            switch (currency)
            {
            case Enums.CurrencyType.VIRTUAL:
                nfi.CurrencySymbol        = "♤";
                nfi.CurrencyDecimalDigits = 0;
                return(nfi);

            case Enums.CurrencyType.BTC:
                nfi.CurrencySymbol        = "m฿";
                nfi.CurrencyDecimalDigits = 3;
                return(nfi);

            case Enums.CurrencyType.USD:
                nfi.CurrencySymbol        = "$";
                nfi.CurrencyDecimalDigits = 2;
                return(nfi);
            }
            return(null);
        }
Пример #6
0
 public static WalletModel GetWallet(this UserModel user, Enums.CurrencyType currency)
 {
     return(user.GetWalletList().Select(c => c).Where(c => c.Type == currency).FirstOrDefault());
 }
Пример #7
0
        /// <summary>
        /// Pobiera dany portfel wedlug waluty
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        public WalletModel GetWallet(Enums.CurrencyType type)
        {
            var user = ClientModel.GetUser(CurrentClient);

            return(user.User.GetWallet(type));
        }
Пример #8
0
        /// <summary>
        /// 获取币种
        /// </summary>
        /// <param name="content">内容</param>
        /// <param name="defaultType">默认币种</param>
        /// <returns></returns>
        public static Enums.CurrencyType GetCurrencyType(string content, Enums.CurrencyType defaultType = Enums.CurrencyType.RMB)
        {
            try
            {
                content = (content + "").ToUpper();
                if (content.Contains("$") || content.Contains("USD") || content.Contains("美元") || content.Contains("$"))
                {
                    return(Enums.CurrencyType.USD);
                }
                else if (content.Contains("欧元") || content.Contains("EUR"))
                {
                    return(Enums.CurrencyType.EUR);
                }
                else if (content.Contains("HKD") || content.Contains("港币"))
                {
                    return(Enums.CurrencyType.HKD);
                }
                else if (content.Contains("JPY") || content.Contains("日元"))
                {
                    return(Enums.CurrencyType.JPY);
                }
                else if (content.Contains("KRW"))
                {
                    return(Enums.CurrencyType.KRW);
                }
                else if (content.Contains("AUD"))
                {
                    return(Enums.CurrencyType.AUD);
                }
                else if (content.Contains("CHF"))
                {
                    return(Enums.CurrencyType.CHF);
                }
                else if (content.Contains("SGD"))
                {
                    return(Enums.CurrencyType.SGD);
                }
                else if (content.Contains("CAD"))
                {
                    return(Enums.CurrencyType.CAD);
                }
                else if (content.Contains("NZD"))
                {
                    return(Enums.CurrencyType.NZD);
                }
                else if (content.Contains("THB"))
                {
                    return(Enums.CurrencyType.THB);
                }
                else if (content.Contains("PHP"))
                {
                    return(Enums.CurrencyType.PHP);
                }
                else if (content.Contains("GBP"))
                {
                    return(Enums.CurrencyType.GBP);
                }

                return(defaultType);
            }
            catch (Exception)
            {
                return(defaultType);
            }
        }
Пример #9
0
 public static string Get(Enums.CurrencyType currency, decimal value)
 {
     return(value.ToString("c", GetFormat(currency)));
 }