private static void LicenseToDB(License license) { Validate(license); CustomerId = license.CustomerId; var defaultQuota = CoreContext.TenantManager.GetTenantQuota(Tenant.DEFAULT_TENANT); var quota = new TenantQuota(-1000) { ActiveUsers = Constants.MaxEveryoneCount, MaxFileSize = defaultQuota.MaxFileSize, MaxTotalSize = defaultQuota.MaxTotalSize, Name = "license", DocsEdition = true, Customization = license.Customization, Update = true, Trial = license.Trial, }; CoreContext.TenantManager.SaveTenantQuota(quota); var tariff = new Tariff { QuotaId = quota.Id, DueDate = license.DueDate, }; CoreContext.PaymentManager.SetTariff(-1, tariff); }
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 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 TenantQuota SaveTenantQuota(TenantQuota quota) { if (quota == null) { throw new ArgumentNullException("quota"); } var dbQuota = new DbQuota { Tenant = quota.Id, Name = quota.Name, MaxFileSize = GetInMBytes(quota.MaxFileSize), MaxTotalSize = GetInMBytes(quota.MaxTotalSize), ActiveUsers = quota.ActiveUsers, Features = quota.Features, Price = quota.Price, Price2 = quota.Price2, AvangateId = quota.AvangateId, Visible = quota.Visible }; CoreDbContext.AddOrUpdate(r => r.Quotas, dbQuota); CoreDbContext.SaveChanges(); return(quota); }
public void QuotaMethod() { var quota1 = new TenantQuota(Tenant) { MaxFileSize = 3, MaxTotalSize = 4, ActiveUsers = 30, }; Service.SaveTenantQuota(quota1); CompareQuotas(quota1, Service.GetTenantQuota(quota1.Id)); Service.RemoveTenantQuota(Tenant); Assert.IsNull(Service.GetTenantQuota(quota1.Id)); var row = new TenantQuotaRow { Tenant = this.Tenant, Path = "path", Counter = 1000, Tag = "tag" }; Service.SetTenantQuotaRow(row, false); var rows = Service.FindTenantQuotaRows(Tenant).ToList(); CompareQuotaRows(row, rows.Find(r => r.Tenant == row.Tenant && r.Tag == row.Tag)); Service.SetTenantQuotaRow(row, true); row.Counter += 1000; rows = Service.FindTenantQuotaRows(Tenant).ToList(); CompareQuotaRows(row, rows.Find(r => r.Tenant == row.Tenant && r.Tag == row.Tag)); //DeleteQuotaRow(row); }
protected TenantQuota GetQuotaMonth(TenantQuota quota) { return(_quotaList.FirstOrDefault(r => r.ActiveUsers == quota.ActiveUsers && (!r.Year || quota.Free) && !r.Year3)); }
private string GetShoppingLink(TenantQuota quota, string currency, string language, string customerId, int quantity) { var link = string.Empty; if (quota != null) { try { var uri = CoreContext.PaymentManager.GetShoppingUri(quota.Id, true, null, currency, language, customerId, quantity.ToString()); if (uri == null) { var message = string.Format("GetShoppingLink: return null for tenant {0} quota {1} currency {2} language {3} customerId {4} quantity {5}", TenantProvider.CurrentTenantID, quota.Id, currency, language, customerId, quantity); Log.Info(message); } else { link = uri.ToString(); } } catch (Exception ex) { var message = string.Format("GetShoppingLink: {0} tenant {1} quota {2} currency {3} language {4} customerId {5} quantity {6}", ex.Message, TenantProvider.CurrentTenantID, quota.Id, currency, language, customerId, quantity); Log.Info(message, ex); } } return(link); }
public IActionResult SetTariff(TariffModel model) { if (!CommonMethods.GetTenant(model, out Tenant tenant)) { Log.Error("Model without tenant"); return(BadRequest(new { error = "portalNameEmpty", message = "PortalName is required" })); } if (tenant == null) { Log.Error("Tenant not found"); return(BadRequest(new { error = "portalNameNotFound", message = "Portal not found" })); } var quota = new TenantQuota(tenant.TenantId) { ActiveUsers = 10000, Features = model.Features ?? "", MaxFileSize = 1024 * 1024 * 1024, MaxTotalSize = 1024L * 1024 * 1024 * 1024 - 1, Name = "api", }; if (model.ActiveUsers != default) { quota.ActiveUsers = model.ActiveUsers; } if (model.MaxTotalSize != default) { quota.MaxTotalSize = model.MaxTotalSize; } if (model.MaxFileSize != default) { quota.MaxFileSize = model.MaxFileSize; } HostedSolution.SaveTenantQuota(quota); var tariff = new Tariff { QuotaId = quota.Id, DueDate = model.DueDate != default ? model.DueDate : DateTime.MaxValue, }; HostedSolution.SetTariff(tenant.TenantId, tariff); return(GetTariff(tenant)); }
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(); } }
private string GetShoppingUri(TenantQuota quota) { var uri = string.Empty; if (quota != null) { try { var link = CoreContext.PaymentManager.GetShoppingUri(quota.Id, true, null, CurrentRegion.ISOCurrencySymbol, Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName, CurrentOwnerId); if (link == null) { LogManager.GetLogger("ASC.Web.Billing").Info(string.Format("GetShoppingUri return null for tenant {0} and quota {1}", TenantProvider.CurrentTenantID, quota.Id)); } else { uri = link.ToString(); } } catch (Exception ex) { LogManager.GetLogger("ASC").Info(string.Format("GetShoppingUri: {0} tenant {1} quota {2} currency {3} Language {4}", ex.Message, TenantProvider.CurrentTenantID, quota.Id, CurrentRegion.ISOCurrencySymbol, Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName), ex); } } return(uri); }
private static void LicenseToDB(License license) { Validate(license); CustomerId = license.CustomerId; var defaultQuota = CoreContext.TenantManager.GetTenantQuota(Tenant.DEFAULT_TENANT); var quota = new TenantQuota(-1000) { ActiveUsers = license.ActiveUsers, MaxFileSize = defaultQuota.MaxFileSize, MaxTotalSize = defaultQuota.MaxTotalSize, Name = "license", DocsEdition = true, HasDomain = true, Audit = true, ControlPanel = true, HealthCheck = true, Ldap = true, Sso = true, Customization = license.Customization, WhiteLabel = license.WhiteLabel || license.Customization, Branding = license.Branding, SSBranding = license.SSBranding, Update = true, Support = true, Trial = license.Trial, CountPortals = license.PortalCount, DiscEncryption = true, PrivacyRoom = true, }; if (defaultQuota.Name != "overdue" && !defaultQuota.Trial) { quota.WhiteLabel |= defaultQuota.WhiteLabel; quota.Branding |= defaultQuota.Branding; quota.SSBranding |= defaultQuota.SSBranding; quota.CountPortals = Math.Max(defaultQuota.CountPortals, quota.CountPortals); } CoreContext.TenantManager.SaveTenantQuota(quota); var tariff = new Tariff { QuotaId = quota.Id, DueDate = license.DueDate, }; CoreContext.PaymentManager.SetTariff(-1, tariff); if (!string.IsNullOrEmpty(license.AffiliateId)) { var tenant = CoreContext.TenantManager.GetCurrentTenant(); tenant.AffiliateId = license.AffiliateId; CoreContext.TenantManager.SaveTenant(tenant); } }
public TenantQuota SaveTenantQuota(TenantQuota quota) { quota = service.SaveTenantQuota(quota); var store = GetTenantQuotasInernal(); store[quota.Id] = quota; return(quota); }
protected decimal GetSaleValue(decimal priceMonth, TenantQuota quota) { var price = GetPrice(quota); var period = quota.Year ? 12 : 36; return(priceMonth * period - price); }
public TenantQuota SaveTenantQuota(TenantQuota quota) { var q = Service.SaveTenantQuota(quota); CacheNotify.Publish(new QuotaCacheItem { Key = QuotaServiceCache.KEY_QUOTA }, CacheNotifyAction.Any); return(q); }
protected Tuple <string, string, string> GetBuyAttr(TenantQuota quota) { var cssList = new List <string>(); var getHref = true; var text = Resource.TariffButtonBuy; if (quota != null) { cssList.Add(CurrentTariff.State >= TariffState.NotPaid ? "red" : "blue"); if (quota.ActiveUsers < UsersCount || quota.MaxTotalSize < UsedSize) { cssList.Add("disable"); getHref = false; } else if (Equals(quota.Id, CurrentQuota.Id)) { text = Resource.TariffButtonExtend; if (!CurrentTariff.Prolongable) { cssList.Add("disable"); getHref = false; } else if (CurrentTariff.Autorenewal) { cssList.Add("disable"); getHref = false; text = Resource.TariffEnabledAutorenew + SetStar(Resource.TariffRemarkProlongEnable); } } else if (CurrentTariff.Prolongable) { text = Resource.TariffButtonBuy + SetStar(Resource.TariffRemarkProlongDisable); } if (!quota.Year3) { if (quota.Year && YearIsDisable || !quota.Year && MonthIsDisable) { cssList.Add("disable"); getHref = false; text = Resource.TariffButtonBuy; } } } else { cssList.Add("disable"); getHref = false; } var href = getHref ? GetShoppingUri(quota) : string.Empty; var cssClass = string.Join(" ", cssList.Distinct()); var result = new Tuple <string, string, string>(cssClass, href, text); return(result); }
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 TenantQuota SaveTenantQuota(TenantQuota quota) { var q = service.SaveTenantQuota(quota); cacheNotify.Publish(new QuotaCacheItem { Key = KEY_QUOTA }, CacheNotifyAction.Remove); return(q); }
protected string GetTypeLink(TenantQuota quota) { return(quota.ActiveUsers >= UsersCount && quota.MaxTotalSize >= UsedSize ? (CurrentQuota.Trial || Equals(quota.Id, CurrentQuota.Id)) ? "pay" : "change" : "limit"); }
private static void LicenseToDB(string licenseJsonString) { string customerId; DateTime dueDate; int activeUsers; int countPortals; var licenseJson = Validate(licenseJsonString, out customerId, out dueDate, out activeUsers, out countPortals); CustomerId = customerId; var defaultQuota = CoreContext.TenantManager.GetTenantQuota(Tenant.DEFAULT_TENANT); var quota = new TenantQuota(-1000) { ActiveUsers = activeUsers, MaxFileSize = defaultQuota.MaxFileSize, MaxTotalSize = defaultQuota.MaxTotalSize, Name = "license", HasDomain = true, Audit = true, ControlPanel = true, HealthCheck = true, Ldap = true, //Sso = true, WhiteLabel = true, Update = true, Support = true, Trial = licenseJson.Value <string>("trial") != null && licenseJson.Value <bool>("trial"), CountPortals = countPortals, }; CoreContext.TenantManager.SaveTenantQuota(quota); if (defaultQuota.CountPortals != countPortals) { defaultQuota.CountPortals = countPortals; CoreContext.TenantManager.SaveTenantQuota(defaultQuota); } var tariff = new Tariff { QuotaId = quota.Id, DueDate = dueDate, }; CoreContext.PaymentManager.SetTariff(-1, tariff); var affiliateId = licenseJson.Value <string>("affiliate_id"); if (!string.IsNullOrEmpty(affiliateId)) { var tenant = CoreContext.TenantManager.GetCurrentTenant(); tenant.AffiliateId = affiliateId; CoreContext.TenantManager.SaveTenant(tenant); } }
public bool ActivateTrial() { if (!CoreContext.Configuration.Standalone) { throw new NotSupportedException(); } if (!CoreContext.UserManager.GetUsers(SecurityContext.CurrentAccount.ID).IsAdmin()) { throw new SecurityException(); } var curQuota = TenantExtra.GetTenantQuota(); if (curQuota.Id != Tenant.DEFAULT_TENANT) { return(false); } if (curQuota.Trial) { return(false); } var curTariff = TenantExtra.GetCurrentTariff(); if (curTariff.DueDate.Date != DateTime.MaxValue.Date) { return(false); } var quota = new TenantQuota(-1000) { Name = "apirequest", ActiveUsers = curQuota.ActiveUsers, MaxFileSize = curQuota.MaxFileSize, MaxTotalSize = curQuota.MaxTotalSize, Features = curQuota.Features }; quota.Trial = true; CoreContext.TenantManager.SaveTenantQuota(quota); var DEFAULT_TRIAL_PERIOD = 30; var tariff = new Tariff { QuotaId = quota.Id, DueDate = DateTime.Today.AddDays(DEFAULT_TRIAL_PERIOD) }; CoreContext.PaymentManager.SetTariff(-1, tariff); MessageService.Send(HttpContext.Current.Request, MessageAction.LicenseKeyUploaded); return(true); }
public int GetPrevUsersCount(TenantQuota quota) { var prevQuota = GetPrevQuota(quota); if (prevQuota == null || prevQuota.Trial) { return(1); } return(prevQuota.ActiveUsers + 1); }
public TenantQuota SaveTenantQuota(TenantQuota quota) { if (!CoreContext.Configuration.Standalone) { throw new NotImplementedException(); } quota = quotaService.SaveTenantQuota(quota); return(quota); }
protected string GetTypeLink(TenantQuota quota) { return(quota.ActiveUsers >= UsersCount && quota.MaxTotalSize >= UsedSize ? (CurrentQuota.Trial || CoreContext.Configuration.Standalone && CurrentTariff.QuotaId.Equals(Tenant.DEFAULT_TENANT) || Equals(quota.Id, CurrentQuota.Id)) ? "pay" : "change" : "limit"); }
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 QuotaWrapper(TenantQuota quota, IList <TenantQuotaRow> quotaRows) { StorageSize = (ulong)Math.Max(0, quota.MaxTotalSize); MaxFileSize = (ulong)Math.Max(0, quota.MaxFileSize); UsedSize = (ulong)Math.Max(0, quotaRows.Sum(r => r.Counter)); StorageUsage = quotaRows.Select(x => new QuotaUsage() { Path = x.Path.TrimStart('/').TrimEnd('/'), Size = x.Counter, }). ToList(); }
private object ToTariffWrapper(Tariff t, TenantQuota q) { return(new { t.DueDate, t.State, q.MaxTotalSize, q.MaxFileSize, q.ActiveUsers, q.Features }); }
private static object ToTariffWrapper(Tariff t, TenantQuota q) { return(new { activeUsers = q.ActiveUsers, dueDate = t == null ? DateTime.MaxValue : t.DueDate, features = q.Features, maxFileSize = q.MaxFileSize, maxTotalSize = q.MaxTotalSize, state = t == null ? TariffState.Paid : t.State, }); }
private void CompareQuotas(TenantQuota q1, TenantQuota q2) { Assert.AreEqual(q1.Id, q2.Id); Assert.AreEqual(q1.Name, q2.Name); Assert.AreEqual(q1.Desc, q2.Desc); Assert.AreEqual(q1.MaxFileSize, q2.MaxFileSize); Assert.AreEqual(q1.MaxTotalSize, q2.MaxTotalSize); Assert.AreEqual(q1.ActiveUsers, q2.ActiveUsers); Assert.AreEqual(q1.Features, q2.Features); Assert.AreEqual(q1.Price, q2.Price); Assert.AreEqual(q1.AvangateId, q2.AvangateId); }
protected string GetPriceString(TenantQuota quota) { if (!string.IsNullOrEmpty(quota.AvangateId) && _priceInfo.ContainsKey(quota.AvangateId)) { var prices = _priceInfo[quota.AvangateId]; if (prices.ContainsKey(CurrentRegion.ISOCurrencySymbol)) { return(GetPriceString(prices[CurrentRegion.ISOCurrencySymbol], false)); } return(GetPriceString(quota.Price, false, RegionDefault.CurrencySymbol)); } return(GetPriceString(quota.Price)); }
protected decimal GetPrice(TenantQuota quota) { if (!string.IsNullOrEmpty(quota.AvangateId) && _priceInfo.ContainsKey(quota.AvangateId)) { var prices = _priceInfo[quota.AvangateId]; if (prices.ContainsKey(CurrentRegion.ISOCurrencySymbol)) { return(prices[CurrentRegion.ISOCurrencySymbol]); } return(quota.Price); } return(quota.Price); }