public string DisableTenant(string tenantUid) { var tenantNode = TenantHelper.GetCurrentTenantHome(contentService, tenantUid.ToString()); if (tenantNode == null) { throw new TenantException(ExceptionCode.TenantNotFound.CodeToString(), ExceptionCode.TenantNotFound, tenantUid.ToString()); } if (tenantNode.GetValue <string>("tenantStatus").Equals(DISABLED)) { throw new TenantException(ExceptionCode.TenantAlreadyDisabled.CodeToString(), ExceptionCode.TenantAlreadyDisabled, tenantUid); } try { tenantNode.SetValue("tenantStatus", DISABLED); contentService.Save(tenantNode); contentService.Unpublish(tenantNode); ConnectorContext.AuditService.Add(AuditType.Unpublish, -1, tenantNode.Id, "Content Node", $"ContentNode for {tenantUid} has been disabled"); return(tenantUid.ToString()); } catch (Exception ex) { logger.Error(typeof(HomeContentNode), ex.Message); logger.Error(typeof(HomeContentNode), ex.StackTrace); throw; } }
public string CreateUser(TenantUser tenant) { var tenantNode = TenantHelper.GetCurrentTenantHome(ConnectorContext.ContentService, tenant.TenantUId.ToString()); var group = userGroupService.GetUserGroup(tenant.Group); userGroupService.CreateUser(tenant); return(tenant.AssignedUmbracoUserId.ToString()); }
public string EditTenant(Tenant tenant) { var tenantNode = TenantHelper.GetCurrentTenantHome(contentService, tenant.TenantUId.ToString()); if (tenantNode == null) { throw new TenantException(ExceptionCode.TenantNotFound.CodeToString(), ExceptionCode.TenantNotFound, tenant.TenantUId); } try { // Set values for node tenantNode.Name = tenant.Name; tenantNode.SetCultureName(tenant.Name, tenant.Languages.Default); List <String> lstcultures = new List <string>(); foreach (var culture in tenantNode.AvailableCultures) { lstcultures.Add(culture);//need this to not throw exception list modified } foreach (var culture in lstcultures) { tenantNode.SetCultureName(tenant.Name, culture); } //tenantNode.Name = tenant.BrandName; //tenantNode.SetCultureName(tenant.BrandName, tenant.Languages.Default); tenantNode.SetValue("brandName", tenant.BrandName); tenantNode.SetValue("tenantUid", tenant.TenantUId); tenantNode.SetValue("domain", tenant.Domain); tenantNode.SetValue("subDomain", tenant.SubDomain); if (!string.IsNullOrEmpty(tenant.ApiKey)) { tenantNode.SetValue("apiKey", tenant.ApiKey); } if (!string.IsNullOrEmpty(tenant.AppId)) { tenantNode.SetValue("appId", tenant.AppId); } tenantNode.SetValue("defaultLanguage", tenant.Languages.Default); tenantNode.SetValue("tenantCurrencies", string.Join(",", tenant.Currencies.Codes)); tenantNode.SetValue("tenantStatus", ENABLED); tenantNode.SetValue("languages", string.Join(", ", tenant.Languages.Alternate.ToList())); tenantNode.SetValue("tenantPreferencesProperty", JsonConvert.SerializeObject(tenant.TenantPreferences)); contentService.Save(tenantNode); ConnectorContext.AuditService.Add(AuditType.Save, -1, tenantNode.Id, "Content Node", $"ContentNode for {tenant.TenantUId} has been edited"); return(tenant.TenantUId.ToString()); } catch (Exception ex) { logger.Error(typeof(HomeContentNode), ex.Message); logger.Error(typeof(HomeContentNode), ex.StackTrace); throw; } }
public bool RefreshTenant(string tenantUid, string tenantName, string languageCode = "en") { int betHistoryId = -1, sportId = -1, casinoId = -1, pokerId = -1, inPlayId = -1, liveCasinoId = -1, vegasId = -1, lotteryId = -1, liveScheduleId = -1; var extended = GetExtendedTenant(tenantUid); var children = TenantHelper.GetTenantNodes(ConnectorContext.ContentService, tenantUid); var tenantNode = TenantHelper.GetCurrentTenantHome(ConnectorContext.ContentService, tenantUid); if (tenantNode == null) { throw new TenantException(ExceptionCode.TenantNotFound.CodeToString(), ExceptionCode.TenantNotFound, tenantUid); } string cultureIsoCode = languageCode; try { if (languageService.HasLanguage(cultureIsoCode)) { if (children.Any()) { betHistoryId = children.SingleOrDefault(x => x.GetCultureName(cultureIsoCode).Equals("Betting History")) != null?children.SingleOrDefault(x => x.GetCultureName(cultureIsoCode).Equals("Betting History")).Id : -1; sportId = children.SingleOrDefault(x => x.GetCultureName(cultureIsoCode).Equals("Sport")) != null?children.SingleOrDefault(x => x.GetCultureName(cultureIsoCode).Equals("Sport")).Id : -1; inPlayId = children.SingleOrDefault(x => x.GetCultureName(cultureIsoCode).Equals("In-Play")) != null?children.SingleOrDefault(x => x.GetCultureName(cultureIsoCode).Equals("In-Play")).Id : -1; casinoId = children.SingleOrDefault(x => x.GetCultureName(cultureIsoCode).Equals("Casino")) != null?children.SingleOrDefault(x => x.GetCultureName(cultureIsoCode).Equals("Casino")).Id : -1; liveCasinoId = children.SingleOrDefault(x => x.GetCultureName(cultureIsoCode).Equals("Live Casino")) != null?children.SingleOrDefault(x => x.GetCultureName(cultureIsoCode).Equals("Live Casino")).Id : -1; vegasId = children.SingleOrDefault(x => x.GetCultureName(cultureIsoCode).Equals("Vegas")) != null?children.SingleOrDefault(x => x.GetCultureName(cultureIsoCode).Equals("Vegas")).Id : -1; lotteryId = children.SingleOrDefault(x => x.GetCultureName(cultureIsoCode).Equals("Lottery")) != null?children.SingleOrDefault(x => x.GetCultureName(cultureIsoCode).Equals("Lottery")).Id : -1; pokerId = children.SingleOrDefault(x => x.GetCultureName(cultureIsoCode).Equals("Poker")) != null?children.SingleOrDefault(x => x.GetCultureName(cultureIsoCode).Equals("Poker")).Id : -1; liveScheduleId = children.SingleOrDefault(x => x.GetCultureName(cultureIsoCode).Equals("Live Schedule")) != null?children.SingleOrDefault(x => x.GetCultureName(cultureIsoCode).Equals("Live Schedule")).Id : -1; UpdateTenantPages(betHistoryId, sportId, casinoId, pokerId, inPlayId, liveCasinoId, vegasId, lotteryId, liveScheduleId); } nodeHelper.RefreshNodeName(tenantUid, tenantName); } ReassignCulturesAndHostnames(tenantUid); return(true); } catch { return(false); } }
public int RenameMediaHome(TenantData tenant, TenantUser tenantUser) { var home = TenantHelper.GetCurrentTenantHome(ConnectorContext.ContentService, tenant.TenantUId.ToString()); if (home == null) { throw new TenantException(ExceptionCode.TenantNotFound.CodeToString(), ExceptionCode.TenantNotFound, tenant.TenantUId); } IMedia mediaHome = null; IReadOnlyUserGroup group = null; if (tenantUser != null) { var uService = ConnectorContext.UserService; var user = uService.GetByUsername(tenantUser.Username); group = user.Groups.ToList()[0]; mediaHome = mediaService.GetById(group.StartMediaId.Value); } else { mediaHome = mediaService.GetByLevel(1).SingleOrDefault(x => x.Name.Contains(tenant.Name)); } if (mediaHome == null) { string mediaId = group?.StartMediaId.Value.ToString() ?? tenant.Name; //string mediaId = group?.StartMediaId.Value.ToString() ?? tenant.BrandName; throw new TenantException(ExceptionCode.MediaNodeDoesNotExist.CodeToString(), ExceptionCode.MediaNodeDoesNotExist, tenant.TenantUId, mediaId); } try { if (!mediaHome.Name.Equals(tenant.Name)) { mediaHome.Name = tenant.Name; //mediaHome.Name = tenant.BrandName; mediaService.Save(mediaHome); ConnectorContext.AuditService.Add(AuditType.Save, -1, mediaHome.Id, "Media Folder", $"Media home for {tenant.TenantUId} has been renamed"); } return(mediaHome.Id); } catch (System.Exception ex) { logger.Error(typeof(HomeMediaNode), ex.Message); logger.Error(typeof(HomeMediaNode), ex.StackTrace); throw; } }
public int CreateResetPasswordPage(Tenant tenant) { var home = TenantHelper.GetCurrentTenantHome(contentService, tenant.TenantUId.ToString()); var docType = contentTypeService.Get(_07_ResetPasswordViaEmailDocumentType.DOCUMENT_TYPE_ALIAS); try { var nodeName = "Reset Password"; IContent resetPasswordNode = contentService.Create(nodeName, home.Id, _07_ResetPasswordViaEmailDocumentType.DOCUMENT_TYPE_ALIAS); resetPasswordNode.Name = nodeName; resetPasswordNode.SetCultureName(nodeName, tenant.Languages.Default); if (tenant.Languages.Default == "fa") { resetPasswordNode.SetCultureName("بازیابی کلمه عبور", tenant.Languages.Default); } // Alternate Languages foreach (var language in tenant.Languages.Alternate) { resetPasswordNode.SetCultureName($"{nodeName}-{language}", language.Trim()); if (language.Trim() == "fa") { resetPasswordNode.SetCultureName("بازیابی کلمه عبور", language.Trim()); } } contentService.Save(resetPasswordNode); ConnectorContext.AuditService.Add(AuditType.New, -1, resetPasswordNode.Id, "Content Node", $"ContentNode for {tenant.TenantUId.ToString()} has been created"); return(resetPasswordNode.Id); } catch (Exception ex) { logger.Error(typeof(ResetPasswordContentNode), ex.Message); logger.Error(typeof(ResetPasswordContentNode), ex.StackTrace); throw; } }
public int CreateConfirmEmail(Tenant tenant) { var home = TenantHelper.GetCurrentTenantHome(contentService, tenant.TenantUId.ToString()); var docType = contentTypeService.Get(_03_ConfirmEmailDocumentType.DOCUMENT_TYPE_ALIAS); try { var nodeName = "Confirm Email"; IContent confirmEmailNode = contentService.Create(nodeName, home.Id, _03_ConfirmEmailDocumentType.DOCUMENT_TYPE_ALIAS); confirmEmailNode.Name = nodeName; confirmEmailNode.SetCultureName(nodeName, tenant.Languages.Default); if (tenant.Languages.Default == "fa") { confirmEmailNode.SetCultureName("ایمیل تایید", tenant.Languages.Default); } // Alternate Languages foreach (var language in tenant.Languages.Alternate) { confirmEmailNode.SetCultureName($"{nodeName}-{language}", language.Trim()); if (language.Trim() == "fa") { confirmEmailNode.SetCultureName("ایمیل تایید", language.Trim()); } } contentService.Save(confirmEmailNode); ConnectorContext.AuditService.Add(AuditType.New, -1, confirmEmailNode.Id, "Content Node", $"ContentNode for {tenant.TenantUId.ToString()} has been created"); return(confirmEmailNode.Id); } catch (Exception ex) { logger.Error(typeof(ConfirmEmailContentNode), ex.Message); logger.Error(typeof(ConfirmEmailContentNode), ex.StackTrace); throw; } }
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); }