/// <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; } }
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); } } } }
/// <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); } } }
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"); } }
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); }
public static WalletModel GetWallet(this UserModel user, Enums.CurrencyType currency) { return(user.GetWalletList().Select(c => c).Where(c => c.Type == currency).FirstOrDefault()); }
/// <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)); }
/// <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); } }
public static string Get(Enums.CurrencyType currency, decimal value) { return(value.ToString("c", GetFormat(currency))); }