CoreCommon: ActiveUsers as feature value
This commit is contained in:
parent
74460213a8
commit
891f9bf0f1
@ -32,7 +32,6 @@ public class DbQuota : BaseEntity, IMapFrom<TenantQuota>
|
||||
public string Name { get; set; }
|
||||
public string Description { get; set; }
|
||||
public long MaxFileSize { get; set; }
|
||||
public int ActiveUsers { get; set; }
|
||||
public string Features { get; set; }
|
||||
public decimal Price { get; set; }
|
||||
public string ProductId { get; set; }
|
||||
@ -63,8 +62,7 @@ public static class DbQuotaExtension
|
||||
Name = "default",
|
||||
Description = null,
|
||||
MaxFileSize = 102400,
|
||||
ActiveUsers = 10000,
|
||||
Features = "domain,audit,ldap,sso,whitelabel,update,support,restore,total_size:10995116277760",
|
||||
Features = "domain,audit,ldap,sso,whitelabel,update,support,restore,total_size:10995116277760,users:10000",
|
||||
Price = decimal.Parse("0,00"),
|
||||
ProductId = "0",
|
||||
Visible = false
|
||||
@ -87,10 +85,6 @@ public static class DbQuotaExtension
|
||||
.HasColumnName("tenant")
|
||||
.ValueGeneratedNever();
|
||||
|
||||
entity.Property(e => e.ActiveUsers)
|
||||
.HasColumnName("active_users")
|
||||
.HasDefaultValueSql("'0'");
|
||||
|
||||
entity.Property(e => e.ProductId)
|
||||
.HasColumnName("product_id")
|
||||
.HasColumnType("varchar(128)")
|
||||
@ -141,8 +135,6 @@ public static class DbQuotaExtension
|
||||
.HasColumnName("tenant")
|
||||
.ValueGeneratedNever();
|
||||
|
||||
entity.Property(e => e.ActiveUsers).HasColumnName("active_users");
|
||||
|
||||
entity.Property(e => e.ProductId)
|
||||
.HasColumnName("product_id")
|
||||
.HasMaxLength(128)
|
||||
|
@ -68,7 +68,34 @@ public class TenantQuota : ICloneable, IMapFrom<DbQuota>
|
||||
}
|
||||
}
|
||||
|
||||
public int ActiveUsers { get; set; }
|
||||
public int ActiveUsers
|
||||
{
|
||||
get
|
||||
{
|
||||
var features = (Features ?? string.Empty).Split(' ', ',', ';').ToList();
|
||||
var users = features.FirstOrDefault(f => f.StartsWith("users:"));
|
||||
int activeUsers;
|
||||
if (users == null || !int.TryParse(users.Replace("users:", ""), out activeUsers))
|
||||
{
|
||||
activeUsers = 0;
|
||||
}
|
||||
|
||||
return activeUsers;
|
||||
}
|
||||
set
|
||||
{
|
||||
var features = (Features ?? string.Empty).Split(' ', ',', ';').ToList();
|
||||
var activeUsers = features.FirstOrDefault(f => f.StartsWith("users:"));
|
||||
features.Remove(activeUsers);
|
||||
if (value > 0)
|
||||
{
|
||||
features.Add("users:" + value);
|
||||
}
|
||||
|
||||
Features = string.Join(",", features.ToArray());
|
||||
}
|
||||
}
|
||||
|
||||
public string Features { get; set; }
|
||||
public decimal Price { get; set; }
|
||||
public string ProductId { get; set; }
|
||||
@ -287,8 +314,6 @@ public class TenantQuota : ICloneable, IMapFrom<DbQuota>
|
||||
public void Mapping(Profile profile)
|
||||
{
|
||||
profile.CreateMap<DbQuota, TenantQuota>()
|
||||
.ForMember(dest => dest.ActiveUsers, opt =>
|
||||
opt.MapFrom(src => src.ActiveUsers != 0 ? src.ActiveUsers : int.MaxValue))
|
||||
.ForMember(dest => dest.MaxFileSize, opt => opt.MapFrom(src => ByteConverter.GetInBytes(src.MaxFileSize)));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user