public PurgeResults PurgeTenant(SimpleTenant tenant) { var contentService = ConnectorContext.ContentService; var userService = ConnectorContext.UserService; var mediaService = ConnectorContext.MediaService; var tenantNode = nodeHelper.GetTenantRoot(tenant.TenantUId); if (tenantNode == null) { throw new TenantException(ExceptionCode.TenantNotFound.CodeToString(), ExceptionCode.TenantNotFound, tenant.TenantUId); } var user = userService.GetByUsername(tenant.Username); var group = user?.Groups.Any() == true?userService.GetUserGroupById(user.Groups.ToList()[0].Id) : userService.GetUserGroupByAlias(tenant.Group.Sanitize()); var media = group != null?mediaService.GetById(group.StartMediaId.Value) : mediaService.GetByLevel(1).SingleOrDefault(x => x.Name.Equals(tenantNode.Name)); if (user != null) { userGroupService.PurgeUserAfterFirstLogin(user.Id); userService.Delete(user, true); } if (group != null) { foreach (var u in userService.GetAllInGroup(group.Id)) { userService.Delete(u, true); } userService.DeleteUserGroup(group); } if (media != null) { mediaService.Delete(media); } if (tenantNode != null) { contentService.Delete(tenantNode); } new ApiKeysService(this.database).PurgeTenant(tenant.TenantUId.ToString()); // remove tenant's Api information ApiKeyCache.ForceUpdateCache(this.database); return(new PurgeResults { ContentFoundAndDeleted = tenantNode != null, GroupFoundAndDeleted = group != null, UserFoundAndDeleted = user != null, MediaFolderFoundAndDeleted = media != null }); }
public ExtendedTenant CreateTenant(Tenant tenant, string tenantToBeCopied = "") { int homeId, mediaId, sliderBannersId, myAccountId, editMyAccountId, documentsId, marketingPreferencesId, withdrawId, withdrawBankAccountsAndCardsId; int withdrawHistoryId, ticketsId, viewTicketId, depositId, depositBankAccountsAndCardsId, depositHistoryId, termsAndConditionsId, settingsId; int transactionHistoryId, helpId, loginProblemsId, depositAndWithdrawId; int H_registrationAndLoginId, H_depositId, H_withdrawId, H_myAccountId, H_betHistoryId, H_transactionHistoryId, H_sportsId, H_inplayId, H_casinoId, H_liveCasinoId, H_pokerId, H_faqId; int HA_registration, HA_login, HA_forgotUsername, HA_forgotPwd, HA_depositCardsAndBank, HA_depositCartipay, HA_depositCartipal, HA_depositHistory, HA_withdrawCardsAndBank, HA_withdraw, HA_withdrawHistory, HA_myAccount, HA_betHistory, HA_transactionHistory, HA_sportbook, HA_inplay; int betHistoryId, bonusHistoryId, sportId, inPlayId, casinoId, liveCasinoId, vegasId, lotteryId, pokerId, liveScheduleId, boardId, liveScoreId, overviewId, eventViewId, resultsId; int zeppelinId; int affiliateId; int bonusHistoryPageId; int loginPageId; var nodeHelper = new NodeHelper(); var homeTypeDoc = new HomeDocumentType(ConnectorContext.ContentTypeService, ConnectorContext.DataTypeService, ConnectorContext.FileService, ConnectorContext.Logger); var mediaNode = new HomeMediaNode(ConnectorContext.MediaService, ConnectorContext.Logger, ConnectorContext.ContentTypeBaseService); homeNode.Validate(tenant); mediaNode.Validate(tenant); languageService.Validate(tenant); userGroupService.Validate(tenant, ignoreUser: true); apiService.Validate(tenant); if (tenantToBeCopied != "") { IContent tenantSourceNode = nodeHelper.GetTenantRoot(tenantToBeCopied); if (tenantSourceNode == null) { throw new TenantException(ExceptionCode.TenantNotFound.CodeToString(), ExceptionCode.TenantNotFound, tenantToBeCopied); } //copy root node with all subnodes IContent newTenant = nodeHelper.CopyTenant(tenantSourceNode, tenantSourceNode.ParentId, tenant.TenantUId); homeNode.EditTenant(tenant); homeId = newTenant.Id; //Create new media folder mediaId = mediaNode.CopyTenantMediaFolder(tenantSourceNode.GetPublishName("en"), tenant); sliderBannersId = mediaNode.GetMediaSliderFolder(mediaId); // My Account myAccountId = nodeHelper.GetNodeId(newTenant.Id, "totalCodeAccountPage", "My Account"); editMyAccountId = nodeHelper.GetNodeId(myAccountId, _09_EditAccountDocumentType.DOCUMENT_TYPE_ALIAS, _09_EditAccountDocumentType.PAGE_NAME); documentsId = nodeHelper.GetNodeId(myAccountId, "totalCodeDocumentPage", "Documents"); marketingPreferencesId = nodeHelper.GetNodeId(myAccountId, "totalCodeMarketingPage", "Marketing Preferences"); // Withdraw withdrawId = nodeHelper.GetNodeId(newTenant.Id, "totalCodeWithdrawPage", "Withdraw"); withdrawBankAccountsAndCardsId = nodeHelper.GetNodeId(withdrawId, "totalCodeWithdrawBankPage", "Bank Accounts & Cards"); withdrawHistoryId = nodeHelper.GetNodeId(withdrawId, "totalCodeWithdrawHistoryPage", "History"); // Tickets ticketsId = nodeHelper.GetNodeId(newTenant.Id, "totalCodeTicketsPage", "Contact Us"); viewTicketId = nodeHelper.GetNodeId(ticketsId, "totalCodeTicketPage", "View Ticket"); // Deposit depositId = nodeHelper.GetNodeId(newTenant.Id, "totalCodeDepositPage", "Deposit"); depositBankAccountsAndCardsId = nodeHelper.GetNodeId(depositId, "totalCodeDepositBankPage", "Bank Accounts & Cards"); depositHistoryId = nodeHelper.GetNodeId(depositId, "totalCodeDepositHistoryPage", "History"); // Terms and Conditions termsAndConditionsId = nodeHelper.GetNodeId(newTenant.Id, "totalCodeTermsPage", "Terms and Conditions"); // Settings settingsId = nodeHelper.GetNodeId(newTenant.Id, "totalCodeSettingsPage", "Settings"); // Transaction History transactionHistoryId = nodeHelper.GetNodeId(newTenant.Id, "totalCodeTransactionHistoryPage", "Transaction History"); // Help helpId = nodeHelper.GetNodeId(newTenant.Id, "totalCodeCategoriesPage", "Help"); loginProblemsId = nodeHelper.GetNodeId(helpId, "totalCodeCategoryPage", "Login Problems"); depositAndWithdrawId = nodeHelper.GetNodeId(helpId, "totalCodeCategoryPage ", "Deposit & Withdraw"); // Sports Pages betHistoryId = nodeHelper.GetNodeId(newTenant.Id, "totalCodeGenericPage", "Betting History"); bonusHistoryId = nodeHelper.GetNodeId(newTenant.Id, "totalCodeGenericPage", "Bonus History"); sportId = nodeHelper.GetNodeId(newTenant.Id, "totalCodeGenericPage", "Sport"); inPlayId = nodeHelper.GetNodeId(newTenant.Id, "totalCodeGenericPage", "In-Play"); casinoId = nodeHelper.GetNodeId(newTenant.Id, "totalCodeGenericPage", "Casino"); liveCasinoId = nodeHelper.GetNodeId(newTenant.Id, "totalCodeGenericPage", "Live Casino"); vegasId = nodeHelper.GetNodeId(newTenant.Id, "totalCodeGenericPage", "Vegas"); lotteryId = nodeHelper.GetNodeId(newTenant.Id, "totalCodeGenericPage", "Lottery"); pokerId = nodeHelper.GetNodeId(newTenant.Id, "totalCodeGenericPage", "Poker"); liveScheduleId = nodeHelper.GetNodeId(newTenant.Id, "totalCodeGenericPage", "Live Schedule"); boardId = nodeHelper.GetNodeId(newTenant.Id, "totalCodeGenericPage", "Board Games"); liveScoreId = nodeHelper.GetNodeId(newTenant.Id, "totalCodeGenericPage", "Live Score"); overviewId = nodeHelper.GetNodeId(newTenant.Id, "totalCodeGenericPage", "Overview"); eventViewId = nodeHelper.GetNodeId(newTenant.Id, "totalCodeGenericPage", "Event View"); resultsId = nodeHelper.GetNodeId(newTenant.Id, "totalCodeGenericPage", "Results"); zeppelinId = nodeHelper.GetNodeId(newTenant.Id, "totalCodeGamePage", "Zeppelin"); // Affiliate affiliateId = nodeHelper.GetNodeId(newTenant.Id, _34_AffiliatePageDocumentType.DOCUMENT_TYPE_ALIAS, "Affiliate"); // Bonus History Page bonusHistoryPageId = nodeHelper.GetNodeId(newTenant.Id, _35_BonusHistoryPageDocumentType.DOCUMENT_TYPE_ALIAS, "Bonus History"); // Login Page loginPageId = nodeHelper.GetNodeId(newTenant.Id, _41_LoginPageDocumentType.DOCUMENT_TYPE_ALIAS, "Login"); } else { languageService.CreateDictionary(tenant); homeId = homeNode.CreateTenant(tenant); mediaId = mediaNode.CreateMediaHome(tenant); sliderBannersId = mediaNode.CreateMediaSliderFolder(mediaId); // Create Sub Pages under tenant Root var confirmEmailNode = new ConfirmEmailContentNode(ConnectorContext.ContentService, ConnectorContext.ContentTypeService, ConnectorContext.Logger); confirmEmailNode.CreateConfirmEmail(tenant); var resetPasswordNode = new ResetPasswordContentNode(ConnectorContext.ContentService, ConnectorContext.ContentTypeService, ConnectorContext.Logger); resetPasswordNode.CreateResetPasswordPage(tenant); // My Account myAccountId = nodeHelper.CreateNode(tenant, homeId, "totalCodeAccountPage", "My Account", "حساب من"); editMyAccountId = nodeHelper.CreateNode(tenant, myAccountId, "TotalCodeEditAccountPage", "Edit", "ویرایش"); documentsId = nodeHelper.CreateNode(tenant, myAccountId, "totalCodeDocumentPage", "Documents", "مدارک شناسایی"); marketingPreferencesId = nodeHelper.CreateNode(tenant, myAccountId, "totalCodeMarketingPage", "Marketing Preferences", "تنظیمات مارکتینگ"); // Withdraw withdrawId = nodeHelper.CreateNode(tenant, homeId, "totalCodeWithdrawPage", "Withdraw", "برداشت از حساب"); withdrawBankAccountsAndCardsId = nodeHelper.CreateNode(tenant, withdrawId, "totalCodeWithdrawBankPage", "Bank Accounts & Cards", "کارت و حساب های بانکی"); withdrawHistoryId = nodeHelper.CreateNode(tenant, withdrawId, "totalCodeWithdrawHistoryPage", "History", "سابقه برداشت از حساب"); // Tickets ticketsId = nodeHelper.CreateNode(tenant, homeId, "totalCodeTicketsPage", "Contact Us", "پشتیبانی"); viewTicketId = nodeHelper.CreateNode(tenant, ticketsId, "totalCodeTicketPage", "View Ticket", "نمایش پیام"); // Deposit depositId = nodeHelper.CreateNode(tenant, homeId, "totalCodeDepositPage", "Deposit", "افزایش موجودی"); depositBankAccountsAndCardsId = nodeHelper.CreateNode(tenant, depositId, "totalCodeDepositBankPage", "Bank Accounts & Cards", "کارت و حساب های بانکی"); depositHistoryId = nodeHelper.CreateNode(tenant, depositId, "totalCodeDepositHistoryPage", "History", "سابقه افزایش موجودی"); // Terms and Conditions termsAndConditionsId = nodeHelper.CreateNode(tenant, homeId, "totalCodeTermsPage", "Terms and Conditions", "شرایط و ضوابط"); // Settings settingsId = nodeHelper.CreateNode(tenant, homeId, "totalCodeSettingsPage", "Settings", "تنظیمات"); // Transaction History transactionHistoryId = nodeHelper.CreateNode(tenant, homeId, "totalCodeTransactionHistoryPage", "Transaction History", "سابقه تراکنش ها"); // Help helpId = nodeHelper.CreateNode(tenant, homeId, "totalCodeCategoriesPage", "Help", "راهنما"); // Help categories H_registrationAndLoginId = nodeHelper.CreateNode(tenant, helpId, "totalCodeCategoryPage", "Registration and login", "ثبت نام و ورود به سایت"); H_depositId = nodeHelper.CreateNode(tenant, helpId, "totalCodeCategoryPage", "Deposit", "افزایش موجودی"); H_withdrawId = nodeHelper.CreateNode(tenant, helpId, "totalCodeCategoryPage", "Withdraw", "برداشت از حساب"); H_myAccountId = nodeHelper.CreateNode(tenant, helpId, "totalCodeCategoryPage", "My Account", "حساب من"); H_betHistoryId = nodeHelper.CreateNode(tenant, helpId, "totalCodeCategoryPage", "Bet History", "سابقه پیش بینی ورزشی"); H_transactionHistoryId = nodeHelper.CreateNode(tenant, helpId, "totalCodeCategoryPage", "Transaction History", "سابقه تراکنش ها"); H_sportsId = nodeHelper.CreateNode(tenant, helpId, "totalCodeCategoryPage", "Sports", "پیش بینی ورزشی"); H_inplayId = nodeHelper.CreateNode(tenant, helpId, "totalCodeCategoryPage", "In-Play", "پیش بینی ورزشی زنده"); H_casinoId = nodeHelper.CreateNode(tenant, helpId, "totalCodeCategoryPage", "Casino", "کازینو"); H_liveCasinoId = nodeHelper.CreateNode(tenant, helpId, "totalCodeCategoryPage", "Live Casino", "کازینو زنده"); H_pokerId = nodeHelper.CreateNode(tenant, helpId, "totalCodeCategoryPage", "Poker", "پوکر"); H_faqId = nodeHelper.CreateNode(tenant, helpId, "totalCodeCategoryPage", "FAQ", "سوالات متداول"); // Help articles HA_registration = nodeHelper.CreateNode(tenant, H_registrationAndLoginId, "totalCodeArticlePage", "Registration", "ثبت نام"); HA_login = nodeHelper.CreateNode(tenant, H_registrationAndLoginId, "totalCodeArticlePage", "Login", "ورود به سایت"); HA_forgotUsername = nodeHelper.CreateNode(tenant, H_registrationAndLoginId, "totalCodeArticlePage", "Forgot your username?", "فراموش کردن نام کاربری"); HA_forgotPwd = nodeHelper.CreateNode(tenant, H_registrationAndLoginId, "totalCodeArticlePage", "Forgot your password?", "فراموش کردن رمز"); HA_depositCardsAndBank = nodeHelper.CreateNode(tenant, H_depositId, "totalCodeArticlePage", "Cards and Bank Accounts", "کارت و حسابهای بانکی"); HA_depositCartipay = nodeHelper.CreateNode(tenant, H_depositId, "totalCodeArticlePage", "Deposit with Cartipay", "افزایش موجودی با کارتی پی"); HA_depositCartipal = nodeHelper.CreateNode(tenant, H_depositId, "totalCodeArticlePage", "Deposit with Cartipal", "افزایش موجودی با کارتی پال"); HA_depositHistory = nodeHelper.CreateNode(tenant, H_depositId, "totalCodeArticlePage", "Deposit History", "سابقه افزایش موجودی"); HA_withdrawCardsAndBank = nodeHelper.CreateNode(tenant, H_withdrawId, "totalCodeArticlePage", "Cards and Bank Accounts", "کارت و حساب های بانکی"); HA_withdraw = nodeHelper.CreateNode(tenant, H_withdrawId, "totalCodeArticlePage", "Withdraw", "برداشت از حساب"); HA_withdrawHistory = nodeHelper.CreateNode(tenant, H_withdrawId, "totalCodeArticlePage", "Withdraw History", "سابقه برداشت از حساب"); HA_myAccount = nodeHelper.CreateNode(tenant, H_myAccountId, "totalCodeArticlePage", "My account", "حساب من"); HA_betHistory = nodeHelper.CreateNode(tenant, H_betHistoryId, "totalCodeArticlePage", "Bet History", "سابقه پیش بینی ورزشی"); HA_transactionHistory = nodeHelper.CreateNode(tenant, H_transactionHistoryId, "totalCodeArticlePage", "Transaction History", "سابقه تراکنش ها"); HA_sportbook = nodeHelper.CreateNode(tenant, H_sportsId, "totalCodeArticlePage", "Sportbook", "پیش بینی ورزشی"); HA_inplay = nodeHelper.CreateNode(tenant, H_inplayId, "totalCodeArticlePage", "In-Play", "پیش بینی زنده"); // Sports Pages betHistoryId = nodeHelper.CreateNode(tenant, homeId, "totalCodeGenericPage", "Betting History", "سابقه پیش بینی ها"); bonusHistoryId = nodeHelper.CreateNode(tenant, homeId, "totalCodeGenericPage", "Bonus History", "سابقه بونوس"); sportId = nodeHelper.CreateNode(tenant, homeId, "totalCodeGenericPage", "Sport", "پیش بینی ورزشی"); inPlayId = nodeHelper.CreateNode(tenant, homeId, "totalCodeGenericPage", "In-Play", "پیش بینی زنده"); casinoId = nodeHelper.CreateNode(tenant, homeId, "totalCodeGenericPage", "Casino", "کازینو"); liveCasinoId = nodeHelper.CreateNode(tenant, homeId, "totalCodeGenericPage", "Live Casino", "کازینو زنده"); vegasId = nodeHelper.CreateNode(tenant, homeId, "totalCodeGenericPage", "Vegas", "وگاس"); lotteryId = nodeHelper.CreateNode(tenant, homeId, "totalCodeGenericPage", "TVBET", "بخت آزمایی"); pokerId = nodeHelper.CreateNode(tenant, homeId, "totalCodeGenericPage", "Poker", "پوکر"); liveScheduleId = nodeHelper.CreateNode(tenant, homeId, "totalCodeGenericPage", "Live Schedule", "تقویم مسابقات"); boardId = nodeHelper.CreateNode(tenant, homeId, "totalCodeGenericPage", "Board Games", "تخته نرد"); liveScoreId = nodeHelper.CreateNode(tenant, homeId, "totalCodeGenericPage", "Live Score", "نتایج زنده"); overviewId = nodeHelper.CreateNode(tenant, homeId, "totalCodeGenericPage", "Overview", "خلاصه"); eventViewId = nodeHelper.CreateNode(tenant, homeId, "totalCodeGenericPage", "Event View", "نمایش رویداد"); resultsId = nodeHelper.CreateNode(tenant, homeId, "totalCodeGenericPage", "Results", "نتایج"); zeppelinId = nodeHelper.CreateNode(tenant, casinoId, "totalCodeGamePage", "Zeppelin", "انفجار"); // Affiliate affiliateId = nodeHelper.CreateNode(tenant, homeId, _34_AffiliatePageDocumentType.DOCUMENT_TYPE_ALIAS, "Affiliate", "وابسته"); // Bonus History Page bonusHistoryPageId = nodeHelper.CreateNode(tenant, homeId, _35_BonusHistoryPageDocumentType.DOCUMENT_TYPE_ALIAS, "Bonus History", "تاریخ پاداش"); // Login Page loginPageId = nodeHelper.CreateNode(tenant, homeId, _41_LoginPageDocumentType.DOCUMENT_TYPE_ALIAS, "Login", "وارد شدن"); UpdateTenantPages(betHistoryId, sportId, casinoId, pokerId, inPlayId, liveCasinoId, vegasId, lotteryId, liveScheduleId, boardId, zeppelinId); } SetHomeMenu(homeId, betHistoryId, sportId, casinoId, pokerId, inPlayId, liveCasinoId, vegasId, lotteryId, liveScheduleId, boardId, overviewId, eventViewId, ticketsId, liveScoreId, resultsId, helpId, depositId, withdrawId, myAccountId, bonusHistoryId, transactionHistoryId); SetHomeSettings(tenant, homeId, betHistoryId, sportId, casinoId, pokerId, inPlayId, liveCasinoId, vegasId, lotteryId, liveScheduleId, boardId, overviewId, eventViewId, ticketsId, liveScoreId, resultsId, helpId, depositId, withdrawId, myAccountId, bonusHistoryId, transactionHistoryId, termsAndConditionsId); var extended = new ExtendedTenant { Tenant = tenant, StartContentId = homeId, StartMediaId = mediaId, AllowedSectionAliases = new List <string> { DefaultSections.CONTENT, DefaultSections.MEDIA }, Permissions = ExtendedTenant.DefaultManagerPermissions, }; //userGroupService.CreateUserGroup(extended); userGroupService.CreateUser(extended); // Save Api Key information apiService.Save(extended); ApiKeyCache.ForceUpdateCache(database); if (SaveAndPublish) { nodeHelper.TryPublishSite(homeId); } languageService.SetCulturesAndHostnames(extended, setupLocal: SetupLocalUrls, secureUrl: SecureUrls); return(extended); }