Activities of "cetin.sahin"

the url i shared is deleted from post. i am not sure you are deleted but if you do not get the url i can share again

I created a new project. when i try to add new entity i get same error again. i am sharing project with you but if you dont trust file you can create a new project . activate UseLazyLoadingProxies. generate entity from suite without update database and when start dbmigrator it shows error. By the way same error throws when starting the project too

Error Detail :

System.InvalidOperationException
  HResult=0x80131509
  Message=No backing field was found for property 'Tenant.ConnectionStrings'. Lazy-loaded navigations must have backing fields. Either name the backing field so that it is discovered by convention or configure the backing field to use.
  Source=Microsoft.EntityFrameworkCore
  StackTrace:
   at Microsoft.EntityFrameworkCore.Infrastructure.ModelValidator.<ValidateFieldMapping>g__Validate|24_0(ITypeBase typeBase)
   at Microsoft.EntityFrameworkCore.Infrastructure.ModelValidator.ValidateFieldMapping(IModel model, IDiagnosticsLogger`1 logger)
   at Microsoft.EntityFrameworkCore.Infrastructure.ModelValidator.Validate(IModel model, IDiagnosticsLogger`1 logger)
   at Microsoft.EntityFrameworkCore.Infrastructure.RelationalModelValidator.Validate(IModel model, IDiagnosticsLogger`1 logger)
   at Microsoft.EntityFrameworkCore.SqlServer.Infrastructure.Internal.SqlServerModelValidator.Validate(IModel model, IDiagnosticsLogger`1 logger)
   at Microsoft.EntityFrameworkCore.Infrastructure.ModelRuntimeInitializer.Initialize(IModel model, Boolean designTime, IDiagnosticsLogger`1 validationLogger)
   at Microsoft.EntityFrameworkCore.Infrastructure.ModelSource.CreateModel(DbContext context, ModelCreationDependencies modelCreationDependencies, Boolean designTime)
   at Microsoft.EntityFrameworkCore.Infrastructure.ModelSource.GetModel(DbContext context, ModelCreationDependencies modelCreationDependencies, Boolean designTime)
   at Microsoft.EntityFrameworkCore.Internal.DbContextServices.CreateModel(Boolean designTime)
   at Microsoft.EntityFrameworkCore.Internal.DbContextServices.get_Model()
   at Microsoft.EntityFrameworkCore.Infrastructure.EntityFrameworkServicesBuilder.&lt;&gt;c.&lt;TryAddCoreServices&gt;b__8_4(IServiceProvider p)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite factoryCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScopeCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScopeCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScopeCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.&lt;&gt;c__DisplayClass2_0.&lt;RealizeService&gt;b__0(ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(ServiceIdentifier serviceIdentifier, ServiceProviderEngineScope serviceProviderEngineScope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
   at Volo.Abp.EntityFrameworkCore.AbpDbContextOptionsExtension.&lt;&gt;c__DisplayClass0_0.&lt;ApplyServices&gt;b__1(IServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite factoryCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScopeCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScopeCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScopeCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScopeCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.&lt;&gt;c__DisplayClass2_0.&lt;RealizeService&gt;b__0(ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(ServiceIdentifier serviceIdentifier, ServiceProviderEngineScope serviceProviderEngineScope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
   at Microsoft.EntityFrameworkCore.DbContext.get_DbContextDependencies()
   at Microsoft.EntityFrameworkCore.DbContext.get_ContextServices()
   at Microsoft.EntityFrameworkCore.DbContext.get_InternalServiceProvider()
   at Microsoft.EntityFrameworkCore.DbContext.Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure&lt;System.IServiceProvider&gt;.get_Instance()
   at Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade.Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure&lt;System.IServiceProvider&gt;.get_Instance()
   at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.GetRelationalService[TService](IInfrastructure`1 databaseFacade)
   at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.MigrateAsync(DatabaseFacade databaseFacade, CancellationToken cancellationToken)
   at AbpSolution2.EntityFrameworkCore.EntityFrameworkCoreAbpSolution2DbSchemaMigrator.<MigrateAsync>d__2.MoveNext() in C:\Users\Yusuf\Documents\Projects\AbpSolution2\src\AbpSolution2.EntityFrameworkCore\EntityFrameworkCore\EntityFrameworkCoreAbpSolution2DbSchemaMigrator.cs:line 28
   at AbpSolution2.Data.AbpSolution2DbMigrationService.<MigrateDatabaseSchemaAsync>d__10.MoveNext() in C:\Users\Yusuf\Documents\Projects\AbpSolution2\src\AbpSolution2.Domain\Data\AbpSolution2DbMigrationService.cs:line 100
   at AbpSolution2.Data.AbpSolution2DbMigrationService.<MigrateAsync>d__9.MoveNext() in C:\Users\Yusuf\Documents\Projects\AbpSolution2\src\AbpSolution2.Domain\Data\AbpSolution2DbMigrationService.cs:line 53
   at AbpSolution2.DbMigrator.DbMigratorHostedService.<StartAsync>d__3.MoveNext() in C:\Users\Yusuf\Documents\Projects\AbpSolution2\src\AbpSolution2.DbMigrator\DbMigratorHostedService.cs:line 36
   at Microsoft.Extensions.Hosting.Internal.Host.<<StartAsync>b__14_1>d.MoveNext()
   at Microsoft.Extensions.Hosting.Internal.Host.<ForeachService>d__17`1.MoveNext()

What you're referring to is Eager Loading. In the XpoObject lifecycle I mentioned earlier, many methods have countless references. With the approach you're suggesting, I would have to make sure that all places calling my method include the necessary navigation properties which isn't really manageable in my scenario

No it does not. because some case i need to get 5th 6th degree navigation property.

We're writing a web version of an existing desktop project, and DevExpress XpoObject is used there. Because XpoObject's lifecycle events aren't available in EFCore, we created that infrastructure. However, because the infrastructure we created involves very complex operations, we want to access the entity's collection we need at that moment via dbset.

i tried even before AI says but it do not accept to exclude from builder. Also i cant change Tenant entity.it comes from dll

This error is not related to abp.io. We've determined that it's related to the token expiration date of the service we're calling. The solution in the link below was misleading. Thank you for your help. Sorry. We'd appreciate it if you could refund the ticket.

public async Task<HastaneAraCevap> HastaneAraAsync(HastaneAraIstek istek) 
{ 
    await EnsureTokenAsync(); 
    return await _client.HastaneAraAsync(istek);
}

private async Task EnsureTokenAsync()
{
    try
    {
        if (string.IsNullOrEmpty(_token))
        {
            var loginIstek = new LoginIstek { KullaniciAdi = _username, Sifre = _password };
            var loginSonuc = await _authClient.LoginAsync(loginIstek);
            _token = loginSonuc.Token;
            if (!_client.Endpoint.EndpointBehaviors.Any(b => b is AuthHeaderEndpointBehavior))
            {
                _client.Endpoint.EndpointBehaviors.Add(new AuthHeaderEndpointBehavior(_token));
            }
        }
    }
    catch (Exception ex)
    {
        string mesaj = ex.Message;
        throw;
    }

}

We don't use JWT tokens in the job, but it gives an error.


namespace EnzimWeb._Jobs
{
    public class EnzimOnlineVizitBransListesiWorker : HangfireBackgroundWorkerBase
    {

        private readonly IBackgroundJobManager _backgroundJobManager;

        private readonly IMedicanaCMSApiClientService _CMSclient;

        private readonly IRandevuServiceClient _randevuWS;
        private readonly Microsoft.Extensions.Configuration.IConfiguration _configuration;
        private readonly OnlineVizitBranslarManager _onlineVizitBranslarManager;
        protected IOnlineVizitBranslarRepository _onlineVizitBranslarRepository;
        protected ILanguageTextRepository _languageRepository;
        protected IOnlineVizitDoktorRepository _onlineVizitDoktorRepository;

        private int timeInterval = 30;
        private int controlRange = 30;
        public EnzimOnlineVizitBransListesiWorker(IBackgroundJobManager backgroundJobManager,
                                         IMedicanaCMSApiClientService CMSclient,
                                          IRandevuServiceClient randevuWS,
                                          Microsoft.Extensions.Configuration.IConfiguration configuration,
                                          OnlineVizitBranslarManager onlineVizitBranslarManager,
                                          IOnlineVizitBranslarRepository onlineVizitBranslarRepository,
                                          ILanguageTextRepository languageRepository,
                                          IOnlineVizitDoktorRepository onlineVizitDoktorRepository
                                          )
        {
            RecurringJobId = nameof(EnzimOnlineVizitBransListesiWorker);
            CronExpression = $"*/{timeInterval} * * * *";//Cron.Minutely nin dakika verilebileni obselete. yerine methodu da anlamadım


            _CMSclient = CMSclient;
            _randevuWS = randevuWS;

            _configuration = configuration;
            _onlineVizitBranslarManager = onlineVizitBranslarManager;
            _backgroundJobManager = backgroundJobManager;
            _onlineVizitBranslarRepository = onlineVizitBranslarRepository;
            _languageRepository = languageRepository;
            _onlineVizitDoktorRepository = onlineVizitDoktorRepository;


        }

        public override async Task DoWorkAsync(CancellationToken cancellationToken = default)
        {
            bool isDevelopment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == "Development";

            //bool isDevelopment = false;
            if (!isDevelopment)
            {

                ExceptionlessClient.Default
                .CreateLog("Info")
                .AddTags("startJob", "EnzimOnlineVizitBransListesiWorker")
                .Submit();

                try
                {
                    #region Enzimden branslar cekilerek kaydediliyor
                    HastaneAraIstek hastaneAraIstek = new HastaneAraIstek { WSRandevuTipi = WSRandevuTipi.OnlineGorusme };
                    var hastaneler = await _randevuWS.HastaneAraAsync(hastaneAraIstek);
                    foreach (var hastane in hastaneler.Hastaneler.Where(x => x.ID != 1000 && x.ID != 6 && x.ID != 99))
                    {
                        PozisyonAraIstek input = new PozisyonAraIstek
                        {
                            HastaneId = hastane.ID,
                            WSRandevuTipi = WSRandevuTipi.OnlineGorusme
                        };
                        var pozisyonlar = await _randevuWS.PozisyonAraAsync(input);
                        if (pozisyonlar != null && pozisyonlar.Pozisyonlar.Count() > 0)
                        {
                            foreach (var pozisyon in pozisyonlar.Pozisyonlar)
                            {

                                var DbBrans = await _onlineVizitBranslarRepository.GetListAsync(
                                x => x.EnzimPozisyonId == pozisyon.ID.ToString() &
                                x.EnzimHospitalId == hastane.ID.ToString()
                                );
                                if (DbBrans.Count == 0)
                                {
                                    var Sonuc = await _onlineVizitBranslarManager.CreateAsync(true, pozisyon.Adi, pozisyon.ID.ToString(), null, null, hastane.ID.ToString()
                                        , null, "Online." + Temizle(pozisyon.Adi) + "_" + hastane.ID.ToString() + "_" + pozisyon.ID.ToString());

                                    var text = (await _languageRepository.GetListAsync()).FirstOrDefault(l =>
                                      l.CultureName == "tr" && l.ResourceName == "EnzimWeb" &&
                                      l.Name == Sonuc.AbpLanguageKey);

                                    if (text == null)
                                    {

                                        await _languageRepository.InsertAsync(
                                      new LanguageText(Guid.NewGuid(), "EnzimWeb", "tr", Sonuc.AbpLanguageKey, Sonuc.BransAdi, null)
                                      );
                                    }
                                    else
                                    {

                                        text.Value = pozisyon.Adi;
                                        await _languageRepository.UpdateAsync(text);


                                    }

                                    //  await _languageRepository.InsertAsync(
                                    //new LanguageText(Guid.NewGuid(), "EnzimWeb", "tr", Sonuc.AbpLanguageKey, Sonuc.BransAdi, null)
                                    //);
                                }
                               
                            }
                        }


                        #region randevu serviste yoksa pasife cek
                        var DbBranslar = await _onlineVizitBranslarRepository.GetListAsync(x=> x.EnzimHospitalId == hastane.ID.ToString());
                        foreach (var dbBrans in DbBranslar)
                        {
                            if(!pozisyonlar.Pozisyonlar.Any(x=>x.ID == Convert.ToInt32(dbBrans.EnzimPozisyonId)))
                            {
                                var Update = await _onlineVizitBranslarRepository.GetAsync(dbBrans.Id);
                                Update.RandevuAlinabilirmi = false;
                                var Updatesonuc = await _onlineVizitBranslarRepository.UpdateAsync(Update);
                               
                                var DBdoktorlar = await _onlineVizitDoktorRepository.GetListAsync(
                                    x => x.EnzimHospitalId == hastane.ID.ToString() &&
                                    x.EnzimPozisyonId == dbBrans.EnzimPozisyonId.ToString()
                                    );
                                foreach (var DBdoktor in DBdoktorlar)
                                {
                                    DBdoktor.RandevuAlinabilirmi = false;
                                    var Updatedoktorsonuc = await _onlineVizitDoktorRepository.UpdateAsync(DBdoktor);
                                }
                            }
                            else
                            {
                                var Update = await _onlineVizitBranslarRepository.GetAsync(dbBrans.Id);
                                Update.RandevuAlinabilirmi = true;
                                var Updatesonuc = await _onlineVizitBranslarRepository.UpdateAsync(Update);
                            }
                        }
                        #endregion

                    }

#endregion

                    #region CMSten tüm branslar getirilecek ve enzimden gelenler ile eşleştirilerek db de update edilecek


                    await _CMSclient.AuthenticateAsync();
                    var hospitals = await _CMSclient.GetHospitalsAsync(1);
                    var langs = await _CMSclient.GetLanguagesAsync();
                    foreach (var hastane in hospitals)
                    {
                        foreach (var lang in langs.Where(x => x.Code != "tr"))
                        {
                            List<MedicalUnit> medicalUnit = await _CMSclient.GetMedicalUnitsByHospitalAsync(hastane.Id, lang.Id);
                            string langCode = lang.Code;
                            if (langCode == "de") langCode = "de-DE";
                            else if (langCode == "bosnah") langCode = "bs";

                            foreach (var unit in medicalUnit)
                            {

                                var DbBrans = await _onlineVizitBranslarRepository.GetListAsync(
                                x => x.EnzimPozisyonId == unit.enzimCode &
                                x.EnzimHospitalId == unit.HospitalEnzimCode
                                );
                                if (DbBrans != null && DbBrans.Count == 1)
                                {

                                    var text = (await _languageRepository.GetListAsync()).FirstOrDefault(l =>
                                      l.CultureName == langCode && l.ResourceName == "EnzimWeb" &&
                                      l.Name == DbBrans.First().AbpLanguageKey);

                                    if (text == null)
                                    {

                                        await _languageRepository.InsertAsync(
                                          new LanguageText(Guid.NewGuid(), "EnzimWeb", langCode, DbBrans.First().AbpLanguageKey, unit.MedicalUnitName, null)
                                          );

                                    }
                                    else
                                    {

                                        text.Value = unit.MedicalUnitName;
                                        await _languageRepository.UpdateAsync(text);


                                    }


                                    var updateSonuc = await _onlineVizitBranslarManager.UpdateAsync(DbBrans.First().Id, DbBrans.First().RandevuAlinabilirmi, DbBrans.First().BransAdi, DbBrans.First().EnzimPozisyonId
                                        , unit.MedicalUnitID.ToString(), hastane.Id.ToString(), DbBrans.First().EnzimHospitalId, "https://www.medicana.com.tr/tibbi-birimler/" + unit.MedicalUnitURL
                                        , DbBrans.First().AbpLanguageKey);
                                }



                            }
                        }
                    }


                    #endregion

                    ExceptionlessClient.Default
                    .CreateLog("Info")
                    .AddTags("endJob", "EnzimOnlineVizitBransListesiWorker")
                    .Submit();

                }
                catch (Exception ex)
                {

                    ExceptionlessClient.Default
                   .CreateLog("Error")
                   .AddObject(ex, "ex")
                   .AddTags("response", "EnzimOnlineVizitBransListesiWorker")
                   .Submit();
                    throw;
                }
            }
        }

        public static string Temizle(string input)
        {
            if (string.IsNullOrWhiteSpace(input))
                return string.Empty;

            // Türkçe karakterleri İngilizce karşılıklarına çevir
            var karakterMap = new Dictionary<char, char>
        {
            { 'ç', 'c' }, { 'Ç', 'C' },
            { 'ğ', 'g' }, { 'Ğ', 'G' },
            { 'ı', 'i' }, { 'İ', 'I' },
            { 'ö', 'o' }, { 'Ö', 'O' },
            { 'ş', 's' }, { 'Ş', 'S' },
            { 'ü', 'u' }, { 'Ü', 'U' }
        };

            var sb = new StringBuilder();

            foreach (char c in input)
            {
                if (karakterMap.ContainsKey(c))
                    sb.Append(karakterMap[c]);
                else
                    sb.Append(c);
            }

            // Noktalama işaretlerini ve boşlukları temizle
            string sonuc = Regex.Replace(sb.ToString(), @"[\p{P}\p{S}\s]+", "");

            return sonuc;
        }
    }
}

This answer cannot resolve my problem

Showing 21 to 30 of 80 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.1.0-preview. Updated on December 17, 2025, 07:08
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.