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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }