Browse Source

Merge branch 'release/4.x' of github.com:Squidex/squidex

pull/593/head
Sebastian 5 years ago
parent
commit
4c1dcfd282
  1. 4
      backend/src/Squidex.Domain.Apps.Entities/Apps/AppDomainObject.cs
  2. 4
      backend/src/Squidex.Domain.Apps.Entities/Apps/Guards/GuardAppContributors.cs
  3. 2
      backend/src/Squidex.Domain.Apps.Entities/Apps/Plans/ConfigAppLimitsPlan.cs
  4. 7
      backend/src/Squidex.Domain.Apps.Entities/Apps/Plans/ConfigAppPlansProvider.cs
  5. 6
      backend/tests/Squidex.Domain.Apps.Entities.Tests/Apps/Plans/ConfigAppLimitsProviderTests.cs

4
backend/src/Squidex.Domain.Apps.Entities/Apps/AppDomainObject.cs

@ -318,9 +318,9 @@ namespace Squidex.Domain.Apps.Entities.Apps
}
}
private IAppLimitsPlan? GetPlan()
private IAppLimitsPlan GetPlan()
{
return appPlansProvider.GetPlan(Snapshot.Plan?.PlanId);
return appPlansProvider.GetPlanForApp(Snapshot).Plan;
}
public void Create(CreateApp command)

4
backend/src/Squidex.Domain.Apps.Entities/Apps/Guards/GuardAppContributors.cs

@ -20,7 +20,7 @@ namespace Squidex.Domain.Apps.Entities.Apps.Guards
{
public static class GuardAppContributors
{
public static Task CanAssign(AppContributors contributors, Roles roles, AssignContributor command, IUserResolver users, IAppLimitsPlan? plan)
public static Task CanAssign(AppContributors contributors, Roles roles, AssignContributor command, IUserResolver users, IAppLimitsPlan plan)
{
Guard.NotNull(command, nameof(command));
@ -53,7 +53,7 @@ namespace Squidex.Domain.Apps.Entities.Apps.Guards
if (!contributors.TryGetValue(command.ContributorId, out _))
{
if (plan != null && plan.MaxContributors > 0 && contributors.Count >= plan.MaxContributors)
if (plan.MaxContributors > 0 && contributors.Count >= plan.MaxContributors)
{
e(T.Get("apps.contributors.maxReached"));
}

2
backend/src/Squidex.Domain.Apps.Entities/Apps/Plans/ConfigAppLimitsPlan.cs

@ -33,6 +33,8 @@ namespace Squidex.Domain.Apps.Entities.Apps.Plans
public int MaxContributors { get; set; }
public bool IsFree { get; set; }
public ConfigAppLimitsPlan Clone()
{
return (ConfigAppLimitsPlan)MemberwiseClone();

7
backend/src/Squidex.Domain.Apps.Entities/Apps/Plans/ConfigAppPlansProvider.cs

@ -26,6 +26,7 @@ namespace Squidex.Domain.Apps.Entities.Apps.Plans
private readonly Dictionary<string, ConfigAppLimitsPlan> plansById = new Dictionary<string, ConfigAppLimitsPlan>(StringComparer.OrdinalIgnoreCase);
private readonly List<ConfigAppLimitsPlan> plansList = new List<ConfigAppLimitsPlan>();
private readonly ConfigAppLimitsPlan freePlan;
public ConfigAppPlansProvider(IEnumerable<ConfigAppLimitsPlan> config)
{
@ -41,6 +42,8 @@ namespace Squidex.Domain.Apps.Entities.Apps.Plans
plansById[plan.YearlyId] = plan;
}
}
freePlan = plansList.FirstOrDefault(x => x.IsFree) ?? Infinite;
}
public IEnumerable<IAppLimitsPlan> GetAvailablePlans()
@ -60,7 +63,7 @@ namespace Squidex.Domain.Apps.Entities.Apps.Plans
public IAppLimitsPlan GetFreePlan()
{
return GetPlanCore(plansList.FirstOrDefault(x => string.IsNullOrWhiteSpace(x.Costs))?.Id);
return freePlan;
}
public IAppLimitsPlan? GetPlanUpgradeForApp(IAppEntity app)
@ -103,7 +106,7 @@ namespace Squidex.Domain.Apps.Entities.Apps.Plans
private ConfigAppLimitsPlan GetPlanCore(string? planId)
{
return plansById.GetOrDefault(planId ?? string.Empty) ?? plansById.Values.FirstOrDefault() ?? Infinite;
return plansById.GetOrDefault(planId ?? string.Empty) ?? freePlan;
}
}
}

6
backend/tests/Squidex.Domain.Apps.Entities.Tests/Apps/Plans/ConfigAppLimitsProviderTests.cs

@ -33,7 +33,8 @@ namespace Squidex.Domain.Apps.Entities.Apps.Plans
MaxApiCalls = 50000,
MaxAssetSize = 1024 * 1024 * 10,
MaxContributors = 2,
BlockingApiCalls = 50000
BlockingApiCalls = 50000,
IsFree = true
};
private static readonly ConfigAppLimitsPlan BasicPlan = new ConfigAppLimitsPlan
@ -45,7 +46,8 @@ namespace Squidex.Domain.Apps.Entities.Apps.Plans
MaxContributors = 5,
YearlyCosts = "100€",
YearlyId = "basic_yearly",
BlockingApiCalls = 150000
BlockingApiCalls = 150000,
IsFree = false
};
private static readonly ConfigAppLimitsPlan[] Plans = { BasicPlan, FreePlan };

Loading…
Cancel
Save