protected void Page_Load(object sender, EventArgs e) { AjaxPro.Utility.RegisterTypeForAjax(typeof(BackupAjaxHandler), Page); Page.RegisterStyleControl(ResolveUrl("~/usercontrols/management/backup/css/backup.less")); Page.RegisterBodyScripts(ResolveUrl("~/usercontrols/management/backup/js/backup.js")); FolderSelectorHolder.Controls.Add(LoadControl(CommonLinkUtility.ToAbsolute("~/products/files/controls/fileselector/fileselector.ascx"))); BackupTimePeriod.Controls.Add(LoadControl(ChooseTimePeriod.Location)); RestoreHolder.Controls.Add(LoadControl(Restore.Location)); var size = CoreContext.TenantManager.FindTenantQuotaRows(new TenantQuotaRowQuery(TenantProvider.CurrentTenantID)) .Where(r => !string.IsNullOrEmpty(r.Tag) && new Guid(r.Tag) != Guid.Empty && !new Guid(r.Tag).Equals(_mailStorageTag)) .Sum(r => r.Counter); if (size > AvailableZipSize) { AvailableStatus = BackupAvailableSize.NotAvailable; } else { size = TenantStatisticsProvider.GetUsedSize(); if (size > AvailableZipSize) { AvailableStatus = BackupAvailableSize.WithoutMail; } } }
protected string GetShoppingUri(TenantQuota quota) { var uri = string.Empty; if (quota != null && quota.ActiveUsers >= TenantStatisticsProvider.GetUsersCount() && quota.MaxTotalSize >= TenantStatisticsProvider.GetUsedSize()) { if (Partner == null) { var link = CoreContext.PaymentManager.GetShoppingUri(TenantProvider.CurrentTenantID, quota.Id); if (link == null) { LogManager.GetLogger("ASC.Web.Billing").Error(string.Format("GetShoppingUri return null for tenant {0} and quota {1}", TenantProvider.CurrentTenantID, quota == null ? 0 : quota.Id)); } else { uri = link.ToString(); } } else if (Partner.PaymentMethod == PartnerPaymentMethod.External) { uri = (Partner.PaymentUrl ?? "") .ToLower() .Replace("{partnerid}", Partner.Id) .Replace("{tariffid}", quota.ActiveUsers + (quota.Year ? "year" : "month")) .Replace("{portal}", CoreContext.TenantManager.GetCurrentTenant().TenantAlias) .Replace("{currency}", Region.ISOCurrencySymbol) .Replace("{price}", ((int)quota.Price).ToString()); } } return(uri); }
public static TenantQuota GetRightQuota(bool year = false) { var usedSpace = TenantStatisticsProvider.GetUsedSize(); var needUsersCount = TenantStatisticsProvider.GetUsersCount(); var quotas = GetTenantQuotas(); TenantQuota result = null; if (!year) { result = quotas.OrderBy(q => q.Price).FirstOrDefault(q => !q.Free); if (result != null && result.DocsEdition && result.ActiveUsers > needUsersCount && result.MaxTotalSize > usedSpace) { return(result); } } result = quotas.OrderBy(r => r.ActiveUsers) .FirstOrDefault(quota => quota.ActiveUsers > needUsersCount && quota.MaxTotalSize > usedSpace && quota.DocsEdition && quota.Year == year && !quota.Free); if (year || result != null) { return(result); } return(GetRightQuota(true)); }
protected void Page_Load(object sender, EventArgs e) { UsersCount = TenantStatisticsProvider.GetUsersCount(); UsedSize = TenantStatisticsProvider.GetUsedSize(); CurrentTariff = TenantExtra.GetCurrentTariff(); CurrentQuota = TenantExtra.GetTenantQuota(); var partner = CoreContext.PaymentManager.GetApprovedPartner(); if (partner != null) { Partner = partner; _quotaList = CoreContext.PaymentManager.GetPartnerTariffs(Partner.Id); if (!string.IsNullOrEmpty(Partner.Currency)) { Region = new RegionInfo(Partner.Currency); } var control = (TariffPartner)LoadControl(TariffPartner.Location); control.CurPartner = Partner; control.TariffNotPaid = CurrentTariff.State >= TariffState.NotPaid; control.TariffProlongable = CurrentTariff.Prolongable; PaymentsCodeHolder.Controls.Add(control); } if (_quotaList == null || !_quotaList.Any()) { _quotaList = TenantExtra.GetTenantQuotas(); } else if (!CurrentQuota.Trial) { CurrentQuota = _quotaList.FirstOrDefault(q => q.Id == CurrentQuota.Id) ?? CurrentQuota; } _quotaList = _quotaList.OrderBy(r => r.ActiveUsers).ToList().Where(r => !r.Trial); QuotasYear = _quotaList.Where(r => r.Year).ToList(); HideBuyRecommendation = CurrentTariff.Autorenewal || TariffSettings.GetTariffSettings() || Partner != null; downgradeInfoContainer.Options.IsPopup = true; buyRecommendationContainer.Options.IsPopup = true; AjaxPro.Utility.RegisterTypeForAjax(GetType()); if (StudioSmsNotificationSettings.IsVisibleSettings && (SettingsManager.Instance.LoadSettings <StudioSmsNotificationSettings>(TenantProvider.CurrentTenantID).EnableSetting || CoreContext.UserManager.IsUserInGroup(SecurityContext.CurrentAccount.ID, Constants.GroupAdmin.ID)) && Partner == null) { SmsEnable = true; var smsBuy = (SmsBuy)LoadControl(SmsBuy.Location); smsBuy.ShowLink = !SettingsManager.Instance.LoadSettings <StudioSmsNotificationSettings>(TenantProvider.CurrentTenantID).EnableSetting; SmsBuyHolder.Controls.Add(smsBuy); } if (Partner == null) { RegisterScript(); } }
protected void Page_Load(object sender, EventArgs e) { Page .RegisterBodyScripts("~/usercontrols/management/tariffsettings/js/tariffusage.js", "~/js/asc/plugins/countries.js", "~/js/asc/plugins/phonecontroller.js") .RegisterStyle( "~/skins/default/phonecontroller.css", "~/usercontrols/management/tariffsettings/css/tariff.less", "~/usercontrols/management/tariffsettings/css/tariffusage.less") .RegisterClientScript(new CountriesResources()); CurrentRegion = RegionDefault; Regions.Add(CurrentRegion); UsersCount = TenantStatisticsProvider.GetUsersCount(); UsedSize = TenantStatisticsProvider.GetUsedSize(); CurrentTariff = TenantExtra.GetCurrentTariff(); CurrentQuota = TenantExtra.GetTenantQuota(); if (_quotaList == null || !_quotaList.Any()) { _quotaList = TenantExtra.GetTenantQuotas(); } else if (!CurrentQuota.Trial) { CurrentQuota = _quotaList.FirstOrDefault(q => q.Id == CurrentQuota.Id) ?? CurrentQuota; } _quotaList = _quotaList.OrderBy(r => r.ActiveUsers).ToList().Where(r => !r.Trial); QuotasYear = _quotaList.Where(r => r.Year).ToList(); MonthIsDisable = !CurrentQuota.Free && (CurrentQuota.Year || CurrentQuota.Year3) && CurrentTariff.State == TariffState.Paid; YearIsDisable = !CurrentQuota.Free && CurrentQuota.Year3 && CurrentTariff.State == TariffState.Paid; var minYearQuota = QuotasYear.FirstOrDefault(q => q.ActiveUsers >= UsersCount && q.MaxTotalSize >= UsedSize); MinActiveUser = minYearQuota != null ? minYearQuota.ActiveUsers : (QuotasYear.Count > 0 ? QuotasYear.Last().ActiveUsers : 0 + 1); HideBuyRecommendation = CurrentTariff.Autorenewal || TariffSettings.HideRecommendation; downgradeInfoContainer.Options.IsPopup = true; buyRecommendationContainer.Options.IsPopup = true; AjaxPro.Utility.RegisterTypeForAjax(GetType()); if (StudioSmsNotificationSettings.IsVisibleSettings && (SettingsManager.Instance.LoadSettings <StudioSmsNotificationSettings>(TenantProvider.CurrentTenantID).EnableSetting || CoreContext.UserManager.IsUserInGroup(SecurityContext.CurrentAccount.ID, Constants.GroupAdmin.ID))) { SmsEnable = true; var smsBuy = (SmsBuy)LoadControl(SmsBuy.Location); smsBuy.ShowLink = !SettingsManager.Instance.LoadSettings <StudioSmsNotificationSettings>(TenantProvider.CurrentTenantID).EnableSetting; SmsBuyHolder.Controls.Add(smsBuy); } RegisterScript(); CurrencyCheck(); }
public static string GetTariffNotify() { var tariff = GetCurrentTariff(); if (tariff.State == TariffState.Trial) { var count = tariff.DueDate.Subtract(DateTime.Today.Date).Days; if (count <= 0) { return(Resource.TrialPeriodExpired); } string end; var num = count % 100; if (num >= 11 && num <= 19) { end = Resource.DaysTwo; } else { var i = count % 10; switch (i) { case (1): end = Resource.Day; break; case (2): case (3): case (4): end = Resource.DaysOne; break; default: end = Resource.DaysTwo; break; } } return(string.Format(Resource.TrialPeriod, count, end)); } if (tariff.State == TariffState.Paid) { var quota = GetTenantQuota(); long notifySize; long.TryParse(ConfigurationManager.AppSettings["web.tariff-notify.storage"] ?? "314572800", out notifySize); //300 MB if (notifySize > 0 && quota.MaxTotalSize - TenantStatisticsProvider.GetUsedSize() < notifySize) { return(string.Format(Resource.TariffExceedLimit, FileSizeComment.FilesSizeToString(quota.MaxTotalSize))); } } return(string.Empty); }
public long MaxChunkedUploadSize(TenantExtra tenantExtra, TenantStatisticsProvider tenantStatisticsProvider) { var diskQuota = tenantExtra.GetTenantQuota(); if (diskQuota != null) { var usedSize = tenantStatisticsProvider.GetUsedSize(); var freeSize = Math.Max(diskQuota.MaxTotalSize - usedSize, 0); return Math.Min(freeSize, diskQuota.MaxFileSize); } return ChunkUploadSize; }
protected Tuple <string, string, string> GetShoppingData(TenantQuota quota, string currency, int quantity) { var getLink = true; var buttonText = Resource.TariffButtonBuy; var infoText = string.Empty; var currentUsersCount = TenantStatisticsProvider.GetUsersCount(); var currentVisitorsCount = TenantStatisticsProvider.GetVisitorsCount(); var currentUsedSize = TenantStatisticsProvider.GetUsedSize(); var currentTariff = TenantExtra.GetCurrentTariff(); var currentQuota = TenantExtra.GetTenantQuota(); var language = Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName; var customerId = CoreContext.TenantManager.GetCurrentTenant().OwnerId.ToString(); var quotaActiveUsers = quota.ActiveUsers == -1 ? quantity : quota.ActiveUsers; var quotaMaxTotalSize = quota.ActiveUsers == -1 ? quota.MaxTotalSize * quantity : quota.MaxTotalSize; if (quotaActiveUsers < currentUsersCount || quotaMaxTotalSize < currentUsedSize || (!currentQuota.Free && (quotaActiveUsers * Constants.CoefficientOfVisitors) < currentVisitorsCount)) { getLink = false; } else if (Equals(quota.Id, currentQuota.Id) && quantity == currentTariff.Quantity) { buttonText = Resource.TariffButtonExtend; if (!currentTariff.Prolongable) { getLink = false; } else if (currentTariff.Autorenewal) { getLink = false; buttonText = Resource.TariffEnabledAutorenew; infoText = Resource.TariffRemarkProlongEnable; } } else if (currentTariff.Prolongable) { buttonText = Resource.TariffButtonBuy; infoText = Resource.TariffRemarkProlongDisable; } else if (currentTariff.State == TariffState.Paid && quotaActiveUsers < currentQuota.ActiveUsers) { getLink = false; buttonText = Resource.TariffButtonBuy; infoText = currentQuota.Year3 ? Resource.TariffRemarkDisabledYear : Resource.TariffRemarkDisabledMonth; } var link = getLink ? GetShoppingLink(quota, currency, language, customerId, quantity) : string.Empty; return(new Tuple <string, string, string>(buttonText, infoText, link)); }
public static TenantQuota GetRightQuota() { var usedSpace = TenantStatisticsProvider.GetUsedSize(); var needUsersCount = TenantStatisticsProvider.GetUsersCount(); return(GetTenantQuotas().OrderBy(r => r.ActiveUsers) .FirstOrDefault(quota => quota.ActiveUsers > needUsersCount && quota.MaxTotalSize > usedSpace && quota.DocsEdition && !quota.Year)); }
public AjaxResponse RequestPayPal(int qoutaId) { var res = new AjaxResponse(); try { if (!HttpRuntime.Cache.Get(PartnerCache).Equals(DateTime.UtcNow)) { HttpRuntime.Cache.Insert(PartnerCache, DateTime.UtcNow); } var partnerId = CoreContext.TenantManager.GetCurrentTenant().PartnerId; var partner = CoreContext.PaymentManager.GetPartner(partnerId); if (partner == null || partner.Status != PartnerStatus.Approved || partner.Removed || partner.PaymentMethod != PartnerPaymentMethod.PayPal) { throw new MethodAccessException(Resource.PartnerPayPalExc); } var tenantQuota = TenantExtra.GetTenantQuota(qoutaId); var curruntQuota = TenantExtra.GetTenantQuota(); if (TenantExtra.GetCurrentTariff().State == TariffState.Paid && tenantQuota.ActiveUsers < curruntQuota.ActiveUsers && tenantQuota.Year == curruntQuota.Year) { throw new MethodAccessException(Resource.PartnerPayPalDowngrade); } if (tenantQuota.Price > partner.AvailableCredit) { CoreContext.PaymentManager.RequestClientPayment(partnerId, qoutaId, false); throw new Exception(Resource.PartnerRequestLimitInfo); } var usersCount = TenantStatisticsProvider.GetUsersCount(); var usedSize = TenantStatisticsProvider.GetUsedSize(); if (tenantQuota.ActiveUsers < usersCount || tenantQuota.MaxTotalSize < usedSize) { res.rs2 = "quotaexceed"; return(res); } res.rs1 = CoreContext.PaymentManager.GetButton(partner.Id, qoutaId); } catch (Exception e) { res.message = e.Message; } return(res); }
public override List <UsageSpaceStatItem> GetStatData() { return(WebItemManager.Instance.GetSubItems(CommunityProduct.ID, ItemAvailableState.All) .Select(webItem => new UsageSpaceStatItem { Name = webItem.Name, ImgUrl = webItem.GetIconAbsoluteURL(), SpaceUsage = TenantStatisticsProvider.GetUsedSize(webItem.ID), Url = VirtualPathUtility.ToAbsolute(webItem.StartURL) }) .Where(statItem => statItem.SpaceUsage > 0) .ToList()); }
public void GetFree() { var quota = TenantExtra.GetTenantQuota(); var usersCount = TenantStatisticsProvider.GetUsersCount(); var usedSize = TenantStatisticsProvider.GetUsedSize(); if (!quota.Free && quota.ActiveUsers >= usersCount && quota.MaxTotalSize >= usedSize) { TenantExtra.FreeRequest(); } }
public TenantQuota GetRightQuota() { var usedSpace = TenantStatisticsProvider.GetUsedSize(); var needUsersCount = TenantStatisticsProvider.GetUsersCount(); var quotas = GetTenantQuotas(); return(quotas.OrderBy(q => q.ActiveUsers) .ThenBy(q => q.Year) .FirstOrDefault(q => q.ActiveUsers > needUsersCount && q.MaxTotalSize > usedSpace && !q.Free && !q.Trial)); }
protected void Page_Load(object sender, EventArgs e) { Page .RegisterBodyScripts("~/UserControls/Management/TariffSettings/js/tariffusage.js", "~/js/asc/plugins/countries.js", "~/js/asc/plugins/phonecontroller.js") .RegisterStyle( "~/skins/default/phonecontroller.css", "~/UserControls/Management/TariffSettings/css/tariff.less", "~/UserControls/Management/TariffSettings/css/tariffusage.less") .RegisterClientScript(new CountriesResources()); CurrentRegion = RegionDefault; Regions.Add(CurrentRegion); UsersCount = TenantStatisticsProvider.GetUsersCount(); UsedSize = TenantStatisticsProvider.GetUsedSize(); CurrentTariff = TenantExtra.GetCurrentTariff(); CurrentQuota = TenantExtra.GetTenantQuota(); if (_quotaList == null || !_quotaList.Any()) { _quotaList = TenantExtra.GetTenantQuotas(); } else if (!CurrentQuota.Trial) { CurrentQuota = _quotaList.FirstOrDefault(q => q.Id == CurrentQuota.Id) ?? CurrentQuota; } _quotaList = _quotaList.OrderBy(r => r.ActiveUsers).ToList().Where(r => !r.Trial); QuotasYear = _quotaList.Where(r => r.Year).ToList(); MonthIsDisable = !CurrentQuota.Free && (CurrentQuota.Year || CurrentQuota.Year3) && CurrentTariff.State == TariffState.Paid; YearIsDisable = !CurrentQuota.Free && CurrentQuota.Year3 && CurrentTariff.State == TariffState.Paid; var minYearQuota = QuotasYear.FirstOrDefault(q => q.ActiveUsers >= UsersCount && q.MaxTotalSize >= UsedSize); MinActiveUser = minYearQuota != null ? minYearQuota.ActiveUsers : (QuotasYear.Count > 0 ? QuotasYear.Last().ActiveUsers : 0 + 1); HideBuyRecommendation = CurrentTariff.Autorenewal || TariffSettings.HideRecommendation; downgradeInfoContainer.Options.IsPopup = true; buyRecommendationContainer.Options.IsPopup = true; AjaxPro.Utility.RegisterTypeForAjax(GetType()); RegisterScript(); CurrencyCheck(); }
protected void Page_Load(object sender, EventArgs e) { Page .RegisterBodyScripts("~/UserControls/Management/TariffSettings/js/tariffcustom.js", "~/js/asc/plugins/countries.js", "~/js/asc/plugins/phonecontroller.js") .RegisterStyle( "~/skins/default/phonecontroller.css", "~/UserControls/Management/TariffSettings/css/tariff.less", "~/UserControls/Management/TariffSettings/css/tariffusage.less", "~/UserControls/Management/TariffSettings/css/tariffcustom.less") .RegisterClientScript(new CountriesResources()); CurrentRegion = RegionDefault; UsersCount = TenantStatisticsProvider.GetUsersCount(); UsedSize = TenantStatisticsProvider.GetUsedSize(); CurrentTariff = TenantExtra.GetCurrentTariff(); CurrentQuota = TenantExtra.GetTenantQuota(); if (_quotaList == null || !_quotaList.Any()) { _quotaList = TenantExtra.GetTenantQuotas(); } else if (!CurrentQuota.Trial) { CurrentQuota = _quotaList.FirstOrDefault(q => q.Id == CurrentQuota.Id) ?? CurrentQuota; } _quotaList = _quotaList.OrderBy(r => r.ActiveUsers).ToList().Where(r => !r.Trial); QuotasYear = _quotaList.Where(r => r.Year).ToList(); MonthIsDisable = !CurrentQuota.Free && (CurrentQuota.Year || CurrentQuota.Year3) && CurrentTariff.State == TariffState.Paid; YearIsDisable = !CurrentQuota.Free && CurrentQuota.Year3 && CurrentTariff.State == TariffState.Paid; var minYearQuota = QuotasYear.FirstOrDefault(q => q.ActiveUsers >= UsersCount && q.MaxTotalSize >= UsedSize); MinActiveUser = minYearQuota != null ? minYearQuota.ActiveUsers : (QuotasYear.Count > 0 ? QuotasYear.Last().ActiveUsers : 0 + 1); MonthPrice = Convert.ToInt32(ConfigurationManager.AppSettings["core.custom-mode.month-price"] ?? "290"); YearPrice = Convert.ToInt32(ConfigurationManager.AppSettings["core.custom-mode.year-price"] ?? "175"); AjaxPro.Utility.RegisterTypeForAjax(GetType()); CurrencyCheck(); }
public override List <UsageSpaceStatItem> GetStatData() { var storage = GetStorage(); if (storage == null) { return(WebItemManager.Instance.GetItemsAll() .Where(webItem => webItem.ID == WebItemManager.TalkProductID) .Select(webItem => new UsageSpaceStatItem { Name = webItem.Name, SpaceUsage = TenantStatisticsProvider.GetUsedSize(webItem.ID), Url = VirtualPathUtility.ToAbsolute(webItem.StartURL) }) .ToList()); } return(CoreContext.UserManager.GetUsers() .Select(userInfo => ToUsageSpaceStatItem(storage, userInfo)) .Where(item => item != null) .OrderByDescending(item => item.SpaceUsage) .ToList()); }
private static void SetQuota(TenantQuota quota) { if (quota == null) { throw new ArgumentNullException("quota"); } if (TenantStatisticsProvider.GetUsersCount() > quota.ActiveUsers) { throw new Exception(string.Format(Resource.PortalAccessSettingsUserLimitException, quota.ActiveUsers)); } if (TenantStatisticsProvider.GetUsedSize() > quota.MaxTotalSize) { throw new Exception(string.Format(Resource.PortalAccessSettingsDiscSpaceLimitException, FileSizeComment.FilesSizeToString(quota.MaxTotalSize))); } CoreContext.PaymentManager.SetTariff(TenantProvider.CurrentTenantID, new Tariff { QuotaId = quota.Id, DueDate = DateTime.MaxValue }); }
public static BackupAvailableSize GetAvailableSize() { if (CoreContext.Configuration.Standalone) { return(BackupAvailableSize.Available); } var size = CoreContext.TenantManager.FindTenantQuotaRows(new TenantQuotaRowQuery(TenantProvider.CurrentTenantID)) .Where(r => !string.IsNullOrEmpty(r.Tag) && new Guid(r.Tag) != Guid.Empty && !new Guid(r.Tag).Equals(mailStorageTag)) .Sum(r => r.Counter); if (size > AvailableZipSize) { return(BackupAvailableSize.NotAvailable); } size = TenantStatisticsProvider.GetUsedSize(); if (size > AvailableZipSize) { return(BackupAvailableSize.WithoutMail); } return(BackupAvailableSize.Available); }
protected void Page_Load(object sender, EventArgs e) { Page.RegisterBodyScripts(ResolveUrl("~/usercontrols/management/tariffsettings/js/tariffusage.js")); Page.RegisterStyleControl(VirtualPathUtility.ToAbsolute("~/usercontrols/management/tariffsettings/css/tariffusage.less")); UsersCount = TenantStatisticsProvider.GetUsersCount(); UsedSize = TenantStatisticsProvider.GetUsedSize(); CurrentTariff = TenantExtra.GetCurrentTariff(); CurrentQuota = TenantExtra.GetTenantQuota(); var partner = CoreContext.PaymentManager.GetApprovedPartner(); if (partner != null) { Partner = partner; _quotaList = CoreContext.PaymentManager.GetPartnerTariffs(Partner.Id); if (!string.IsNullOrEmpty(Partner.Currency)) { _region = new RegionInfo(Partner.Currency); } var control = (TariffPartner)LoadControl(TariffPartner.Location); control.CurPartner = Partner; control.TariffNotPaid = CurrentTariff.State >= TariffState.NotPaid; control.TariffProlongable = CurrentTariff.Prolongable; PaymentsCodeHolder.Controls.Add(control); } if (_quotaList == null || !_quotaList.Any()) { _quotaList = TenantExtra.GetTenantQuotas(); } else if (!CurrentQuota.Trial) { CurrentQuota = _quotaList.FirstOrDefault(q => q.Id == CurrentQuota.Id) ?? CurrentQuota; } _quotaList = _quotaList.OrderBy(r => r.ActiveUsers).ToList().Where(r => !r.Trial); QuotasYear = _quotaList.Where(r => r.Year).ToList(); HideBuyRecommendation = CurrentTariff.Autorenewal || TariffSettings.HideRecommendation || Partner != null; AnnualDiscount = QuotasYear.All(q => q.Price2 != decimal.Zero); HideAnnualRecomendation = !AnnualDiscount || (CurrentQuota.Year && !CurrentQuota.Free && !CurrentQuota.Trial) || TariffSettings.HideAnnualRecomendation || CurrentQuota.NonProfit; if (!HideAnnualRecomendation) { AnnualQuotaForDisplay = QuotaForDisplay; if (AnnualQuotaForDisplay == null || AnnualQuotaForDisplay.Free || AnnualQuotaForDisplay.Trial || !AnnualQuotaForDisplay.Visible) { HideAnnualRecomendation = true; } else if (!AnnualQuotaForDisplay.Year) { AnnualQuotaForDisplay = _quotaList.FirstOrDefault(r => r.ActiveUsers == AnnualQuotaForDisplay.ActiveUsers && r.Year); if (AnnualQuotaForDisplay == null) { HideAnnualRecomendation = true; } } } downgradeInfoContainer.Options.IsPopup = true; buyRecommendationContainer.Options.IsPopup = true; annualRecomendationContainer.Options.IsPopup = true; AjaxPro.Utility.RegisterTypeForAjax(GetType()); if (StudioSmsNotificationSettings.IsVisibleSettings && (SettingsManager.Instance.LoadSettings <StudioSmsNotificationSettings>(TenantProvider.CurrentTenantID).EnableSetting || CoreContext.UserManager.IsUserInGroup(SecurityContext.CurrentAccount.ID, Constants.GroupAdmin.ID)) && Partner == null) { SmsEnable = true; var smsBuy = (SmsBuy)LoadControl(SmsBuy.Location); smsBuy.ShowLink = !SettingsManager.Instance.LoadSettings <StudioSmsNotificationSettings>(TenantProvider.CurrentTenantID).EnableSetting; SmsBuyHolder.Controls.Add(smsBuy); } if (VoipPaymentSettings.IsVisibleSettings && CoreContext.UserManager.IsUserInGroup(SecurityContext.CurrentAccount.ID, Constants.GroupAdmin.ID) && Partner == null) { VoipEnable = true; var voipBuy = (VoipBuy)LoadControl(VoipBuy.Location); VoipBuyHolder.Controls.Add(voipBuy); } if (Partner == null) { RegisterScript(); } if (Partner == null && Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName == "ru") { _region = new RegionInfo("RU"); RateRuble = SetupInfo.ExchangeRateRuble; SetStar(string.Format(Resource.TariffsCurrencyRu, RateRuble)); } }
protected void Page_Load(object sender, EventArgs e) { Page.RegisterBodyScripts("~/usercontrols/management/tariffsettings/js/tariffusage.js"); Page.RegisterStyle("~/usercontrols/management/tariffsettings/css/tariff.less"); Page.RegisterStyle("~/usercontrols/management/tariffsettings/css/tariffusage.less"); UsersCount = TenantStatisticsProvider.GetUsersCount(); UsedSize = TenantStatisticsProvider.GetUsedSize(); CurrentTariff = TenantExtra.GetCurrentTariff(); CurrentQuota = TenantExtra.GetTenantQuota(); var partner = CoreContext.PaymentManager.GetApprovedPartner(); if (partner != null) { Partner = partner; _quotaList = CoreContext.PaymentManager.GetPartnerTariffs(Partner.Id); if (!string.IsNullOrEmpty(Partner.Currency)) { _region = new RegionInfo(Partner.Currency); } var control = (TariffPartner)LoadControl(TariffPartner.Location); control.CurPartner = Partner; control.TariffNotPaid = CurrentTariff.State >= TariffState.NotPaid; control.TariffProlongable = CurrentTariff.Prolongable; PaymentsCodeHolder.Controls.Add(control); } if (_quotaList == null || !_quotaList.Any()) { _quotaList = TenantExtra.GetTenantQuotas(); } else if (!CurrentQuota.Trial) { CurrentQuota = _quotaList.FirstOrDefault(q => q.Id == CurrentQuota.Id) ?? CurrentQuota; } _quotaList = _quotaList.OrderBy(r => r.ActiveUsers).ToList().Where(r => !r.Trial); QuotasYear = _quotaList.Where(r => r.Year).ToList(); MonthIsDisable = !CurrentQuota.Free && (CurrentQuota.Year || CurrentQuota.Year3) && CurrentTariff.State == TariffState.Paid; YearIsDisable = !CurrentQuota.Free && CurrentQuota.Year3 && CurrentTariff.State == TariffState.Paid; var minYearQuota = QuotasYear.FirstOrDefault(q => q.ActiveUsers >= UsersCount && q.MaxTotalSize >= UsedSize); MinActiveUser = minYearQuota != null ? minYearQuota.ActiveUsers : (QuotasYear.Last().ActiveUsers + 1); HideBuyRecommendation = CurrentTariff.Autorenewal || TariffSettings.HideRecommendation || Partner != null; downgradeInfoContainer.Options.IsPopup = true; buyRecommendationContainer.Options.IsPopup = true; AjaxPro.Utility.RegisterTypeForAjax(GetType()); if (StudioSmsNotificationSettings.IsVisibleSettings && (SettingsManager.Instance.LoadSettings <StudioSmsNotificationSettings>(TenantProvider.CurrentTenantID).EnableSetting || CoreContext.UserManager.IsUserInGroup(SecurityContext.CurrentAccount.ID, Constants.GroupAdmin.ID)) && Partner == null) { SmsEnable = true; var smsBuy = (SmsBuy)LoadControl(SmsBuy.Location); smsBuy.ShowLink = !SettingsManager.Instance.LoadSettings <StudioSmsNotificationSettings>(TenantProvider.CurrentTenantID).EnableSetting; SmsBuyHolder.Controls.Add(smsBuy); } if (VoipPaymentSettings.IsVisibleSettings && CoreContext.UserManager.IsUserInGroup(SecurityContext.CurrentAccount.ID, Constants.GroupAdmin.ID) && Partner == null) { VoipEnable = true; var voipBuy = (VoipBuy)LoadControl(VoipBuy.Location); VoipBuyHolder.Controls.Add(voipBuy); } if (Partner == null) { RegisterScript(); } if (Partner == null && Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName == "ru") { _region = new RegionInfo("RU"); _currencyFormat = "{price}{currency}"; RateRuble = SetupInfo.ExchangeRateRuble; SetStar(string.Format(Resource.TariffsCurrencyRu, RateRuble)); } }
private static Tuple <string, string> GetTariffNotify() { var tariff = TenantExtra.GetCurrentTariff(); var count = tariff.DueDate.Date.Subtract(DateTime.Today).Days; if (tariff.State == TariffState.Trial) { if (count <= 5) { var text = String.Format(CoreContext.Configuration.Standalone ? Resource.TariffLinkStandalone : Resource.TrialPeriodInfoText, "<a href=\"" + TenantExtra.GetTariffPageLink() + "\">", "</a>"); if (count <= 0) { return(new Tuple <string, string>(Resource.TrialPeriodExpired, text)); } var end = GetNumeralResourceByCount(count, Resource.Day, Resource.DaysOne, Resource.DaysTwo); return(new Tuple <string, string>(string.Format(Resource.TrialPeriod, count, end), text)); } if (CoreContext.Configuration.Standalone) { return(new Tuple <string, string>(Resource.TrialPeriodInfoTextLicense, string.Empty)); } } if (tariff.State == TariffState.Paid) { if (CoreContext.Configuration.Standalone && count < 10) { var text = String.Format(Resource.TariffLinkStandalone, "<a href=\"" + TenantExtra.GetTariffPageLink() + "\">", "</a>"); if (count <= 0) { return(new Tuple <string, string>(Resource.PaidPeriodExpiredStandalone, text)); } var end = GetNumeralResourceByCount(count, Resource.Day, Resource.DaysOne, Resource.DaysTwo); return(new Tuple <string, string>(string.Format(Resource.PaidPeriodStandalone, count, end), text)); } var quota = TenantExtra.GetTenantQuota(); long notifySize; long.TryParse(ConfigurationManager.AppSettings["web.tariff-notify.storage"] ?? "314572800", out notifySize); //300 MB if (notifySize > 0 && quota.MaxTotalSize - TenantStatisticsProvider.GetUsedSize() < notifySize) { var head = string.Format(Resource.TariffExceedLimit, FileSizeComment.FilesSizeToString(quota.MaxTotalSize)); var text = String.Format(Resource.TariffExceedLimitInfoText, "<a href=\"" + TenantExtra.GetTariffPageLink() + "\">", "</a>"); return(new Tuple <string, string>(head, text)); } } if (tariff.State == TariffState.Delay) { var text = String.Format(Resource.TariffPaymentDelayText, "<a href=\"" + TenantExtra.GetTariffPageLink() + "\">", "</a>", tariff.DelayDueDate.Date.ToLongDateString()); return(new Tuple <string, string>(Resource.TariffPaymentDelay, text)); } return(null); }
private bool CheckStartupEnabled(TenantQuota currentQuota, TenantQuota startupQuota, out string errorMessage) { errorMessage = string.Empty; if (!currentQuota.Trial) { errorMessage = UserControlsCommonResource.SaasTariffErrorTrial; return(false); } if (TenantStatisticsProvider.GetUsersCount() > startupQuota.ActiveUsers) { errorMessage = string.Format(UserControlsCommonResource.SaasTariffErrorUsers, startupQuota.ActiveUsers); return(false); } if (TenantStatisticsProvider.GetVisitorsCount() > 0) { errorMessage = string.Format(UserControlsCommonResource.SaasTariffErrorGuests, 0); return(false); } var currentTenant = CoreContext.TenantManager.GetCurrentTenant(); var admins = WebItemSecurity.GetProductAdministrators(Guid.Empty); if (admins.Any(admin => admin.ID != currentTenant.OwnerId)) { errorMessage = string.Format(UserControlsCommonResource.SaasTariffErrorAdmins, 1); return(false); } if (TenantStatisticsProvider.GetUsedSize() > startupQuota.MaxTotalSize) { errorMessage = string.Format(UserControlsCommonResource.SaasTariffErrorStorage, FileSizeComment.FilesSizeToString(startupQuota.MaxTotalSize)); return(false); } var authServiceList = new AuthorizationKeys().AuthServiceList.Where(x => x.CanSet); foreach (var service in authServiceList) { if (service.Props.Any(r => !string.IsNullOrEmpty(r.Value))) { errorMessage = UserControlsCommonResource.SaasTariffErrorThirparty; return(false); } } if (!TenantWhiteLabelSettings.Load().IsDefault) { errorMessage = UserControlsCommonResource.SaasTariffErrorWhiteLabel; return(false); } if (!string.IsNullOrEmpty(currentTenant.MappedDomain)) { errorMessage = UserControlsCommonResource.SaasTariffErrorDomain; return(false); } var accountLinker = new AccountLinker("webstudio"); foreach (var user in CoreContext.UserManager.GetUsers(EmployeeStatus.All)) { var linkedAccounts = accountLinker.GetLinkedProfiles(user.ID.ToString()); if (linkedAccounts.Any()) { errorMessage = UserControlsCommonResource.SaasTariffErrorOauth; return(false); } } if (SsoSettingsV2.Load().EnableSso) { errorMessage = UserControlsCommonResource.SaasTariffErrorSso; return(false); } if (ActiveDirectory.Base.Settings.LdapSettings.Load().EnableLdapAuthentication) { errorMessage = UserControlsCommonResource.SaasTariffErrorLdap; return(false); } using (var service = new BackupServiceClient()) { var scheduleResponse = service.GetSchedule(currentTenant.TenantId); if (scheduleResponse != null) { errorMessage = UserControlsCommonResource.SaasTariffErrorAutoBackup; return(false); } } return(true); }