added DbTenantPartner
This commit is contained in:
parent
c0f3860ee9
commit
d7897fa890
@ -39,6 +39,7 @@ public class TenantRegistrationInfo
|
||||
public string PasswordHash { get; set; }
|
||||
public EmployeeActivationStatus ActivationStatus { get; set; }
|
||||
public string HostedRegion { get; set; }
|
||||
public string PartnerId { get; set; }
|
||||
public string AffiliateId { get; set; }
|
||||
public TenantIndustry Industry { get; set; }
|
||||
public bool Spam { get; set; }
|
||||
|
@ -220,9 +220,9 @@ public class DbTenantService : ITenantService
|
||||
var dbTenant = _mapper.Map<Tenant, DbTenant>(tenant);
|
||||
dbTenant.Id = 0;
|
||||
dbTenant = tenantDbContext.Tenants.Add(dbTenant).Entity;
|
||||
|
||||
|
||||
await tenantDbContext.SaveChangesAsync();
|
||||
|
||||
|
||||
tenant.Id = dbTenant.Id;
|
||||
}
|
||||
else
|
||||
@ -256,6 +256,30 @@ public class DbTenantService : ITenantService
|
||||
await tenantDbContext.SaveChangesAsync();
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(tenant.PartnerId) && string.IsNullOrEmpty(tenant.AffiliateId) && string.IsNullOrEmpty(tenant.Campaign))
|
||||
{
|
||||
var p = tenantDbContext.TenantPartner
|
||||
.Where(r => r.TenantId == tenant.Id)
|
||||
.FirstOrDefault();
|
||||
|
||||
if (p != null)
|
||||
{
|
||||
tenantDbContext.TenantPartner.Remove(p);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var tenantPartner = new DbTenantPartner
|
||||
{
|
||||
TenantId = tenant.Id,
|
||||
PartnerId = tenant.PartnerId,
|
||||
AffiliateId = tenant.AffiliateId,
|
||||
Campaign = tenant.Campaign
|
||||
};
|
||||
|
||||
tenantDbContext.TenantPartner.Add(tenantPartner);
|
||||
}
|
||||
|
||||
await tx.CommitAsync();
|
||||
}).GetAwaiter()
|
||||
.GetResult();
|
||||
@ -299,7 +323,7 @@ public class DbTenantService : ITenantService
|
||||
|
||||
await tx.CommitAsync();
|
||||
}).GetAwaiter()
|
||||
.GetResult();
|
||||
.GetResult();
|
||||
}
|
||||
|
||||
public IEnumerable<TenantVersion> GetTenantVersions()
|
||||
@ -358,7 +382,7 @@ public class DbTenantService : ITenantService
|
||||
}
|
||||
|
||||
await tenantDbContext.SaveChangesAsync();
|
||||
|
||||
|
||||
await tx.CommitAsync();
|
||||
}).GetAwaiter()
|
||||
.GetResult();
|
||||
|
@ -30,6 +30,7 @@ public class TenantDbContext : DbContext
|
||||
{
|
||||
public DbSet<DbTenant> Tenants { get; set; }
|
||||
public DbSet<DbTenantVersion> TenantVersion { get; set; }
|
||||
public DbSet<DbTenantPartner> TenantPartner { get; set; }
|
||||
public DbSet<DbTenantForbiden> TenantForbiden { get; set; }
|
||||
public DbSet<TenantIpRestrictions> TenantIpRestrictions { get; set; }
|
||||
public DbSet<DbCoreSettings> CoreSettings { get; set; }
|
||||
@ -44,6 +45,7 @@ public class TenantDbContext : DbContext
|
||||
.AddCoreSettings()
|
||||
.AddDbTenantForbiden()
|
||||
.AddTenantIpRestrictions()
|
||||
.AddDbTenantPartner()
|
||||
.AddDbTenantVersion();
|
||||
}
|
||||
}
|
||||
|
@ -60,7 +60,7 @@ public class DbTenant : IMapFrom<Tenant>
|
||||
public bool Spam { get; set; }
|
||||
public bool Calls { get; set; }
|
||||
|
||||
// public DbTenantPartner Partner { get; set; }
|
||||
public DbTenantPartner Partner { get; set; }
|
||||
|
||||
public void Mapping(Profile profile)
|
||||
{
|
||||
@ -70,8 +70,15 @@ public class DbTenant : IMapFrom<Tenant>
|
||||
.ForMember(dest => dest.Alias, opt => opt.MapFrom(dest => dest.Alias.ToLowerInvariant()))
|
||||
.ForMember(dest => dest.LastModified, opt => opt.MapFrom(dest => DateTime.UtcNow))
|
||||
.ForMember(dest => dest.Name, opt => opt.MapFrom(dest => dest.Name ?? ""))
|
||||
.ForMember(dest => dest.MappedDomain, opt => opt.MapFrom(dest =>
|
||||
!string.IsNullOrEmpty(dest.MappedDomain) ? dest.MappedDomain.ToLowerInvariant() : null));
|
||||
.ForMember(dest => dest.Name, opt => opt.MapFrom(dest => dest.Name ?? ""))
|
||||
.ForMember(dest => dest.Partner, opt => opt.MapFrom(dest => new DbTenantPartner
|
||||
{
|
||||
TenantId = dest.Id,
|
||||
AffiliateId = dest.AffiliateId,
|
||||
PartnerId = dest.PartnerId,
|
||||
Campaign = dest.Campaign,
|
||||
}))
|
||||
.ForMember(dest => dest.MappedDomain, opt => opt.MapFrom(dest => !string.IsNullOrEmpty(dest.MappedDomain) ? dest.MappedDomain.ToLowerInvariant() : null));
|
||||
}
|
||||
}
|
||||
|
||||
@ -99,10 +106,10 @@ public static class DbTenantExtension
|
||||
|
||||
public static void MySqlAddDbTenant(this ModelBuilder modelBuilder)
|
||||
{
|
||||
//modelBuilder.Entity<DbTenant>()
|
||||
// .HasOne(r => r.Partner)
|
||||
// .WithOne(r => r.Tenant)
|
||||
// .HasPrincipalKey<DbTenant>(r => new { r.Id });
|
||||
modelBuilder.Entity<DbTenant>()
|
||||
.HasOne(r => r.Partner)
|
||||
.WithOne(r => r.Tenant)
|
||||
.HasPrincipalKey<DbTenant>(r => new { r.Id });
|
||||
|
||||
modelBuilder.Entity<DbTenant>(entity =>
|
||||
{
|
||||
|
113
common/ASC.Core.Common/EF/Model/Tenant/DbTenantPartner.cs
Normal file
113
common/ASC.Core.Common/EF/Model/Tenant/DbTenantPartner.cs
Normal file
@ -0,0 +1,113 @@
|
||||
// (c) Copyright Ascensio System SIA 2010-2022
|
||||
//
|
||||
// This program is a free software product.
|
||||
// You can redistribute it and/or modify it under the terms
|
||||
// of the GNU Affero General Public License (AGPL) version 3 as published by the Free Software
|
||||
// Foundation. In accordance with Section 7(a) of the GNU AGPL its Section 15 shall be amended
|
||||
// to the effect that Ascensio System SIA expressly excludes the warranty of non-infringement of
|
||||
// any third-party rights.
|
||||
//
|
||||
// This program is distributed WITHOUT ANY WARRANTY, without even the implied warranty
|
||||
// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For details, see
|
||||
// the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
//
|
||||
// You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, EU, LV-1021.
|
||||
//
|
||||
// The interactive user interfaces in modified source and object code versions of the Program must
|
||||
// display Appropriate Legal Notices, as required under Section 5 of the GNU AGPL version 3.
|
||||
//
|
||||
// Pursuant to Section 7(b) of the License you must retain the original Product logo when
|
||||
// distributing the program. Pursuant to Section 7(e) we decline to grant you any rights under
|
||||
// trademark law for use of our trademarks.
|
||||
//
|
||||
// All the Product's GUI elements, including illustrations and icon sets, as well as technical writing
|
||||
// content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0
|
||||
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
|
||||
namespace ASC.Core.Common.EF.Model;
|
||||
|
||||
public class DbTenantPartner
|
||||
{
|
||||
public int TenantId { get; set; }
|
||||
public string PartnerId { get; set; }
|
||||
public string AffiliateId { get; set; }
|
||||
public string Campaign { get; set; }
|
||||
|
||||
public DbTenant Tenant { get; set; }
|
||||
}
|
||||
|
||||
public static class DbTenantPartnerExtension
|
||||
{
|
||||
public static ModelBuilderWrapper AddDbTenantPartner(this ModelBuilderWrapper modelBuilder)
|
||||
{
|
||||
modelBuilder
|
||||
.Add(MySqlAddDbTenantPartner, Provider.MySql)
|
||||
.Add(PgSqlAddDbTenantPartner, Provider.PostgreSql);
|
||||
|
||||
return modelBuilder;
|
||||
}
|
||||
|
||||
public static void MySqlAddDbTenantPartner(this ModelBuilder modelBuilder)
|
||||
{
|
||||
modelBuilder.Entity<DbTenantPartner>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.TenantId)
|
||||
.HasName("PRIMARY");
|
||||
|
||||
entity.ToTable("tenants_partners")
|
||||
.HasCharSet("utf8");
|
||||
|
||||
entity.Property(e => e.TenantId)
|
||||
.HasColumnName("tenant_id")
|
||||
.ValueGeneratedNever();
|
||||
|
||||
entity.Property(e => e.AffiliateId)
|
||||
.HasColumnName("affiliate_id")
|
||||
.HasColumnType("varchar(50)")
|
||||
.HasCharSet("utf8")
|
||||
.UseCollation("utf8_general_ci");
|
||||
|
||||
entity.Property(e => e.Campaign)
|
||||
.HasColumnName("campaign")
|
||||
.HasColumnType("varchar(50)")
|
||||
.HasCharSet("utf8")
|
||||
.UseCollation("utf8_general_ci");
|
||||
|
||||
entity.Property(e => e.PartnerId)
|
||||
.HasColumnName("partner_id")
|
||||
.HasColumnType("varchar(36)")
|
||||
.HasCharSet("utf8")
|
||||
.UseCollation("utf8_general_ci");
|
||||
});
|
||||
|
||||
}
|
||||
public static void PgSqlAddDbTenantPartner(this ModelBuilder modelBuilder)
|
||||
{
|
||||
modelBuilder.Entity<DbTenantPartner>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.TenantId)
|
||||
.HasName("tenants_partners_pkey");
|
||||
|
||||
entity.ToTable("tenants_partners", "onlyoffice");
|
||||
|
||||
entity.Property(e => e.TenantId)
|
||||
.HasColumnName("tenant_id")
|
||||
.ValueGeneratedNever();
|
||||
|
||||
entity.Property(e => e.AffiliateId)
|
||||
.HasColumnName("affiliate_id")
|
||||
.HasMaxLength(50)
|
||||
.HasDefaultValueSql("NULL");
|
||||
|
||||
entity.Property(e => e.Campaign)
|
||||
.HasColumnName("campaign")
|
||||
.HasMaxLength(50)
|
||||
.HasDefaultValueSql("NULL");
|
||||
|
||||
entity.Property(e => e.PartnerId)
|
||||
.HasColumnName("partner_id")
|
||||
.HasMaxLength(36)
|
||||
.HasDefaultValueSql("NULL");
|
||||
});
|
||||
}
|
||||
}
|
@ -135,6 +135,7 @@ public class HostedSolution
|
||||
Language = registrationInfo.Culture.Name,
|
||||
TimeZone = registrationInfo.TimeZoneInfo.Id,
|
||||
HostedRegion = registrationInfo.HostedRegion,
|
||||
PartnerId = registrationInfo.PartnerId,
|
||||
AffiliateId = registrationInfo.AffiliateId,
|
||||
Campaign = registrationInfo.Campaign,
|
||||
Industry = registrationInfo.Industry,
|
||||
|
@ -74,6 +74,7 @@ public class Tenant : IMapFrom<DbTenant>
|
||||
public string MappedDomain { get; set; }
|
||||
public string Name { get; set; }
|
||||
public Guid OwnerId { get; set; }
|
||||
public string PartnerId { get; set; }
|
||||
public string PaymentId { get; set; }
|
||||
public bool Spam { get; set; }
|
||||
public TenantStatus Status { get; internal set; }
|
||||
|
Loading…
Reference in New Issue
Block a user