Billing: fixed upload license
This commit is contained in:
parent
12a74a1247
commit
3bb1ca7969
@ -37,7 +37,7 @@ public interface ITariffService
|
||||
Uri GetShoppingUri(string[] productIds, string affiliateId = null, string currency = null, string language = null, string customerId = null, string quantity = null);
|
||||
void ClearCache(int tenantId);
|
||||
void DeleteDefaultBillingInfo();
|
||||
void SetTariff(int tenantId, Tariff tariff);
|
||||
void SetTariff(int tenantId, Tariff tariff, List<TenantQuota> quotas = null);
|
||||
Uri GetAccountLink(int tenant, string backUrl);
|
||||
Task<bool> PaymentChange(int tenant, Dictionary<string, int> quantity);
|
||||
int GetPaymentDelay();
|
||||
|
@ -216,7 +216,7 @@ public class LicenseReader
|
||||
DueDate = license.DueDate,
|
||||
};
|
||||
|
||||
_tariffService.SetTariff(-1, tariff);
|
||||
_tariffService.SetTariff(-1, tariff, new List<TenantQuota> { quota });
|
||||
}
|
||||
|
||||
private void LogError(Exception error)
|
||||
|
@ -343,13 +343,12 @@ public class TariffService : ITariffService
|
||||
}
|
||||
|
||||
|
||||
public void SetTariff(int tenantId, Tariff tariff)
|
||||
public void SetTariff(int tenantId, Tariff tariff, List<TenantQuota> quotas = null)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(tariff);
|
||||
|
||||
List<TenantQuota> quotas = null;
|
||||
if (tariff.Quotas == null ||
|
||||
(quotas = tariff.Quotas.Select(q => _quotaService.GetTenantQuota(q.Id)).ToList()).Any(q => q == null))
|
||||
(quotas ??= tariff.Quotas.Select(q => _quotaService.GetTenantQuota(q.Id)).ToList()).Any(q => q == null))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@ -719,62 +718,62 @@ public class TariffService : ITariffService
|
||||
if (!tariffInfo.EqualsByParams(currentTariff))
|
||||
{
|
||||
try
|
||||
{
|
||||
using var dbContext = _dbContextFactory.CreateDbContext();
|
||||
var strategy = dbContext.Database.CreateExecutionStrategy();
|
||||
|
||||
strategy.Execute(() =>
|
||||
{
|
||||
using var dbContext = _dbContextFactory.CreateDbContext();
|
||||
var strategy = dbContext.Database.CreateExecutionStrategy();
|
||||
using var tx = dbContext.Database.BeginTransaction();
|
||||
|
||||
strategy.Execute(() =>
|
||||
var stamp = tariffInfo.DueDate;
|
||||
if (stamp.Equals(DateTime.MaxValue))
|
||||
{
|
||||
using var dbContext = _dbContextFactory.CreateDbContext();
|
||||
using var tx = dbContext.Database.BeginTransaction();
|
||||
stamp = stamp.Date.Add(new TimeSpan(tariffInfo.DueDate.Hour, tariffInfo.DueDate.Minute, tariffInfo.DueDate.Second));
|
||||
}
|
||||
|
||||
var stamp = tariffInfo.DueDate;
|
||||
if (stamp.Equals(DateTime.MaxValue))
|
||||
var efTariff = new DbTariff
|
||||
{
|
||||
Id = tariffInfo.Id,
|
||||
Tenant = tenant,
|
||||
Stamp = stamp,
|
||||
CustomerId = tariffInfo.CustomerId,
|
||||
CreateOn = DateTime.UtcNow
|
||||
};
|
||||
|
||||
if (efTariff.Id == default)
|
||||
{
|
||||
efTariff.Id = (-tenant);
|
||||
tariffInfo.Id = efTariff.Id;
|
||||
}
|
||||
|
||||
if (efTariff.CustomerId == default)
|
||||
{
|
||||
efTariff.CustomerId = "";
|
||||
}
|
||||
|
||||
efTariff = dbContext.AddOrUpdate(dbContext.Tariffs, efTariff);
|
||||
dbContext.SaveChanges();
|
||||
|
||||
foreach (var q in tariffInfo.Quotas)
|
||||
{
|
||||
dbContext.AddOrUpdate(dbContext.TariffRows, new DbTariffRow
|
||||
{
|
||||
stamp = stamp.Date.Add(new TimeSpan(tariffInfo.DueDate.Hour, tariffInfo.DueDate.Minute, tariffInfo.DueDate.Second));
|
||||
}
|
||||
TariffId = efTariff.Id,
|
||||
Quota = q.Id,
|
||||
Quantity = q.Quantity,
|
||||
Tenant = tenant
|
||||
});
|
||||
}
|
||||
|
||||
var efTariff = new DbTariff
|
||||
{
|
||||
Id = tariffInfo.Id,
|
||||
Tenant = tenant,
|
||||
Stamp = stamp,
|
||||
CustomerId = tariffInfo.CustomerId,
|
||||
CreateOn = DateTime.UtcNow
|
||||
};
|
||||
dbContext.SaveChanges();
|
||||
|
||||
if (efTariff.Id == default)
|
||||
{
|
||||
efTariff.Id = (-tenant);
|
||||
tariffInfo.Id = efTariff.Id;
|
||||
}
|
||||
inserted = true;
|
||||
|
||||
if (efTariff.CustomerId == default)
|
||||
{
|
||||
efTariff.CustomerId = "";
|
||||
}
|
||||
|
||||
efTariff = dbContext.AddOrUpdate(dbContext.Tariffs, efTariff);
|
||||
dbContext.SaveChanges();
|
||||
|
||||
foreach (var q in tariffInfo.Quotas)
|
||||
{
|
||||
dbContext.AddOrUpdate(dbContext.TariffRows, new DbTariffRow
|
||||
{
|
||||
TariffId = efTariff.Id,
|
||||
Quota = q.Id,
|
||||
Quantity = q.Quantity,
|
||||
Tenant = tenant
|
||||
});
|
||||
}
|
||||
|
||||
dbContext.SaveChanges();
|
||||
|
||||
inserted = true;
|
||||
|
||||
tx.Commit();
|
||||
});
|
||||
}
|
||||
tx.Commit();
|
||||
});
|
||||
}
|
||||
catch (DbUpdateException)
|
||||
{
|
||||
|
||||
|
@ -398,7 +398,14 @@ public class TenantQuota : IMapFrom<DbQuota>
|
||||
|
||||
if (!EqualityComparer<T>.Default.Equals(value, default))
|
||||
{
|
||||
_featuresList.Add($"{name}:{value}");
|
||||
if (value is bool)
|
||||
{
|
||||
_featuresList.Add($"{name}");
|
||||
}
|
||||
else
|
||||
{
|
||||
_featuresList.Add($"{name}:{value}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -172,7 +172,7 @@ public class LicenseController : BaseSettingsController
|
||||
DueDate = DateTime.Today.AddDays(DEFAULT_TRIAL_PERIOD)
|
||||
};
|
||||
|
||||
_tariffService.SetTariff(-1, tariff);
|
||||
_tariffService.SetTariff(-1, tariff, new List<TenantQuota>() { quota });
|
||||
|
||||
_messageService.Send(MessageAction.LicenseKeyUploaded);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user