private LiveCasinoTableLimit ParseLimit() { LiveCasinoTableLimit limit = new LiveCasinoTableLimit(); limit.BaseCurrency = Request.Form["baseCurrency"]; decimal amount; if (decimal.TryParse(Request.Form["baseCurrencyMinAmount"], out amount)) { limit.BaseLimit.MinAmount = amount; } if (decimal.TryParse(Request.Form["baseCurrencyMaxAmount"], out amount)) { limit.BaseLimit.MaxAmount = amount; } CurrencyData[] currencies = GamMatrixClient.GetSupportedCurrencies(); foreach (CurrencyData currency in currencies) { LimitAmount limitAmount = new LimitAmount(); string key = string.Format("minAmount_{0}", currency.ISO4217_Alpha); if (decimal.TryParse(Request.Form[key], out amount)) { limitAmount.MinAmount = amount; } key = string.Format("maxAmount_{0}", currency.ISO4217_Alpha); if (decimal.TryParse(Request.Form[key], out amount)) { limitAmount.MaxAmount = amount; } limit.CurrencyLimits[currency.ISO4217_Alpha] = limitAmount; } LiveCasinoTableLimitType t; if (Enum.TryParse <LiveCasinoTableLimitType>(Request.Form["limitType"], out t)) { limit.Type = t; } if (limit.Type == LiveCasinoTableLimitType.SameForAllCurrency || limit.Type == LiveCasinoTableLimitType.AutoConvertBasingOnCurrencyRate) { if (limit.BaseLimit.MinAmount >= limit.BaseLimit.MaxAmount) { limit.Type = LiveCasinoTableLimitType.None; } } return(limit); }
private Dictionary <string, LimitAmount> GetCurrencyLimitAmount(ceLiveCasinoTableBaseEx table) { Dictionary <string, LimitAmount> dic = new Dictionary <string, LimitAmount>(StringComparer.InvariantCultureIgnoreCase); CurrencyData [] currencies = GamMatrixClient.GetSupportedCurrencies(); if (table.Limit.Type == LiveCasinoTableLimitType.AutoConvertBasingOnCurrencyRate) { foreach (CurrencyData currency in currencies) { dic[currency.ISO4217_Alpha] = new LimitAmount() { MinAmount = GamMatrixClient.TransformCurrency(table.Limit.BaseCurrency, currency.ISO4217_Alpha, table.Limit.BaseLimit.MinAmount), MaxAmount = GamMatrixClient.TransformCurrency(table.Limit.BaseCurrency, currency.ISO4217_Alpha, table.Limit.BaseLimit.MaxAmount), }; } } else if (table.Limit.Type == LiveCasinoTableLimitType.SameForAllCurrency) { foreach (CurrencyData currency in currencies) { dic[currency.ISO4217_Alpha] = new LimitAmount() { MinAmount = table.Limit.BaseLimit.MinAmount, MaxAmount = table.Limit.BaseLimit.MaxAmount, }; } } else if (table.Limit.Type == LiveCasinoTableLimitType.SpecificForEachCurrency) { foreach (var limit in table.Limit.CurrencyLimits) { if (limit.Value.MaxAmount == 0.00M) { continue; } dic[limit.Key] = new LimitAmount() { MinAmount = limit.Value.MinAmount, MaxAmount = limit.Value.MaxAmount, }; } } return(dic); }
public static Dictionary <string, NetEntAPI.LiveCasinoTable> ParseJson(long domainID, string urlFormat) { string cacheFile = Path.Combine(FileSystemUtility.GetWebSiteTempDirectory() , string.Format(CultureInfo.InvariantCulture, CACHE_FILE_FORMAT, CRC64.ComputeAsUtf8String(urlFormat)) ); Dictionary <string, NetEntAPI.LiveCasinoTable> dic = new Dictionary <string, NetEntAPI.LiveCasinoTable>(StringComparer.InvariantCultureIgnoreCase); // first get the EUR currency data string url = string.Format(CultureInfo.InvariantCulture, urlFormat, "EUR"); RawNetEntLiveCasinoTable[] rawTables = RawNetEntLiveCasinoTable.Get(url); foreach (RawNetEntLiveCasinoTable rawTable in rawTables) { foreach (RawNetEntLiveCasinoGame rawGame in rawTable.Games) { string key = string.Format(CultureInfo.InvariantCulture, "{0}|{1}", rawGame.GameID, rawTable.TableID); dic[key] = new NetEntAPI.LiveCasinoTable() { GameID = rawGame.GameID, TableID = rawTable.TableID.ToString(), }; dic[key].Limitation.Type = LiveCasinoTableLimitType.SpecificForEachCurrency; } } CurrencyData [] currencies = GamMatrixClient.GetSupportedCurrencies(); foreach (CurrencyData currency in currencies) { url = string.Format(CultureInfo.InvariantCulture, urlFormat, currency.ISO4217_Alpha); rawTables = RawNetEntLiveCasinoTable.Get(url); foreach (RawNetEntLiveCasinoTable rawTable in rawTables) { foreach (RawNetEntLiveCasinoGame rawGame in rawTable.Games) { if ([email protected]("MINBET") || [email protected]("MAXBET")) { continue; } decimal minBet, maxBet; if (!decimal.TryParse(rawGame.@params["MINBET"].ToString(), out minBet) || !decimal.TryParse(rawGame.@params["MAXBET"].ToString(), out maxBet) || minBet >= maxBet) { continue; } minBet /= 100.00M; maxBet /= 100.00M; string key = string.Format(CultureInfo.InvariantCulture, "{0}|{1}", rawGame.GameID, rawTable.TableID); NetEntAPI.LiveCasinoTable table; if (dic.TryGetValue(key, out table)) { table.Limitation.CurrencyLimits[currency.ISO4217_Alpha] = new LimitAmount() { MinAmount = minBet, MaxAmount = maxBet, }; } } } } if (dic.Keys.Count > 0) { ObjectHelper.BinarySerialize <Dictionary <string, NetEntAPI.LiveCasinoTable> >(dic, cacheFile); HttpRuntime.Cache[cacheFile] = dic; } return(dic); }