public async Task <JsonResult> GetLiveCasinoGrid(string tenantUid, string category = "", string subCategory = "", string provider = "", string keyword = "", string languageCode = "") { var origin = TenantHelper.GetCurrentTenantUrl(contentService, tenantUid); //var key = ApiKeyCache.GetByTenantUid(tenantUid); //var authorization = await new Authorization().GetAuthorizationAsync(key); var authorization = ApiAuthorizationCache.GetOrSetAuthorization(tenantUid); var response = await _gameService.GetGameDataAnonymousArrayAsync(tenantUid, origin, category, subCategory, provider, keyword, languageCode, authorization.AccessToken); CultureInfo newLanguage = new CultureInfo(languageCode); System.Threading.Thread.CurrentThread.CurrentCulture = newLanguage; System.Threading.Thread.CurrentThread.CurrentUICulture = newLanguage; foreach (var gameDetail in response) { var name = "[GameGridProvider]" + gameDetail.GameProvider; gameDetail.GameProvider = Umbraco.GetDictionaryValue(name, gameDetail.GameProvider); } if (category == "lottery" || category == "casino") { foreach (var game in response) { if (game.GameImages[0].Url == null || game.GameImages[0].Url == "") { game.GameImages[0].Url = "https://via.placeholder.com/150x150"; } } } if (category == "Live Casino") { foreach (var game in response) { if (game.GameImages[1].Url == null || game.GameImages[1].Url == "") { game.GameImages[1].Url = "https://via.placeholder.com/432x243"; } CasinoProLobbyData config = new CasinoProLobbyData(); foreach (var configuration in game.Configurations) { config = JsonConvert.DeserializeObject <CasinoProLobbyData>(configuration.Value.ToString()); } if (!String.IsNullOrEmpty(config.gameType)) { game.GameType = config.gameType; } if (config.dealer != null) { if (!String.IsNullOrEmpty(config.dealer.name)) { game.DealerName = config.dealer.name; } } if (!String.IsNullOrEmpty(config.symbol)) { game.Currency_symbol = config.symbol; } if (config.minAmount < 1) { game.Limit_min = Math.Round(config.minAmount, 2, MidpointRounding.AwayFromZero).ToString(CultureInfo.InvariantCulture); } if (config.minAmount >= 1) { game.Limit_min = Math.Round(config.minAmount, 0, MidpointRounding.AwayFromZero).ToString(CultureInfo.InvariantCulture); } if (config.maxAmount >= 1) { game.Limit_max += Math.Round(config.maxAmount, 0, MidpointRounding.AwayFromZero).ToString("N0", CultureInfo.InvariantCulture); } if (config.road != null && config.gameType == "Baccarat") { var BaccaratResults = JsonConvert.DeserializeObject <List <CasinoProLobbyRoad> >(config.road.ToString()); var road = new List <BaccaratResult>(); foreach (var res in BaccaratResults) { string color = ""; string X = ""; string Y = ""; if (res.color == "Red") { color = "#C52123"; } if (res.color == "Blue") { color = "#185CC6"; } foreach (var loc in res.location) { if (loc.Key == "column") { X = loc.Value; } if (loc.Key == "row") { Y = loc.Value; } } road.Add(new BaccaratResult() { X = X, Y = Y, Color = color }); } game.Roads = road; } if (config.results != null && config.gameType == "Roulette") { var aa = JsonConvert.DeserializeObject <List <string> >(config.results.ToString()); var results = new List <GameResult>(); int counter = 0; foreach (var a in aa) { var color = ""; int number = 0; Int32.TryParse(a, out number); int[] reds = { 1, 3, 5, 7, 9, 12, 14, 16, 18, 19, 21, 23, 25, 27, 30, 32, 34, 36 }; int[] blacks = { 2, 4, 6, 8, 10, 11, 13, 15, 17, 20, 22, 24, 26, 28, 29, 31, 33, 35 }; if (reds.Contains <int>(number)) { color = "red"; } if (blacks.Contains <int>(number)) { color = "black"; } if (number == 0) { color = "green"; } if (counter == 0) { color += "-first"; } counter++; results.Add(new GameResult() { Value = a, Color = color }); } game.Results = results; } if (config.gameType == "Blackjack" && config.seatsTaken != null) { var seats = new List <Seat>(); int[] seatsTaken = config.seatsTaken; for (int i = 1; i <= config.seats; i++) { var Availability = "free"; if (seatsTaken.Contains <int>(i - 1)) { Availability = "taken"; } seats.Add(new Seat() { Number = i.ToString(), Status = Availability }); } game.Seats = seats; } } } return(Json(response, JsonRequestBehavior.DenyGet)); }
public T Model <T>(T model, IPublishedContent CurrentPage, HttpRequestBase Request) where T : BasePageViewModel { #region Defaults model.ShowProvidersFilter = true; model.ShowSeachFilter = true; model.ShowSubCategoryFilter = true; #endregion model.Title = model.Content.Name; var gameUrl = string.Empty; var category = string.Empty; var subCategory = string.Empty; var gameType = GamePageType.none; var origin = TenantHelper.GetCurrentTenantUrl(contentService, model.TenantUid); //var key = ApiKeyCache.GetByTenantUid(model.TenantUid); //var authorization = GetAuthorization(key); var authorization = ApiAuthorizationCache.GetOrSetAuthorization(model.TenantUid); var returnUrl = model.IsHomePage ? model.RootUrl : $"https://{model.Subdomain}.{model.Domain}"; //var returnUrl = model.IsHomePage ? model.RootUrl : $"https://{model.Subdomain}.{model.Domain}{model.Content.Url}"; #if DEBUG returnUrl = model.IsHomePage ? $"https://{model.Subdomain}.{model.Domain}" : $"https://{model.Subdomain}.{model.Domain}{model.Content.Url}"; #endif model.ReturnUrl = returnUrl; var gameDetails = AssertGameType(model); category = gameDetails.Item1; gameType = gameDetails.Item3; var games = apiService.GetGameDataAnonymousArray(model.TenantUid, origin, category: category, languageCode: model.CurrentLanguage.TwoLetterISOLanguageName, authorization: authorization.AccessToken); if (games != null) { foreach (var game in games) { if (model.Content.Descendant() != null) { game.GamePageUrl = model.Content.Descendants().SingleOrDefault(x => x.HasProperty("gameType") && x.Value <string>("gameType") == game.Category)?.Url; } } } // make sure games is not null games = games ?? new List <GameDetails>(); if (Request.QueryString["gameId"] != null) { var gameId = int.Parse(Request.QueryString["gameId"].ToString()); var gameFromList = games.SingleOrDefault(x => x.GameId == gameId); var game = (GameByIdResponseContent)apiService.GetGameById(model.TenantUid, origin, gameId: gameId, gameIdentifier: gameFromList.GameIdentifier, authorization: authorization.AccessToken); if (game != null) { model.HasDemoMode = game.DemoEnabled; model.DemoUrl = game.DemoUrl; model.UrlType = game.UrlTypeEnum; model.GameMode = GameMode.Choose; model.GameId = int.Parse(Request.QueryString["gameId"]); model.GameImage = game.GameImages.SingleOrDefault(x => x.ImageTypeEnum == ImageType.Full).Url; switch (model.UrlType) { case UrlType.iFrame: model.GameUrl = $"{game.Url}?id={model.TenantUid}&langId={model.CurrentLanguage.TwoLetterISOLanguageName}&returnUrl={HttpUtility.UrlDecode(CurrentPage.UrlAbsolute())}"; model.OpenPopup = false; model.GameMode = GameMode.Play; model.GameLoadSuccess = true; break; case UrlType.Session: if (game.DemoEnabled) { model.OpenPopup = true; model.GameMode = GameMode.Choose; } else { model.GameMode = GameMode.Play; } if (Request.QueryString["mode"] != null) { var mode = Request.QueryString["mode"]; if (mode == "demo") { model.GameMode = GameMode.Demo; } if (mode == "play") { model.GameMode = GameMode.Play; } model.OpenPopup = false; } if (game.Category == "Casino" && game.UrlType == 2 && Request.QueryString["mode"] != null) { game.Url += "&ReturnUrl=" + HttpUtility.UrlDecode(CurrentPage.UrlAbsolute()); game.DemoUrl += "&ReturnUrl=" + HttpUtility.UrlDecode(CurrentPage.UrlAbsolute()); } if (game.Category == "Casino" && Request.QueryString["mode"] == null) { game.Url += "?ReturnUrl=" + HttpUtility.UrlDecode(CurrentPage.UrlAbsolute()); game.DemoUrl += "?ReturnUrl=" + HttpUtility.UrlDecode(CurrentPage.UrlAbsolute()); } string sessionUrl = game.Url; var gameModeUrl = game.Url; gameModeUrl = model.GameMode == GameMode.Demo ? game.DemoUrl : game.Url; switch (gameType) { case GamePageType.InPlay: break; case GamePageType.Casino: var gameLobbyUrl = (GameLobbyResponseContent)apiService.GetGameLobby(gameModeUrl, model.TenantUid, origin, LoginSession.Token ?? authorization.AccessToken, model.CurrentLanguage.TwoLetterISOLanguageName, returnUrl); //var gameLobbyUrl = (GameLobbyResponseContent)apiService.GetGameLobby($"{gameModeUrl}&returnUrl={ContentHelper.EncodeUrl(returnUrl)}", model.TenantUid, origin, LoginSession.Token ?? authorization.AccessToken, model.CurrentLanguage.TwoLetterISOLanguageName, returnUrl); if (gameLobbyUrl.Success) { //if (game.GameIdentifier == "Zeppelin") //{ //HttpContext.Current.Response.Redirect(gameLobbyUrl.Link); //} sessionUrl = gameLobbyUrl.Link; model.GameLoadSuccess = true; } break; case GamePageType.LiveCasino: var liveCasinoLobbyUrl = (GameLobbyResponseContent)apiService.GetGameLobby(gameModeUrl, model.TenantUid, origin, LoginSession.Token ?? authorization.AccessToken, model.CurrentLanguage.TwoLetterISOLanguageName, returnUrl); if (liveCasinoLobbyUrl.Success) { sessionUrl = liveCasinoLobbyUrl.Link; model.GameLoadSuccess = true; } break; case GamePageType.Poker: var pokerLobbyUrl = (PokerLobbyResponseContent)apiService.GetPokerLobby(model.TenantUid, origin, LoginSession.Token ?? authorization.AccessToken, model.CurrentLanguage.TwoLetterISOLanguageName, returnUrl); if (pokerLobbyUrl.Success) { sessionUrl = pokerLobbyUrl.RedirectUrl; model.ReturnUrl = returnUrl; model.GameLoadSuccess = true; } break; case GamePageType.Lottery: var lotteryLobbyUrl = (GameLobbyResponseContent)apiService.GetGameLobby(gameModeUrl, model.TenantUid, origin, LoginSession.Token ?? authorization.AccessToken, model.CurrentLanguage.TwoLetterISOLanguageName, returnUrl); if (lotteryLobbyUrl.Success) { sessionUrl = lotteryLobbyUrl.Link; model.GameLoadSuccess = true; } break; case GamePageType.Vegas: break; case GamePageType.Sport: break; case GamePageType.Board: var boardLobbyUrl = (GameLobbyResponseContent)apiService.GetGameLobby(gameModeUrl, model.TenantUid, origin, LoginSession.Token ?? authorization.AccessToken, model.CurrentLanguage.TwoLetterISOLanguageName, returnUrl); if (boardLobbyUrl.Success) { sessionUrl = boardLobbyUrl.Link; model.GameLoadSuccess = true; } break; default: break; } model.GameUrl = sessionUrl; break; default: model.GameUrl = string.Empty; break; } } } if (CurrentPage.HasProperty("gameSlider")) { model.Slider = CurrentPage.HasValue("gameSlider") ? CurrentPage.Value <IEnumerable <IPublishedElement> >("gameSlider") .Select(x => new SliderItem { Image = x.HasValue("sliderItemImage") ? x.GetProperty("sliderItemImage").Value <IPublishedContent>().Url : string.Empty, ButtonLabel = x.HasValue("sliderItemButtonLabel") ? x.GetProperty("sliderItemButtonLabel").GetValue().ToString() : string.Empty, Title = x.HasValue("sliderItemTitle") ? x.GetProperty("sliderItemTitle").GetValue().ToString() : string.Empty, Subtitle = x.HasValue("sliderItemSubtitle") ? x.GetProperty("sliderItemSubtitle").GetValue().ToString() : string.Empty, Url = x.HasValue("sliderItemUrl") ? x.GetProperty("sliderItemUrl").GetValue().ToString() : string.Empty, })?.ToList() : new List <SliderItem>(); } if (CurrentPage.HasProperty("bannerSlider")) { model.Slider = CurrentPage.HasValue("bannerSlider") ? CurrentPage.Value <IEnumerable <IPublishedElement> >("bannerSlider") .Select(x => new SliderItem { Image = x.Value("sliderItemImage") != null ? x.GetProperty("sliderItemImage").Value <IPublishedContent>().Url : string.Empty, ButtonLabel = x.HasValue("sliderItemButtonLabel") ? x.GetProperty("sliderItemButtonLabel").GetValue().ToString() : string.Empty, Title = x.HasValue("sliderItemTitle") ? x.GetProperty("sliderItemTitle").GetValue().ToString() : string.Empty, Subtitle = x.HasValue("sliderItemSubtitle") ? x.GetProperty("sliderItemSubtitle").GetValue().ToString() : string.Empty, Url = x.HasValue("sliderItemUrl") ? x.GetProperty("sliderItemUrl").GetValue().ToString() : string.Empty, })?.ToList() : new List <SliderItem>(); } var menuItems = CurrentPage.Children.Where(x => x.GetProperty("pageCustomSvg") != null && x.GetProperty("pageCustomSvg").HasValue()) .Select(z => new MenuItem { Label = z.Name, SvgIcon = "/img/svg/" + z.GetProperty("pageCustomSvg").GetValue().ToString() + ".svg", Url = z.Url }); var orderedMenuIcons = new List <MenuItem>(); int order = 0; foreach (var item in model.TopMenu) { var orderedMenuItem = menuItems.SingleOrDefault(x => x.Url.Equals(item.Url)); if (orderedMenuItem != null) { orderedMenuItem.Order = order; orderedMenuIcons.Add(orderedMenuItem); order++; } } model.MenuItems = orderedMenuIcons?.OrderBy(x => x.Order).ToList(); model.Games = games; model.Category = category; var home = TenantHelper.GetCurrentTenantHome(contentService, model.TenantUid); model.PlayButtonText = home.GetValue <string>("playButtonText", model.CurrentLanguage.TwoLetterISOLanguageName) ?? string.Empty; model.DemoButtonText = home.GetValue <string>("demoButtonText", model.CurrentLanguage.TwoLetterISOLanguageName) ?? string.Empty; model.GameMessage = home.GetValue <string>("gameMessage", model.CurrentLanguage.TwoLetterISOLanguageName) ?? string.Empty; model.GameAgreeText = home.GetValue <string>("gameAgreeText", model.CurrentLanguage.TwoLetterISOLanguageName) ?? string.Empty; model.PageImages = home.GetValue <IEnumerable <IPublishedElement> >("demoPageImages", model.CurrentLanguage.TwoLetterISOLanguageName) ?? Enumerable.Empty <IPublishedElement>(); return(model); }