Aumentar número hasta que se cumpla la condición.
Tengo la creación de inquilino
Aquí está el código
var tenant = new Tenant(tenancyName, name)
{
IsActive = isActive,
EditionId = editionId,
SubscriptionEndDateUtc = subscriptionEndDate?.ToUniversalTime(),
IsInTrialPeriod = isInTrialPeriod,
ConnectionString = connectionString.IsNullOrWhiteSpace()
? null
: SimpleStringCipher.Instance.Encrypt(connectionString)
};
await CreateAsync(tenant);
await _unitOfWorkManager.Current.SaveChangesAsync(); // Para obtener el id del nuevo inquilino.
tenancyName
puede estar duplicado
Entonces, para verificarlo, uso esta condición
if (await TenantRepository.FirstOrDefaultAsync(t => t.TenancyName == tenant.TenancyName) != null)
{
}
Necesito agregar un contador para que sea único.
Por ejemplo, si EugeneTenant
está duplicado, necesito agregarle 2, para que sea EugeneTenant2
,
si EugeneTenant2
está duplicado, agregarle 3, así que sería EugeneTenant3
Por lo tanto, se incrementará automáticamente a partir de 2 hasta que se cumpla la condición.
Agregué este código
int startNumber = 2;
do
{
tenant.TenancyName = $"{tenant.TenancyName}{startNumber}";
tenant.Name = $"{tenant.TenancyName}{startNumber}";
startNumber++;
}
while (await TenantRepository.FirstOrDefaultAsync(t => t.TenancyName == tenant.TenancyName) != null);
Pero, por ejemplo, si tengo EugeneTenancy2
, el siguiente que tengo esEugeneTenancy23
¿Cómo puedo hacer esto?
davy.ai
Para evitar el problema de agregar un número al final de
TenancyName
sin considerar la posición del dígito, puedes modificar el código de la siguiente manera:En este código modificado, se guarda el
tenancyName
base en una variable separada llamadabaseTenancyName
. Luego, se utiliza una variablecount
para realizar un seguimiento del número que se añadirá atenancyName
.Dentro del bucle while, se construye un nuevo
tenancyName
agregando elcount
abaseTenancyName
. También se actualiza la variablename
para que coincida con el nuevotenancyName
. Después de eso, se incrementa elcount
.De esta manera, te aseguras de que el número añadido solo aparezca en la última posición de
tenancyName
. Por ejemplo, si tienesEugeneTenancy2
y el siguiente esEugeneTenancy23
, el código modificado generaráEugeneTenancy3
en su lugar.