using System; using System.Globalization; using Erp.Platform; using Volo.Abp.DependencyInjection; using Volo.Abp.MultiTenancy; using Volo.Abp.Timing; using Volo.Abp.Users; public class DefaultValueHelper : ITransientDependency { private readonly ICurrentUser _currentUser; private readonly ICurrentTenant _currentTenant; private readonly IClock _clock; public DefaultValueHelper( ICurrentUser currentUser, ICurrentTenant currentTenant, IClock clock ) { _currentUser = currentUser; _currentTenant = currentTenant; _clock = clock; } public string GetDefaultValue(string strValue) { if (string.IsNullOrEmpty(strValue)) return strValue; var now = _clock.Now; var result = strValue .Replace(PlatformConsts.DefaultValues.UserId, _currentUser.Id?.ToString() ?? Guid.Empty.ToString()) .Replace(PlatformConsts.DefaultValues.UserName, _currentUser.UserName ?? string.Empty) .Replace(PlatformConsts.DefaultValues.Roles, string.Join("','", _currentUser.Roles ?? [])) .Replace(PlatformConsts.DefaultValues.Now, now.ToString("O", CultureInfo.InvariantCulture)) .Replace(PlatformConsts.DefaultValues.Day, now.Day.ToString(CultureInfo.InvariantCulture)) .Replace(PlatformConsts.DefaultValues.Month, now.Month.ToString(CultureInfo.InvariantCulture)) .Replace(PlatformConsts.DefaultValues.Year, now.Year.ToString(CultureInfo.InvariantCulture)); // 🔹 TenantId özel durumu: NULL => IS NULL, varsa => = 'GUID' if (_currentTenant?.Id.HasValue == true) { result = result.Replace( $"= '{PlatformConsts.DefaultValues.TenantId}'", $"= '{_currentTenant.Id}'" ).Replace( PlatformConsts.DefaultValues.TenantId, _currentTenant.Id.ToString() ); } else { result = result.Replace( $"= '{PlatformConsts.DefaultValues.TenantId}'", "IS NULL" ).Replace( PlatformConsts.DefaultValues.TenantId, "NULL" ); } return result; } }