diff --git a/api/Erp.Platform.HttpApi.Host.Dockerfile b/api/Erp.Platform.HttpApi.Host.Dockerfile index 9a658587..3e4d5dc3 100644 --- a/api/Erp.Platform.HttpApi.Host.Dockerfile +++ b/api/Erp.Platform.HttpApi.Host.Dockerfile @@ -61,7 +61,7 @@ RUN apk add --no-cache \ libc6-compat \ libc-dev -# OpenSSL default TLSv3 desteklediÄŸi için MSSQL 2012'ye baÄŸlanmıyor. Bunu çözmek için gerekli +# OpenSSL default TLSv3 desteklediği için MSSQL 2012'ye bağlanmıyor. Bunu çözmek için gerekli RUN sed -i 's/\[openssl_init\]/# [openssl_init]/' /etc/ssl/openssl.cnf RUN printf "\n\n[openssl_init]\nssl_conf = ssl_sect" >> /etc/ssl/openssl.cnf RUN printf "\n\n[ssl_sect]\nsystem_default = ssl_default_sect" >> /etc/ssl/openssl.cnf diff --git a/api/README.md b/api/README.md index 3120f7e8..02fca5a8 100644 --- a/api/README.md +++ b/api/README.md @@ -17,13 +17,13 @@ `dotnet ef migrations remove` `dotnet ef database update "20240822114716_ABP_822"` -- SQL Veritabanını Entity Class oluÅŸtur. +- SQL Veritabanını Entity Class oluştur. `dotnet ef dbcontext scaffold "Server=SERVERNAME;Database=DBNAME;User ID=USERNAME;Password=PASSWORD;TrustServerCertificate=True;" Microsoft.EntityFrameworkCore.SqlServer --context MyDbContext --output-dir Models --data-annotations --force` # Custom Endpoints ``` -Token İsteÄŸi Örnek: +Token İsteği Örnek: POST /connect/token HTTP/1.1 Host: localhost:44344 Content-Type: application/x-www-form-urlencoded @@ -35,28 +35,28 @@ username=system%40sozsoft.com &scope=offline_access%20Platform ``` -## Whatsapp Ayarları +## Whatsapp Ayarları -- Normal facebook üyeliÄŸi yapılır. -- https://developers.facebook.com/ sitesinden yeni developer üyeliÄŸi oluÅŸturulur. Developer üyeliÄŸi seçilir. -- CreateApp butonu ile yeni uygulama oluÅŸturulur. Uygulama adı belirlenir. 'Erp Messenger' -- AppType olarak İşletme seçilir ve App oluÅŸturulur. -- Add Products kısmında WhatsApp seçilir ve Business Account oluÅŸturulur. -- 3 noktadan (menüden) WhatsApp Manager sayfasına gidilir. Manage Templates seçilir, istenirse yeni template oluÅŸturulur. 'hello_world' -- WhatsApp Manager üzerinde menüden Settings -> Users -> System Users eklenir. Kullanıcı adı 'admin' ve Role ise 'Admin' seçilir. -- Eklenen 'admin' kullanıcısında 'Assign Assets' seçilir ve full yetki verilir. -- admin kullanıcısı üzerinden 'Generate Token' seçilir ve aÅŸağıdaki yetkiler verilir. +- Normal facebook üyeliği yapılır. +- https://developers.facebook.com/ sitesinden yeni developer üyeliği oluşturulur. Developer üyeliği seçilir. +- CreateApp butonu ile yeni uygulama oluşturulur. Uygulama adı belirlenir. 'Erp Messenger' +- AppType olarak İşletme seçilir ve App oluşturulur. +- Add Products kısmında WhatsApp seçilir ve Business Account oluşturulur. +- 3 noktadan (menüden) WhatsApp Manager sayfasına gidilir. Manage Templates seçilir, istenirse yeni template oluşturulur. 'hello_world' +- WhatsApp Manager üzerinde menüden Settings -> Users -> System Users eklenir. Kullanıcı adı 'admin' ve Role ise 'Admin' seçilir. +- Eklenen 'admin' kullanıcısında 'Assign Assets' seçilir ve full yetki verilir. +- admin kullanıcısı üzerinden 'Generate Token' seçilir ve aşağıdaki yetkiler verilir. ``` - whatsapp_business_management' - 'whatsapp_business_messaging' ``` -- WhatsApp -> API Setup kısmından "From" kısmında yeni telefon numarası eklenir. -- WhatsApp -> API Setup kısmından Generate Access Token oluÅŸturulur. +- WhatsApp -> API Setup kısmından "From" kısmında yeni telefon numarası eklenir. +- WhatsApp -> API Setup kısmından Generate Access Token oluşturulur. - token: EAASM83pDJf0BO0ZCYBr3Fx4SES0ox8XiZCgP3FIteprYpwawZCkGYjpMlKk4OZCWgRNZC2Ttofgf8amMf929ZBuDcgYIOsXkPMGBNmVxm2czipzq63LmtbYfyCWsKVy0q1jtay0nRoeDuO2FKhqCfLLtNn9cSWjINVLcz26ptK8a2Oko83cZBzrNsp3cpIECnzqRfEjHdEz1U73y3ZB1MZBOhHilax7yZALf4ZA1Tmk -- WhatsApp telefon numarasını Register etmek için aÅŸağıdaki postman Curl gönderilir. +- WhatsApp telefon numarasını Register etmek için aşağıdaki postman Curl gönderilir. ``` curl --location 'https://graph.facebook.com/v21.0/521106361082067/register' \ @@ -68,12 +68,12 @@ username=system%40sozsoft.com }' ``` -- Message göndermek için url : https://graph.facebook.com/v21.0/521106361082067/messages +- Message göndermek için url : https://graph.facebook.com/v21.0/521106361082067/messages ``` { "messaging_product": "whatsapp", - "to": "{+gönderilecek gsm numarası}", + "to": "{+gönderilecek gsm numarası}", "type": "template", "template": { "name": "{message_template_name}", @@ -86,7 +86,7 @@ username=system%40sozsoft.com "parameters": [ { "type": "text", - "text": "Test mesajı" + "text": "Test mesajı" } ] } @@ -99,16 +99,16 @@ username=system%40sozsoft.com - https://abp.io/docs/latest/release-info/upgrading - https://abp.io/docs/9.0/release-info/migration-guides/abp-9-0 - https://learn.microsoft.com/en-us/aspnet/core/migration/80-90?view=aspnetcore-9.0&tabs=visual-studio-code -- Adımlar: - - abp cli güncellenir dotnet tool update --global Volo.Abp.Cli - - abp update ile sln içindeki referanslar update edilir - - modules/ klasörü *.csproj içinde ara&düzenle ile update edilir (örn. 8.3.4 -> 9.0.2) - - .net sürümü arttıysa Microsoft'un dotnet upgrade dokümanı takip edilir - - Yeni dotnet sdk kurulumu yapılır (örn dotnet 9 sdk) - - ef tools güncellenir (dotnet tool update --global dotnet-ef) - - Dockerfile dosyalarındaki base imajlar yeni dotnet sürümüne güncellenir - - Abp upgrade dokümanı takip edilir - - Proje build olmuyorsa hatalar çözülür - - Yeni migration eklenir (varsa). Migration boÅŸ çıkıyorsa kaldırılır. (Örn dotnet ef migrations add Abp902 ve dotnet ef migrations remove) - - Migration boÅŸ deÄŸilse çalıştırılır (dotnet ef database update) +- Adımlar: + - abp cli güncellenir dotnet tool update --global Volo.Abp.Cli + - abp update ile sln içindeki referanslar update edilir + - modules/ klasörü *.csproj içinde ara&düzenle ile update edilir (örn. 8.3.4 -> 9.0.2) + - .net sürümü arttıysa Microsoft'un dotnet upgrade dokümanı takip edilir + - Yeni dotnet sdk kurulumu yapılır (örn dotnet 9 sdk) + - ef tools güncellenir (dotnet tool update --global dotnet-ef) + - Dockerfile dosyalarındaki base imajlar yeni dotnet sürümüne güncellenir + - Abp upgrade dokümanı takip edilir + - Proje build olmuyorsa hatalar çözülür + - Yeni migration eklenir (varsa). Migration boş çıkıyorsa kaldırılır. (Örn dotnet ef migrations add Abp902 ve dotnet ef migrations remove) + - Migration boş değilse çalıştırılır (dotnet ef database update) diff --git a/api/src/Erp.Platform.Application.Contracts/Activity/ActivityFileDto.cs b/api/src/Erp.Platform.Application.Contracts/Activity/ActivityFileDto.cs index 29fd3b88..15ba01b8 100644 --- a/api/src/Erp.Platform.Application.Contracts/Activity/ActivityFileDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/Activity/ActivityFileDto.cs @@ -2,10 +2,10 @@ public class ActivityFileDto { - public string FileName { get; set; } // Dosya adı + public string FileName { get; set; } // Dosya adı public string FileType { get; set; } // MIME tipi public long FileSize { get; set; } // Boyut (byte) - public string SavedFileName { get; set; } // Blob üzerinde kaydedilen dosya adı - public string FileBase64 { get; set; } // Dosya içeriÄŸi + public string SavedFileName { get; set; } // Blob üzerinde kaydedilen dosya adı + public string FileBase64 { get; set; } // Dosya içeriği } diff --git a/api/src/Erp.Platform.Application.Contracts/Branch/SeedDetailDto.cs b/api/src/Erp.Platform.Application.Contracts/Branch/SeedDetailDto.cs index 15850320..418de21d 100644 --- a/api/src/Erp.Platform.Application.Contracts/Branch/SeedDetailDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/Branch/SeedDetailDto.cs @@ -4,9 +4,9 @@ namespace Erp.Platform.Branchs; public class SeedDetailDto { - public string EntityName { get; set; } = string.Empty; // Örn: "RegistrationType" + public string EntityName { get; set; } = string.Empty; // Örn: "RegistrationType" public int InsertedCount { get; set; } - public List InsertedItems { get; set; } = new(); // Eklenen kayıtların isimleri - public List Warnings { get; set; } = new(); // Varsa uyarılar + public List InsertedItems { get; set; } = new(); // Eklenen kayıtların isimleri + public List Warnings { get; set; } = new(); // Varsa uyarılar public List Errors { get; set; } = new(); // Varsa hatalar } diff --git a/api/src/Erp.Platform.Application.Contracts/DeveloperKit/DynamicServiceDtos.cs b/api/src/Erp.Platform.Application.Contracts/DeveloperKit/DynamicServiceDtos.cs index 098a0c14..96202b74 100644 --- a/api/src/Erp.Platform.Application.Contracts/DeveloperKit/DynamicServiceDtos.cs +++ b/api/src/Erp.Platform.Application.Contracts/DeveloperKit/DynamicServiceDtos.cs @@ -7,7 +7,7 @@ using Volo.Abp.Application.Dtos; namespace Erp.Platform.DeveloperKit; /// -/// Dynamic AppService tanımı DTO'su +/// Dynamic AppService tanımı DTO'su /// public class DynamicServiceDto : FullAuditedEntityDto { @@ -70,14 +70,14 @@ public class CompileResultDto public List Warnings { get; set; } /// - /// Yüklenen assembly (sadece server-side kullanım için, JSON'a serialize edilmez) + /// Yüklenen assembly (sadece server-side kullanım için, JSON'a serialize edilmez) /// [System.Text.Json.Serialization.JsonIgnore] public System.Reflection.Assembly LoadedAssembly { get; set; } } /// -/// Tek bir derleme hatası +/// Tek bir derleme hatası /// public class CompilationErrorDto { @@ -105,7 +105,7 @@ public class TestCompileRequestDto } /// -/// AppService yayınlama DTO'su +/// AppService yayınlama DTO'su /// public class PublishAppServiceRequestDto { @@ -130,7 +130,7 @@ public class PublishAppServiceRequestDto } /// -/// AppService yayınlama sonucu +/// AppService yayınlama sonucu /// public class PublishResultDto { diff --git a/api/src/Erp.Platform.Application.Contracts/Intranet/CurrencyDto.cs b/api/src/Erp.Platform.Application.Contracts/Intranet/CurrencyDto.cs index d9d3068e..317d8530 100644 --- a/api/src/Erp.Platform.Application.Contracts/Intranet/CurrencyDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/Intranet/CurrencyDto.cs @@ -8,7 +8,7 @@ public class CurrencyDto : FullAuditedEntityDto public string Code { get; set; } // TRY, USD, EUR public string Symbol { get; set; } // ₺, $, etc. public string Name { get; set; } // Turkish lira, US dollar, ... - public decimal Rate { get; set; } // TRY başına deÄŸer + public decimal Rate { get; set; } // TRY başına değer public bool IsActive { get; set; } public DateTime? LastUpdated { get; set; } } diff --git a/api/src/Erp.Platform.Application.Contracts/Intranet/OvertimeDto.cs b/api/src/Erp.Platform.Application.Contracts/Intranet/OvertimeDto.cs index 43d34f42..34dcb2db 100644 --- a/api/src/Erp.Platform.Application.Contracts/Intranet/OvertimeDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/Intranet/OvertimeDto.cs @@ -11,14 +11,14 @@ public class OvertimeDto : FullAuditedEntityDto public EmployeeDto Employee { get; set; } // Navigation'dan doldurulabilir public DateTime Date { get; set; } // Mesai tarihi - public DateTime StartTime { get; set; } // BaÅŸlangıç zamanı - public DateTime EndTime { get; set; } // BitiÅŸ zamanı - public decimal TotalHours { get; set; } // Toplam fazla mesai süresi + public DateTime StartTime { get; set; } // Başlangıç zamanı + public DateTime EndTime { get; set; } // Bitiş zamanı + public decimal TotalHours { get; set; } // Toplam fazla mesai süresi public string Reason { get; set; } // Fazla mesai nedeni - public string Status { get; set; } // Durum: "Bekliyor", "Onaylandı", "Reddedildi" - public Guid? ApprovedById { get; set; } // Onaylayan kiÅŸi ID + public string Status { get; set; } // Durum: "Bekliyor", "Onaylandı", "Reddedildi" + public Guid? ApprovedById { get; set; } // Onaylayan kişi ID public DateTime? ApprovedDate { get; set; } // Onay tarihi public string RejectionReason { get; set; } // Reddetme nedeni - public decimal Rate { get; set; } // Fazla mesai oranı (ör. 1.5x) - public decimal? Amount { get; set; } // Hesaplanan ödeme tutarı + public decimal Rate { get; set; } // Fazla mesai oranı (ör. 1.5x) + public decimal? Amount { get; set; } // Hesaplanan ödeme tutarı } diff --git a/api/src/Erp.Platform.Application.Contracts/Intranet/ReservationDto.cs b/api/src/Erp.Platform.Application.Contracts/Intranet/ReservationDto.cs index e2199942..9cc4a578 100644 --- a/api/src/Erp.Platform.Application.Contracts/Intranet/ReservationDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/Intranet/ReservationDto.cs @@ -11,12 +11,12 @@ public class ReservationDto : FullAuditedEntityDto public string ResourceName { get; set; } public Guid? EmployeeId { get; set; } - public string EmployeeName { get; set; } // Optional: iliÅŸkili personel ismi + public string EmployeeName { get; set; } // Optional: ilişkili personel ismi public DateTime StartDate { get; set; } public DateTime EndDate { get; set; } - public string Purpose { get; set; } // Amaç - public int? Participants { get; set; } // Katılımcı Sayısı + public string Purpose { get; set; } // Amaç + public int? Participants { get; set; } // Katılımcı Sayısı public string Notes { get; set; } public string Status { get; set; } // pending | approved | rejected | completed } diff --git a/api/src/Erp.Platform.Application.Contracts/Intranet/ShuttleRouteDto.cs b/api/src/Erp.Platform.Application.Contracts/Intranet/ShuttleRouteDto.cs index ebee7422..a3047d52 100644 --- a/api/src/Erp.Platform.Application.Contracts/Intranet/ShuttleRouteDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/Intranet/ShuttleRouteDto.cs @@ -7,11 +7,11 @@ public class ShuttleRouteDto : FullAuditedEntityDto { public Guid? TenantId { get; set; } - public string Type { get; set; } // Örn: "Servis", "Transfer", "Ring" - public string Name { get; set; } // Hat adı veya açıklaması - public string DepartureTime { get; set; } // Kalkış saati - public string ArrivalTime { get; set; } // Varış saati + public string Type { get; set; } // Örn: "Servis", "Transfer", "Ring" + public string Name { get; set; } // Hat adı veya açıklaması + public string DepartureTime { get; set; } // Kalkış saati + public string ArrivalTime { get; set; } // Varış saati public int Capacity { get; set; } // Toplam kapasite - public int Available { get; set; } // Mevcut boÅŸ koltuk sayısı - public string[] Route { get; set; } // JSON veya metin formatında güzergah bilgisi + public int Available { get; set; } // Mevcut boş koltuk sayısı + public string[] Route { get; set; } // JSON veya metin formatında güzergah bilgisi } diff --git a/api/src/Erp.Platform.Application.Contracts/Intranet/TrainingDto.cs b/api/src/Erp.Platform.Application.Contracts/Intranet/TrainingDto.cs index 27aa4321..29acba1d 100644 --- a/api/src/Erp.Platform.Application.Contracts/Intranet/TrainingDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/Intranet/TrainingDto.cs @@ -12,7 +12,7 @@ public class TrainingDto : FullAuditedEntityDto public string Instructor { get; set; } public string Category { get; set; } // technical | soft-skills | management | compliance | other public string Type { get; set; } // online | classroom | hybrid - public int Duration { get; set; } // saat veya gün olarak + public int Duration { get; set; } // saat veya gün olarak public DateTime StartDate { get; set; } public DateTime EndDate { get; set; } public int MaxParticipants { get; set; } @@ -21,7 +21,7 @@ public class TrainingDto : FullAuditedEntityDto public string Location { get; set; } public string Thumbnail { get; set; } - // İliÅŸkili veriler - public int CertificateCount { get; set; } // optional: iliÅŸkili sertifika sayısı + // İlişkili veriler + public int CertificateCount { get; set; } // optional: ilişkili sertifika sayısı } diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/BreakDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/BreakDto.cs index 046dab97..73f36bd0 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/BreakDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/BreakDto.cs @@ -1,14 +1,14 @@ namespace Erp.Platform.ListForms; -/// Özel bir ölçek sonu koleksiyonu bildirir. Yalnızca eksen tipi "sürekli" veya "logaritmik" ise geçerlidir. +/// Özel bir ölçek sonu koleksiyonu bildirir. Yalnızca eksen tipi "sürekli" veya "logaritmik" ise geçerlidir. /// public class BreakDto { - /// startValue özelliÄŸi ile birlikte ölçek kırılmasını sınırlar. + /// startValue özelliği ile birlikte ölçek kırılmasını sınırlar. /// public int EndValue { get; set; } - /// endValue özelliÄŸi ile birlikte, ölçek kırılmasını sınırlar. + /// endValue özelliği ile birlikte, ölçek kırılmasını sınırlar. /// public int StartValue { get; set; } } diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/BreakStyleDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/BreakStyleDto.cs index eaa27fe0..e8ed6aa0 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/BreakStyleDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/BreakStyleDto.cs @@ -3,7 +3,7 @@ public class BreakStyleDto { /// Rengi belirtir. - /// Bu özellik aÅŸağıdaki renkleri destekler: + /// Bu özellik aşağıdaki renkleri destekler: /// Hexadecimal colors /// RGB colors /// RGBA colors @@ -12,7 +12,7 @@ public class BreakStyleDto /// Paint server address /// public string Color { get; set; } = "#ababab"; - /// Ölçek sonlarının çizgi stilini belirtir. + /// Ölçek sonlarının çizgi stilini belirtir. /// public string Line { get; set; } = "waved"; public int Width { get; set; } = 5; diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartAdaptivelayoutDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartAdaptivelayoutDto.cs index 3b1b04d3..5880d977 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartAdaptivelayoutDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartAdaptivelayoutDto.cs @@ -1,17 +1,17 @@ namespace Erp.Platform.ListForms; -/// Uyarlanabilir düzen özelliklerini belirtir. -/// Şu sırada gizlenir: Title, Export menu icon, Legend, Axis titles, Axis labels +/// Uyarlanabilir düzen özelliklerini belirtir. +/// Şu sırada gizlenir: Title, Export menu icon, Legend, Axis titles, Axis labels /// public class ChartAdaptivelayoutDto { - /// Düzenin uyum saÄŸlamaya baÅŸladığı minimum kap yüksekliÄŸini belirtir. + /// Düzenin uyum sağlamaya başladığı minimum kap yüksekliğini belirtir. /// public int Height { get; set; } = 80; - /// Düzenin uyum saÄŸlamaya baÅŸladığı minimum kapsayıcı geniÅŸliÄŸini belirtir. + /// Düzenin uyum sağlamaya başladığı minimum kapsayıcı genişliğini belirtir. /// public int Width { get; set; } = 80; - /// UI bileÅŸeni düzeni uyarladığında nokta etiketlerinin tutulması gerekip gerekmediÄŸini belirtir. + /// UI bileşeni düzeni uyarladığında nokta etiketlerinin tutulması gerekip gerekmediğini belirtir. /// public bool KeepLabels { get; set; } = true; } diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartAnimationDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartAnimationDto.cs index 01076be3..66df2d57 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartAnimationDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartAnimationDto.cs @@ -2,27 +2,27 @@ namespace Erp.Platform.ListForms; -/// Animasyon özelliklerini belirtir. +/// Animasyon özelliklerini belirtir. /// public class ChartAnimationDto { - /// Animasyonun milisaniye cinsinden ne kadar süreceÄŸini belirtir. + /// Animasyonun milisaniye cinsinden ne kadar süreceğini belirtir. /// [Range(100, 2500, ErrorMessage = "Value for {0} must be between {1} and {2}.")] public int Duration { get; set; } = 1000; - /// Animasyonun kolaylaÅŸtırma iÅŸlevini belirtir. + /// Animasyonun kolaylaştırma işlevini belirtir. /// Accepted Values: 'easeOutCubic' | 'linear' - /// easeOutCubic: Animasyon hızlı baÅŸlar ve sona doÄŸru kademeli olarak yavaÅŸlar. - /// linear : Animasyon sabit bir hızda ilerler. + /// easeOutCubic: Animasyon hızlı başlar ve sona doğru kademeli olarak yavaşlar. + /// linear : Animasyon sabit bir hızda ilerler. /// public string Easing { get; set; } = "easeOutCubic"; - /// UI bileÅŸeninde animasyonu etkinleÅŸtirir. + /// UI bileşeninde animasyonu etkinleştirir. /// public bool Enabled { get; set; } = true; - /// Animasyon devre dışı bırakılmadan önce UI bileÅŸeninin kaç seri noktasına sahip olması gerektiÄŸini belirtir. - /// GrafiÄŸinizdeki seri noktalarının sayısı zamanla artarsa bunlara animasyon uygulamak, UI bileÅŸen performansını etkileyebilir. - /// Bu durumda, nokta sayısı için bir sınır belirtmek üzere maxPointCountSupported özelliÄŸini kullanın. - /// Bu sınır aşıldığında animasyon devre dışı bırakılır. + /// Animasyon devre dışı bırakılmadan önce UI bileşeninin kaç seri noktasına sahip olması gerektiğini belirtir. + /// Grafiğinizdeki seri noktalarının sayısı zamanla artarsa bunlara animasyon uygulamak, UI bileşen performansını etkileyebilir. + /// Bu durumda, nokta sayısı için bir sınır belirtmek üzere maxPointCountSupported özelliğini kullanın. + /// Bu sınır aşıldığında animasyon devre dışı bırakılır. /// public int MaxPointCountSupported { get; set; } = 300; } diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartAnnotationDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartAnnotationDto.cs index 92306766..84d82723 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartAnnotationDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartAnnotationDto.cs @@ -10,14 +10,14 @@ public class ChartAnnotationDto Font = new ChartFontDto(); } - /// Ek açıklamayı belirli bir bağımsız deÄŸiÅŸkene göre konumlandırır. + /// Ek açıklamayı belirli bir bağımsız değişkene göre konumlandırır. /// public string Argument { get; set; } - /// Ek açıklamanın kenarlığının görünümünü yapılandırır. + /// Ek açıklamanın kenarlığının görünümünü yapılandırır. /// public ChartBorderDto Border { get; set; } - /// Ek açıklamayı dolduran rengi belirtir. - /// Bu özellik aÅŸağıdaki renkleri destekler: + /// Ek açıklamayı dolduran rengi belirtir. + /// Bu özellik aşağıdaki renkleri destekler: /// Hexadecimal colors /// RGB colors /// RGBA colors @@ -26,64 +26,64 @@ public class ChartAnnotationDto /// Paint server address /// public string Color { get; set; } = "#ffffff"; - /// Annotations'ın açıklamasını araç ipucunda belirtir. + /// Annotations'ın açıklamasını araç ipucunda belirtir. /// public string Description { get; set; } public ChartFontDto Font { get; set; } - /// Ek açıklamanın yüksekliÄŸini piksel cinsinden belirtir. + /// Ek açıklamanın yüksekliğini piksel cinsinden belirtir. /// public int Height { get; set; } = -1; - /// Açıklamada görüntülenecek görüntüyü yapılandırır. Yalnızca tür "görüntü" ise geçerlidir. + /// Açıklamada görüntülenecek görüntüyü yapılandırır. Yalnızca tür "görüntü" ise geçerlidir. /// public string Image { get; set; } - /// Ek açıklamanın adını belirtir. + /// Ek açıklamanın adını belirtir. /// public string Name { get; set; } - /// Ek açıklamayı yatay olarak taşır. - /// Bu özelliÄŸe atanan sayı, piksel cinsinden kaymayı belirtir. Negatif bir sayı notu sola kaydırır ve pozitif bir sayı onu saÄŸa kaydırır. + /// Ek açıklamayı yatay olarak taşır. + /// Bu özelliğe atanan sayı, piksel cinsinden kaymayı belirtir. Negatif bir sayı notu sola kaydırır ve pozitif bir sayı onu sağa kaydırır. /// public int OffsetX { get; set; } = -1; - /// Ek açıklamayı dikey olarak taşır. - /// Bu özelliÄŸe atanan sayı, piksel cinsinden kaymayı belirtir. Negatif bir sayı ek açıklamayı yukarı kaydırır ve pozitif bir sayı onu aÅŸağı kaydırır. + /// Ek açıklamayı dikey olarak taşır. + /// Bu özelliğe atanan sayı, piksel cinsinden kaymayı belirtir. Negatif bir sayı ek açıklamayı yukarı kaydırır ve pozitif bir sayı onu aşağı kaydırır. /// public int OffsetY { get; set; } = -1; - /// Ek açıklamanın metni veya görüntüsü (piksel olarak belirtilir) çevresinde boÅŸ bir alan oluÅŸturmak için paddingTopBottom ile birlikte kullanılır. + /// Ek açıklamanın metni veya görüntüsü (piksel olarak belirtilir) çevresinde boş bir alan oluşturmak için paddingTopBottom ile birlikte kullanılır. /// public int PaddingLeftRight { get; set; } = 10; - /// paddingLeftRight ile birlikte, ek açıklama metninin veya görüntüsünün çevresinde boÅŸ bir alan oluÅŸturur; piksel cinsinden belirtilir. + /// paddingLeftRight ile birlikte, ek açıklama metninin veya görüntüsünün çevresinde boş bir alan oluşturur; piksel cinsinden belirtilir. /// public int PaddingTopBottom { get; set; } = 10; - /// Ek açıklamayı bir seri noktasına tutturur. Nokta dizisinin adını kabul eder. + /// Ek açıklamayı bir seri noktasına tutturur. Nokta dizisinin adını kabul eder. /// public string Series { get; set; } - /// Ek açıklamanın metnini belirtir. Yalnızca tür "metin" ise geçerlidir. + /// Ek açıklamanın metnini belirtir. Yalnızca tür "metin" ise geçerlidir. /// public string Text { get; set; } - /// Ek açıklama araç ipucunun etkin olup olmadığını belirtir. + /// Ek açıklama araç ipucunun etkin olup olmadığını belirtir. /// public bool TooltipEnabled { get; set; } = true; - /// Ek açıklamanın metin mi, resim mi yoksa ÅŸablon mu görüntülediÄŸini belirtir. Bu gerekli bir ayardır. + /// Ek açıklamanın metin mi, resim mi yoksa şablon mu görüntülediğini belirtir. Bu gerekli bir ayardır. /// Accepted Values: 'text' | 'image' | 'custom' /// Default Value: undefined /// public string Type { get; set; } - /// Ek açıklamayı belirtilen deÄŸer eksenindeki bir deÄŸere göre konumlandırır. + /// Ek açıklamayı belirtilen değer eksenindeki bir değere göre konumlandırır. /// public string Value { get; set; } - /// Ek açıklamanın geniÅŸliÄŸini piksel cinsinden belirtir. + /// Ek açıklamanın genişliğini piksel cinsinden belirtir. /// public int Width { get; set; } - /// Ek açıklama metninin tek bir satıra sığmaması durumunda nasıl kaydırılacağını belirtir. + /// Ek açıklama metninin tek bir satıra sığmaması durumunda nasıl kaydırılacağını belirtir. /// Accepted Values: 'normal' | 'breakWord' | 'none' - /// normal : Metin yalnızca izin verilen kesme noktalarında (örneÄŸin, iki kelime arasındaki boÅŸluk) kesiliyor. + /// normal : Metin yalnızca izin verilen kesme noktalarında (örneğin, iki kelime arasındaki boşluk) kesiliyor. /// breakWord : Words can be broken if there are no available breakpoints in the line. - /// none : Sözcük kaydırma devre dışı. + /// none : Sözcük kaydırma devre dışı. /// public string WordWrap { get; set; } = "normal"; - /// Ek açıklamanın merkezini belirli bir piksel koordinatına konumlandırmak için y ile birlikte kullanılır. (0, 0), UI bileÅŸeninin sol üst köşesidir. + /// Ek açıklamanın merkezini belirli bir piksel koordinatına konumlandırmak için y ile birlikte kullanılır. (0, 0), UI bileşeninin sol üst köşesidir. /// public int X { get; set; } - /// Ek açıklamanın merkezini belirli bir piksel koordinatına konumlandırmak için x ile birlikte kullanılır. (0, 0), UI bileÅŸeninin sol üst köşesidir. + /// Ek açıklamanın merkezini belirli bir piksel koordinatına konumlandırmak için x ile birlikte kullanılır. (0, 0), UI bileşeninin sol üst köşesidir. /// public int Y { get; set; } diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartArgumentAxisDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartArgumentAxisDto.cs index bb53ed65..f30c7070 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartArgumentAxisDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartArgumentAxisDto.cs @@ -8,80 +8,80 @@ public class ChartArgumentAxisDto Label = new ChartArgumentAxisLabelDto(); } - /// ArgumentAxis için Label sınıfı + /// ArgumentAxis için Label sınıfı /// https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxChart/Configuration/argumentAxis/label/ /// public class ChartArgumentAxisLabelDto { public ChartArgumentAxisLabelDto() { } - /// Eksen etiketlerini döndürmenizi veya kademelendirmenizi saÄŸlar. Yalnızca yatay eksen için geçerlidir. + /// Eksen etiketlerini döndürmenizi veya kademelendirmenizi sağlar. Yalnızca yatay eksen için geçerlidir. /// Accepted Values: 'rotate' | 'stagger' | 'standard' - /// rotate : Eksen etiketlerini, rotateAngle özelliÄŸi tarafından belirtilen açı boyunca döndürür. - /// stagger: Eksen etiketlerini iki sıra halinde düzenler. Satırlar arasında boÅŸ bir alan, staggeringSpacing özelliÄŸi tarafından belirtilir. - /// standard:Eksen etiketlerinin varsayılan yerleÅŸimini deÄŸiÅŸtirmez. + /// rotate : Eksen etiketlerini, rotateAngle özelliği tarafından belirtilen açı boyunca döndürür. + /// stagger: Eksen etiketlerini iki sıra halinde düzenler. Satırlar arasında boş bir alan, staggeringSpacing özelliği tarafından belirtilir. + /// standard:Eksen etiketlerinin varsayılan yerleşimini değiştirmez. /// public string DisplayMode { get; set; } = "standard"; - /// Eksen etiketlerinin dönüş açısını belirtir. Yalnızca displayMode veya overppingBehavior "rotate" ise geçerlidir. + /// Eksen etiketlerinin dönüş açısını belirtir. Yalnızca displayMode veya overppingBehavior "rotate" ise geçerlidir. /// public int RotationAngle { get; set; } = 90; - /// Tümünü görüntülemek için yeterli alan olmadığında eksen etiketlerinin nasıl düzenleneceÄŸine karar verir. + /// Tümünü görüntülemek için yeterli alan olmadığında eksen etiketlerinin nasıl düzenleneceğine karar verir. /// Accepted Values: 'rotate' | 'stagger' | 'none' | 'hide' /// public string OverlappingBehavior { get; set; } = "hide"; } - /// Bağımsız deÄŸiÅŸkenleri belirtilen bir veri türüne dönüştürür. + /// Bağımsız değişkenleri belirtilen bir veri türüne dönüştürür. /// Accepted Values: 'datetime' | 'numeric' | 'string' /// Default Value: undefined - /// Veri kaynağınız sayıları veya tarihleri ​​dizeler olarak saklıyorsa, bu özelliÄŸi kullanarak uygun veri türünü belirtin. Tarihlerin geçerli bir biçimi olduÄŸundan emin olun. + /// Veri kaynağınız sayıları veya tarihleri ​​dizeler olarak saklıyorsa, bu özelliği kullanarak uygun veri türünü belirtin. Tarihlerin geçerli bir biçimi olduğundan emin olun. /// public string ArgumentType { get; set; } - /// Toplama aralıklarının uzunluÄŸunu eksen birimleri cinsinden belirtir. Yalnızca sürekli ve logaritmik tipteki eksenler için geçerlidir. + /// Toplama aralıklarının uzunluğunu eksen birimleri cinsinden belirtir. Yalnızca sürekli ve logaritmik tipteki eksenler için geçerlidir. /// Accepted Values: 'day' | 'hour' | 'millisecond' | 'minute' | 'month' | 'quarter' | 'second' | 'week' | 'year' /// Default Value: undefined - /// Veri toplama için bağımsız deÄŸiÅŸken ekseni aralıklara bölünür. Aynı aralığa düşen seri noktaları bir araya toplanır. aggregationInterval özelliÄŸi, her aralığın uzunluÄŸunu tanımlar. - /// nesne olarak da implement edilebilir, ÅŸimdilik yapılmadı. ÖrneÄŸin 'day' seçildiÄŸinde gün sayısı 5 olarak verilebilir + /// Veri toplama için bağımsız değişken ekseni aralıklara bölünür. Aynı aralığa düşen seri noktaları bir araya toplanır. aggregationInterval özelliği, her aralığın uzunluğunu tanımlar. + /// nesne olarak da implement edilebilir, şimdilik yapılmadı. Örneğin 'day' seçildiğinde gün sayısı 5 olarak verilebilir /// public string AggregationInterval { get; set; } public ChartAxisGridDto Grid { get; set; } - /// Kullanıcı bir eksen etiketini iÅŸaret ettiÄŸinde vurgulanacak grafik öğelerini belirtir. + /// Kullanıcı bir eksen etiketini işaret ettiğinde vurgulanacak grafik öğelerini belirtir. /// Accepted Values: 'allArgumentPoints' | 'none' /// Default Value: 'none' - /// none : Eksen etiketleri, onlara iÅŸaret etmeye yanıt vermez. - /// allArgumentPoints : Bir kullanıcı bağımsız deÄŸiÅŸken ekseninde bir etiketi iÅŸaret ettiÄŸinde, karşılık gelen bağımsız deÄŸiÅŸkenin seri noktaları vurgulanır. + /// none : Eksen etiketleri, onlara işaret etmeye yanıt vermez. + /// allArgumentPoints : Bir kullanıcı bağımsız değişken ekseninde bir etiketi işaret ettiğinde, karşılık gelen bağımsız değişkenin seri noktaları vurgulanır. /// public string HoverMode { get; set; } = "none"; public ChartArgumentAxisLabelDto Label { get; set; } - /// Bağımsız deÄŸiÅŸken ekseninin yerini deÄŸiÅŸtirir. + /// Bağımsız değişken ekseninin yerini değiştirir. /// Accepted Values: 'bottom' | 'left' | 'right' | 'top' /// Default Value: 'bottom' - /// Döndürülen (Rotated) özelliÄŸin deÄŸerine baÄŸlı olarak, konum (Position) farklı deÄŸerler kabul eder. + /// Döndürülen (Rotated) özelliğin değerine bağlı olarak, konum (Position) farklı değerler kabul eder. /// If (Rotated = False) => Position = "bottom" or "top" /// If (Rotated = True) => Position = "left" or "right" /// public string Position { get; set; } = "bottom"; - /// Eksen baÅŸlığını yapılandırır. - /// Şimdilik sadece string olaran implemen edildi, ihtiyaç olması durumunda ChartTitleDto benzeri bir nesne ile deÄŸiÅŸtirilebilir + /// Eksen başlığını yapılandırır. + /// Şimdilik sadece string olaran implemen edildi, ihtiyaç olması durumunda ChartTitleDto benzeri bir nesne ile değiştirilebilir /// public string Title { get; set; } - /// Eksen çizgisini görünür yapar. + /// Eksen çizgisini görünür yapar. /// public bool Visible { get; set; } = true; - /// Eksen çizgisinin geniÅŸliÄŸini piksel cinsinden belirtir. + /// Eksen çizgisinin genişliğini piksel cinsinden belirtir. /// public int Width { get; set; } = 1; - /// Eksen üzerinde yalnızca iÅŸ günlerini bırakır: çalışma haftası günleri artı tek iÅŸ günleri eksi tatiller. Yalnızca eksenin argümanTürü "tarihsaat" ise geçerlidir. + /// Eksen üzerinde yalnızca iş günlerini bırakır: çalışma haftası günleri artı tek iş günleri eksi tatiller. Yalnızca eksenin argümanTürü "tarihsaat" ise geçerlidir. /// public bool WorkdaysOnly { get; set; } - // ihtiyaç olunca açılacak proptert ler + // ihtiyaç olunca açılacak proptert ler // aggregateByCategory // aggregatedPointsPosition // aggregationGroupWidth // allowDecimals - // axisDivisionFactor // İki komÅŸu ana çizgi arasındaki minimum mesafeyi piksel cinsinden belirtir. Yalnızca "sürekli" ve "logaritmik" tiplerin eksenleri için geçerlidir. + // axisDivisionFactor // İki komşu ana çizgi arasındaki minimum mesafeyi piksel cinsinden belirtir. Yalnızca "sürekli" ve "logaritmik" tiplerin eksenleri için geçerlidir. // breaks[] // breakStyle // categories diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartAxisGridDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartAxisGridDto.cs index a9866f4c..031b3be7 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartAxisGridDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartAxisGridDto.cs @@ -2,8 +2,8 @@ public class ChartAxisGridDto { - /// Grid çizgilerinin rengini belirtir. - /// Bu özellik aÅŸağıdaki renkleri destekler: + /// Grid çizgilerinin rengini belirtir. + /// Bu özellik aşağıdaki renkleri destekler: /// Hexadecimal colors /// RGB colors /// RGBA colors @@ -12,16 +12,16 @@ public class ChartAxisGridDto /// Paint server address /// public string Color { get; set; } = "#d3d3d3"; - /// Grid çizgilerini görünür yapar. + /// Grid çizgilerini görünür yapar. /// public bool Visible { get; set; } - /// Grid çizgilerinin geniÅŸliÄŸini piksel cinsinden belirtir. + /// Grid çizgilerinin genişliğini piksel cinsinden belirtir. /// public int Width { get; set; } = 1; - ///// Grid çizgilerinin saydamlığını belirtir. - ///// 0 - 1 aralığındadır + ///// Grid çizgilerinin saydamlığını belirtir. + ///// 0 - 1 aralığındadır ///// //public double Opacity { get; set; } = 1; } diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartBorderDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartBorderDto.cs index 5a1e0072..f3b41884 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartBorderDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartBorderDto.cs @@ -4,8 +4,8 @@ namespace Erp.Platform.ListForms; public class ChartBorderDto { - /// Legend in kenarlığını renklendirir. - /// Bu özellik aÅŸağıdaki renkleri destekler: + /// Legend in kenarlığını renklendirir. + /// Bu özellik aşağıdaki renkleri destekler: /// Hexadecimal colors /// RGB colors /// RGBA colors @@ -14,27 +14,27 @@ public class ChartBorderDto /// Paint server address /// public string Color { get; set; } = "#d3d3d3"; - /// Legend in tüm köşelerini yuvarlatır. + /// Legend in tüm köşelerini yuvarlatır. /// [Range(0, 100, ErrorMessage = "Value for {0} must be between {1} and {2}.")] public int CornerRadius { get; set; } = 0; - /// Açıklamanın kenarlığı için bir tire stili ayarlar + /// Açıklamanın kenarlığı için bir tire stili ayarlar /// Accepted Values: 'dash' | 'dot' | 'longDash' | 'solid' /// Default Value: 'solid' - /// solid : Kenarlık düz, sürekli bir çizgidir - /// longDash : Kenarlık, uzun çizgiler kullanılarak görüntülenir - /// dash : Kenarlık, tireler kullanılarak görüntülenir - /// dot : Kenarlık noktalar kullanılarak görüntülenir - /// Any combination of 'longDash', 'dash' and 'dot : Kenarlık, belirtilen kombinasyon tekrarlanarak görüntülenir. ÖrneÄŸin, 'dashdotdash'. + /// solid : Kenarlık düz, sürekli bir çizgidir + /// longDash : Kenarlık, uzun çizgiler kullanılarak görüntülenir + /// dash : Kenarlık, tireler kullanılarak görüntülenir + /// dot : Kenarlık noktalar kullanılarak görüntülenir + /// Any combination of 'longDash', 'dash' and 'dot : Kenarlık, belirtilen kombinasyon tekrarlanarak görüntülenir. Örneğin, 'dashdotdash'. /// public string DashStyle { get; set; } = "solid"; - ///// Açıklamanın kenarlığının saydamlığını belirtir - ///// Bu özellik, 0 ile 1 arasında bir deÄŸer kabul eder; burada 0, kenarlığı tamamen saydam, 1 ise opak yapar. + ///// Açıklamanın kenarlığının saydamlığını belirtir + ///// Bu özellik, 0 ile 1 arasında bir değer kabul eder; burada 0, kenarlığı tamamen saydam, 1 ise opak yapar. ///// //[Range(0.1, 1, ErrorMessage = "Value for {0} must be between {1} and {2}.")] //public double Opacity { get; set; } = 0.5; public bool Visible { get; set; } - /// Açıklamanın kenarlığının geniÅŸliÄŸini piksel cinsinden belirtir + /// Açıklamanın kenarlığının genişliğini piksel cinsinden belirtir /// public int Width { get; set; } = 1; } diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartCommonAnnotationDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartCommonAnnotationDto.cs index 08902f35..1f2a9df4 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartCommonAnnotationDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartCommonAnnotationDto.cs @@ -8,14 +8,14 @@ public class ChartCommonAnnotationDto Font = new ChartFontDto(); } - /// Ek açıklamayı belirli bir bağımsız deÄŸiÅŸkene göre konumlandırır. + /// Ek açıklamayı belirli bir bağımsız değişkene göre konumlandırır. /// public string Argument { get; set; } - /// Ek açıklamanın kenarlığının görünümünü yapılandırır. + /// Ek açıklamanın kenarlığının görünümünü yapılandırır. /// public ChartBorderDto Border { get; set; } - /// Ek açıklamayı dolduran rengi belirtir. - /// Bu özellik aÅŸağıdaki renkleri destekler: + /// Ek açıklamayı dolduran rengi belirtir. + /// Bu özellik aşağıdaki renkleri destekler: /// Hexadecimal colors /// RGB colors /// RGBA colors @@ -24,61 +24,61 @@ public class ChartCommonAnnotationDto /// Paint server address /// public string Color { get; set; } = "#ffffff"; - /// Annotations'ın açıklamasını araç ipucunda belirtir. + /// Annotations'ın açıklamasını araç ipucunda belirtir. /// public string Description { get; set; } public ChartFontDto Font { get; set; } - /// Ek açıklamanın yüksekliÄŸini piksel cinsinden belirtir. + /// Ek açıklamanın yüksekliğini piksel cinsinden belirtir. /// public int Height { get; set; } = -1; - /// Açıklamada görüntülenecek görüntüyü yapılandırır. Yalnızca tür "görüntü" ise geçerlidir. + /// Açıklamada görüntülenecek görüntüyü yapılandırır. Yalnızca tür "görüntü" ise geçerlidir. /// public string Image { get; set; } - /// Ek açıklamayı yatay olarak taşır. - /// Bu özelliÄŸe atanan sayı, piksel cinsinden kaymayı belirtir. Negatif bir sayı notu sola kaydırır ve pozitif bir sayı onu saÄŸa kaydırır. + /// Ek açıklamayı yatay olarak taşır. + /// Bu özelliğe atanan sayı, piksel cinsinden kaymayı belirtir. Negatif bir sayı notu sola kaydırır ve pozitif bir sayı onu sağa kaydırır. /// public int OffsetX { get; set; } = -1; - /// Ek açıklamayı dikey olarak taşır. - /// Bu özelliÄŸe atanan sayı, piksel cinsinden kaymayı belirtir. Negatif bir sayı ek açıklamayı yukarı kaydırır ve pozitif bir sayı onu aÅŸağı kaydırır. + /// Ek açıklamayı dikey olarak taşır. + /// Bu özelliğe atanan sayı, piksel cinsinden kaymayı belirtir. Negatif bir sayı ek açıklamayı yukarı kaydırır ve pozitif bir sayı onu aşağı kaydırır. /// public int OffsetY { get; set; } = -1; - /// Ek açıklamanın metni veya görüntüsü (piksel olarak belirtilir) çevresinde boÅŸ bir alan oluÅŸturmak için paddingTopBottom ile birlikte kullanılır. + /// Ek açıklamanın metni veya görüntüsü (piksel olarak belirtilir) çevresinde boş bir alan oluşturmak için paddingTopBottom ile birlikte kullanılır. /// public int PaddingLeftRight { get; set; } = 10; - /// paddingLeftRight ile birlikte, ek açıklama metninin veya görüntüsünün çevresinde boÅŸ bir alan oluÅŸturur; piksel cinsinden belirtilir. + /// paddingLeftRight ile birlikte, ek açıklama metninin veya görüntüsünün çevresinde boş bir alan oluşturur; piksel cinsinden belirtilir. /// public int PaddingTopBottom { get; set; } = 10; - /// Ek açıklamayı bir seri noktasına tutturur. Nokta dizisinin adını kabul eder. + /// Ek açıklamayı bir seri noktasına tutturur. Nokta dizisinin adını kabul eder. /// public string Series { get; set; } - /// Ek açıklamanın metnini belirtir. Yalnızca tür "metin" ise geçerlidir. + /// Ek açıklamanın metnini belirtir. Yalnızca tür "metin" ise geçerlidir. /// public string Text { get; set; } - /// Ek açıklama araç ipucunun etkin olup olmadığını belirtir. + /// Ek açıklama araç ipucunun etkin olup olmadığını belirtir. /// public bool TooltipEnabled { get; set; } = true; - /// Ek açıklamanın metin mi, resim mi yoksa ÅŸablon mu görüntülediÄŸini belirtir. Bu gerekli bir ayardır. + /// Ek açıklamanın metin mi, resim mi yoksa şablon mu görüntülediğini belirtir. Bu gerekli bir ayardır. /// Accepted Values: 'text' | 'image' | 'custom' /// Default Value: undefined /// public string Type { get; set; } - /// Ek açıklamayı belirtilen deÄŸer eksenindeki bir deÄŸere göre konumlandırır. + /// Ek açıklamayı belirtilen değer eksenindeki bir değere göre konumlandırır. /// public string Value { get; set; } - /// Ek açıklamanın geniÅŸliÄŸini piksel cinsinden belirtir. + /// Ek açıklamanın genişliğini piksel cinsinden belirtir. /// public int Width { get; set; } - /// Ek açıklama metninin tek bir satıra sığmaması durumunda nasıl kaydırılacağını belirtir. + /// Ek açıklama metninin tek bir satıra sığmaması durumunda nasıl kaydırılacağını belirtir. /// Accepted Values: 'normal' | 'breakWord' | 'none' - /// normal : Metin yalnızca izin verilen kesme noktalarında (örneÄŸin, iki kelime arasındaki boÅŸluk) kesiliyor. + /// normal : Metin yalnızca izin verilen kesme noktalarında (örneğin, iki kelime arasındaki boşluk) kesiliyor. /// breakWord : Words can be broken if there are no available breakpoints in the line. - /// none : Sözcük kaydırma devre dışı. + /// none : Sözcük kaydırma devre dışı. /// public string WordWrap { get; set; } = "normal"; - /// Ek açıklamanın merkezini belirli bir piksel koordinatına konumlandırmak için y ile birlikte kullanılır. (0, 0), UI bileÅŸeninin sol üst köşesidir. + /// Ek açıklamanın merkezini belirli bir piksel koordinatına konumlandırmak için y ile birlikte kullanılır. (0, 0), UI bileşeninin sol üst köşesidir. /// public int X { get; set; } - /// Ek açıklamanın merkezini belirli bir piksel koordinatına konumlandırmak için x ile birlikte kullanılır. (0, 0), UI bileÅŸeninin sol üst köşesidir. + /// Ek açıklamanın merkezini belirli bir piksel koordinatına konumlandırmak için x ile birlikte kullanılır. (0, 0), UI bileşeninin sol üst köşesidir. /// public int Y { get; set; } diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartCommonAxisDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartCommonAxisDto.cs index 11084dc7..0918a8ac 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartCommonAxisDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartCommonAxisDto.cs @@ -11,18 +11,18 @@ public class ChartCommonAxisDto } public ChartAxisGridDto Grid { get; set; } - /// Ana eksen iÅŸaretlerinin görünümünü yapılandırır. - /// Şimdilik sadece string olaran implemen edildi, ihtiyaç olması durumunda ChartTitleDto benzeri bir nesne ile deÄŸiÅŸtirilebilir + /// Ana eksen işaretlerinin görünümünü yapılandırır. + /// Şimdilik sadece string olaran implemen edildi, ihtiyaç olması durumunda ChartTitleDto benzeri bir nesne ile değiştirilebilir /// public string Title { get; set; } - /// Eksen çizgisini görünür yapar. + /// Eksen çizgisini görünür yapar. /// public bool Visible { get; set; } = true; - /// Eksen çizgisinin geniÅŸliÄŸini piksel cinsinden belirtir. + /// Eksen çizgisinin genişliğini piksel cinsinden belirtir. /// public int Width { get; set; } = 1; - // ihtiyaç olunca açılacak proptert ler + // ihtiyaç olunca açılacak proptert ler // aggregatedPointsPosition // allowDecimals diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartCommonDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartCommonDto.cs index 8bd207e9..c62225f4 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartCommonDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartCommonDto.cs @@ -2,40 +2,40 @@ public class ChartCommonDto { - /// Bağımsız deÄŸiÅŸken ekseni yakınlaÅŸtırılırken veya kaydırılırken deÄŸer ekseninin visualRange deÄŸerinin ayarlanıp ayarlanmadığını belirtir. + /// Bağımsız değişken ekseni yakınlaştırılırken veya kaydırılırken değer ekseninin visualRange değerinin ayarlanıp ayarlanmadığını belirtir. /// public bool AdjustOnZoom { get; set; } = true; - /// Grafik kabının arka planını renklendirir. - /// Not: HiddenInput olarak etiketlenmesinin sebebi renk seçimi için farklı bir editör kullanılmasından dolayıdır + /// Grafik kabının arka planını renklendirir. + /// Not: HiddenInput olarak etiketlenmesinin sebebi renk seçimi için farklı bir editör kullanılmasından dolayıdır /// Default Value: '#FFFFFF' /// public string ContainerBackgroundColor { get; set; } = "#FFFFFF"; - /// Serileri ve öğelerini renklendirmek için kullanılacak paleti ayarlar. + /// Serileri ve öğelerini renklendirmek için kullanılacak paleti ayarlar. /// Accepted Values: 'Bright' | 'Harmony Light' | 'Ocean' | 'Pastel' | 'Soft' | 'Soft Pastel' | 'Vintage' | 'Violet' | 'Carmine' | 'Dark Moon' | 'Dark Violet' | 'Green Mist' | 'Soft Blue' | 'Material' | 'Office' /// Default Value: 'Material' /// public string Palette { get; set; } = "Material"; - /// Sayıları seri sayısından (Chart UI bileÅŸeninde) veya bir serideki noktalardan (PieChart UI bileÅŸeninde) az olduÄŸunda, paletteki renklerle ne yapılacağını belirtir. + /// Sayıları seri sayısından (Chart UI bileşeninde) veya bir serideki noktalardan (PieChart UI bileşeninde) az olduğunda, paletteki renklerle ne yapılacağını belirtir. /// Accepted Values: 'alternate' | 'blend' | 'extrapolate' /// Default Value: 'blend' - /// blend : İki komÅŸu rengin bir karışımını oluÅŸturur ve paletteki bu renklerin arasına ekler. - /// alternate : Sırayla normal, açık ve koyu tonlarını deÄŸiÅŸtirerek tüm palet renklerini tekrarlar. - /// extrapolate : Gölgelerini yavaÅŸ yavaÅŸ karanlıktan aydınlığa deÄŸiÅŸtirerek tüm palet renklerini tekrarlar. + /// blend : İki komşu rengin bir karışımını oluşturur ve paletteki bu renklerin arasına ekler. + /// alternate : Sırayla normal, açık ve koyu tonlarını değiştirerek tüm palet renklerini tekrarlar. + /// extrapolate : Gölgelerini yavaş yavaş karanlıktan aydınlığa değiştirerek tüm palet renklerini tekrarlar. /// public string PaletteExtensionMode { get; set; } = "blend"; - /// PanesDto dolu ise hangisinin default olduÄŸunu belirleyen isimdir. PanesDto[0].name ismi + /// PanesDto dolu ise hangisinin default olduğunu belirleyen isimdir. PanesDto[0].name ismi /// public string DefaultPane { get; set; } - /// UI bileÅŸeninin kullanıcı etkileÅŸimine yanıt verip vermediÄŸini belirtir. + /// UI bileşeninin kullanıcı etkileşimine yanıt verip vermediğini belirtir. /// public bool Disabled { get; set; } - /// UI bileÅŸeninin kullandığı temanın adını ayarlar. + /// UI bileşeninin kullandığı temanın adını ayarlar. /// Accepted Values: 'generic.dark' | 'generic.light' | 'generic.contrast' | 'generic.carmine' | 'generic.darkmoon' | 'generic.darkviolet' | 'generic.greenmist' | 'generic.softblue' | 'material.blue.light' | 'material.lime.light' | 'material.orange.light' | 'material.purple.light' | 'material.teal.light' /// public string Theme { get; set; } = "generic.light"; - // diÄŸer eklenebilecek property ler + // diğer eklenebilecek property ler // autoHidePointMarkers // barGroupPadding diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartCommonPaneDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartCommonPaneDto.cs index 57c92da5..bcec58a7 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartCommonPaneDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartCommonPaneDto.cs @@ -1,11 +1,11 @@ namespace Erp.Platform.ListForms; -/// Bir grafikteki tüm bölmeler için ortak ayarları tanımlar. +/// Bir grafikteki tüm bölmeler için ortak ayarları tanımlar. /// public class ChartCommonPaneDto { - /// Bölmenin arka planının rengini belirtir. - /// Bu özellik aÅŸağıdaki renkleri destekler: + /// Bölmenin arka planının rengini belirtir. + /// Bu özellik aşağıdaki renkleri destekler: /// Hexadecimal colors /// RGB colors /// RGBA colors diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartCommonSeriesSettingsDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartCommonSeriesSettingsDto.cs index 8fe4b8b2..fe904f77 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartCommonSeriesSettingsDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartCommonSeriesSettingsDto.cs @@ -1,31 +1,31 @@ namespace Erp.Platform.ListForms; -/// Grafikteki tüm seriler için ortak olan ayarları belirtir. +/// Grafikteki tüm seriler için ortak olan ayarları belirtir. /// public class ChartCommonSeriesSettingsDto { - /// Hangi veri kaynağı alanının seri noktaları için bağımsız deÄŸiÅŸkenler saÄŸladığını belirtir + /// Hangi veri kaynağı alanının seri noktaları için bağımsız değişkenler sağladığını belirtir /// Default Value: 'arg' - /// Temaler ile kullanılamaz! + /// Temaler ile kullanılamaz! /// public string ArgumentField { get; set; } = "arg"; - /// Seriyi bir deÄŸer eksenine baÄŸlar. + /// Seriyi bir değer eksenine bağlar. /// public string Axis { get; set; } - /// Aynı bağımsız deÄŸiÅŸkene sahip çubukların üst üste binmesi için çubuk serilerini gruplandırmanıza izin verir. - /// Bu üye ÅŸu seriler tarafından kullanılır: BarSeries, RangeBarSeries + /// Aynı bağımsız değişkene sahip çubukların üst üste binmesi için çubuk serilerini gruplandırmanıza izin verir. + /// Bu üye şu seriler tarafından kullanılır: BarSeries, RangeBarSeries /// public string BarOverlapGroup { get; set; } - /// Göreli birimleri kullanarak bir serideki tüm çubukların dolgusunu ve dolayısıyla geniÅŸliÄŸini kontrol eder. barWidth özelliÄŸi ayarlanmışsa yoksayılır. - /// Bu üye ÅŸu seriler tarafından kullanılır: BarSeries, StackedBarSeries, FullStackedBarSeries, RangeBarSeries + /// Göreli birimleri kullanarak bir serideki tüm çubukların dolgusunu ve dolayısıyla genişliğini kontrol eder. barWidth özelliği ayarlanmışsa yoksayılır. + /// Bu üye şu seriler tarafından kullanılır: BarSeries, StackedBarSeries, FullStackedBarSeries, RangeBarSeries /// public int BarPadding { get; set; } - /// Bir dizideki tüm çubuklar için piksel cinsinden ölçülen sabit bir geniÅŸlik belirtir. barPadding özelliÄŸine göre önceliklidir. - /// Bu üye ÅŸu seriler tarafından kullanılır: BarSeries, StackedBarSeries, FullStackedBarSeries, RangeBarSeries + /// Bir dizideki tüm çubuklar için piksel cinsinden ölçülen sabit bir genişlik belirtir. barPadding özelliğine göre önceliklidir. + /// Bu üye şu seriler tarafından kullanılır: BarSeries, StackedBarSeries, FullStackedBarSeries, RangeBarSeries /// public int BarWidth { get; set; } /// Serinin rengini belirtir. - /// Bu özellik aÅŸağıdaki renkleri destekler: + /// Bu özellik aşağıdaki renkleri destekler: /// Hexadecimal colors /// RGB colors /// RGBA colors @@ -34,67 +34,67 @@ public class ChartCommonSeriesSettingsDto /// Paint server address /// public string Color { get; set; } - /// Çubukların yuvarlak görünmesini saÄŸlar. Yalnızca çubuk benzeri seriler için geçerlidir. + /// Çubukların yuvarlak görünmesini sağlar. Yalnızca çubuk benzeri seriler için geçerlidir. /// Default Value: 0 - /// Bu üye ÅŸu seriler tarafından kullanılır: BarSeries, StackedBarSeries, FullStackedBarSeries, RangeBarSeries + /// Bu üye şu seriler tarafından kullanılır: BarSeries, StackedBarSeries, FullStackedBarSeries, RangeBarSeries /// public int CornerRadius { get; set; } = 0; - /// Açıklamanın kenarlığı için bir tire stili ayarlar + /// Açıklamanın kenarlığı için bir tire stili ayarlar /// Accepted Values: 'dash' | 'dot' | 'longDash' | 'solid' /// Default Value: 'solid' - /// solid : Kenarlık düz, sürekli bir çizgidir - /// longDash : Kenarlık, uzun çizgiler kullanılarak görüntülenir - /// dash : Kenarlık, tireler kullanılarak görüntülenir - /// dot : Kenarlık noktalar kullanılarak görüntülenir - /// Any combination of 'longDash', 'dash' and 'dot : Kenarlık, belirtilen kombinasyon tekrarlanarak görüntülenir. ÖrneÄŸin, 'dashdotdash'. + /// solid : Kenarlık düz, sürekli bir çizgidir + /// longDash : Kenarlık, uzun çizgiler kullanılarak görüntülenir + /// dash : Kenarlık, tireler kullanılarak görüntülenir + /// dot : Kenarlık noktalar kullanılarak görüntülenir + /// Any combination of 'longDash', 'dash' and 'dot : Kenarlık, belirtilen kombinasyon tekrarlanarak görüntülenir. Örneğin, 'dashdotdash'. /// public string DashStyle { get; set; } = "solid"; - /// Serinin boÅŸ veri noktalarını göz ardı edip etmeyeceÄŸini belirtir. - /// BoÅŸ deÄŸere sahip veri noktaları, gerçek seri noktaları üretmez. Bu nedenle eksik olması gereken yerlerde gereksiz boÅŸluklarla seriler çizilebilir. Bu boÅŸlukları kaldırmak için, ignoreEmptyPoints özelliÄŸini true olarak ayarlayın. + /// Serinin boş veri noktalarını göz ardı edip etmeyeceğini belirtir. + /// Boş değere sahip veri noktaları, gerçek seri noktaları üretmez. Bu nedenle eksik olması gereken yerlerde gereksiz boşluklarla seriler çizilebilir. Bu boşlukları kaldırmak için, ignoreEmptyPoints özelliğini true olarak ayarlayın. /// public bool IgnoreEmptyPoints { get; set; } = false; - /// Serinin hangi bölmeye ait olması gerektiÄŸini belirtir. Bölmenin adını kabul eder. - /// Bilgilendirme: Pane dolu ise chart ın PanesDto Property si aynı isimde bir elemanı mutlaka içermelidir + /// Serinin hangi bölmeye ait olması gerektiğini belirtir. Bölmenin adını kabul eder. + /// Bilgilendirme: Pane dolu ise chart ın PanesDto Property si aynı isimde bir elemanı mutlaka içermelidir /// public string Pane { get; set; } - /// rangeValue2Field özelliÄŸiyle birleÅŸtiÄŸinde, hangi veri kaynağı alanının aralık benzeri bir seri için deÄŸerler saÄŸladığını belirtir. - /// Bu üye aÅŸağıdaki seriler tarafından kullanılır: + /// rangeValue2Field özelliğiyle birleştiğinde, hangi veri kaynağı alanının aralık benzeri bir seri için değerler sağladığını belirtir. + /// Bu üye aşağıdaki seriler tarafından kullanılır: /// RangeBarSeries, RangeAreaSeries /// public string RangeValue1Field { get; set; } = "val1"; - /// rangeValue1Field özelliÄŸiyle birleÅŸtiÄŸinde, hangi veri kaynağı alanının aralık benzeri bir seri için deÄŸerler saÄŸladığını belirtir. - /// Bu üye aÅŸağıdaki seriler tarafından kullanılır: + /// rangeValue1Field özelliğiyle birleştiğinde, hangi veri kaynağı alanının aralık benzeri bir seri için değerler sağladığını belirtir. + /// Bu üye aşağıdaki seriler tarafından kullanılır: /// RangeBarSeries, RangeAreaSeries /// public string RangeValue2Field { get; set; } = "val2"; - /// Kullanıcı bir dizi seçtiÄŸinde vurgulanacak dizi öğelerini belirtir. + /// Kullanıcı bir dizi seçtiğinde vurgulanacak dizi öğelerini belirtir. /// Accepted Values: 'allArgumentPoints' | 'allSeriesPoints' | 'excludePoints' | 'includePoints' | 'none' | 'onlyPoint' - /// Seri tipine baÄŸlı olarak bu özellik farklı deÄŸerler kabul eder. Bilgi için SeriTipleri bölümünü (https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxChart/Series_Types/) ziyaret edin, kullanılan seri tipini seçin ve onun selectionMode özellik açıklamasına bakın + /// Seri tipine bağlı olarak bu özellik farklı değerler kabul eder. Bilgi için SeriTipleri bölümünü (https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxChart/Series_Types/) ziyaret edin, kullanılan seri tipini seçin ve onun selectionMode özellik açıklamasına bakın /// public string SelectionMode { get; set; } = "none"; - /// Dizinin lejantta gösterilip gösterilmeyeceÄŸini belirtir. + /// Dizinin lejantta gösterilip gösterilmeyeceğini belirtir. /// public bool ShowInLegend { get; set; } = true; - /// Seri türünü ayarlar + /// Seri türünü ayarlar /// Default Value: 'line' /// Accepted Values: 'area' | 'bar' | 'bubble' | 'candlestick' | 'fullstackedarea' | 'fullstackedbar' | 'fullstackedline' | 'fullstackedspline' | 'fullstackedsplinearea' | 'line' | 'rangearea' | 'rangebar' | 'scatter' | 'spline' | 'splinearea' | 'stackedarea' | 'stackedbar' | 'stackedline' | 'stackedspline' | 'stackedsplinearea' | 'steparea' | 'stepline' | 'stock' /// public string Type { get; set; } - /// Hangi veri kaynağı alanının seri noktaları için deÄŸerler saÄŸladığını belirtir. - /// Bu üye aÅŸağıdaki seriler tarafından kullanılır: + /// Hangi veri kaynağı alanının seri noktaları için değerler sağladığını belirtir. + /// Bu üye aşağıdaki seriler tarafından kullanılır: /// LineSeries, StackedLineSeries,FullStackedLineSeries,StackedSplineSeries,FullStackedSplineSeries, /// SplineSeries,StepLineSeries,AreaSeries,StackedAreaSeries,Sta,kedSplineAreaSeries,FullStackedAreaSeries, /// FullStackedSplineAreaSeries,SplineAreaSeries,StepAreaSeries,ScatterSeries,BarSeries,StackedBarSeries, /// FullStackedBarSeries,BubbleSeries, /// public string ValueField { get; set; } - /// Serinin görünür olup olmayacağını belirtir. + /// Serinin görünür olup olmayacağını belirtir. /// public bool Visible { get; set; } = true; - /// Seri çizgisinin geniÅŸliÄŸini piksel cinsinden belirtir. Yalnızca çizgi benzeri seriler için geçerlidir. + /// Seri çizgisinin genişliğini piksel cinsinden belirtir. Yalnızca çizgi benzeri seriler için geçerlidir. /// Default Value: 2 - /// Bu üye aÅŸağıdaki seriler tarafından kullanılır: + /// Bu üye aşağıdaki seriler tarafından kullanılır: /// LineSeries, StackedLineSeries, FullStackedLineSeries, StackedSplineSeries, FullStackedSplineSeries, SplineSeries, StepLineSeries, CandleStickSeries, StockSeries /// public int Width { get; set; } = 2; @@ -125,9 +125,9 @@ public class ChartCommonSeriesSettingsDto // point {} // rangearea {} // rangebar {} - // reduction {} // financial seriler için indirgeme özelliklerini belirtir. + // reduction {} // financial seriler için indirgeme özelliklerini belirtir. // scatter {} - // slectionStyle // Bir kullanıcı seçtiÄŸinde seri tarafından benimsenen görünümü yapılandırır. + // slectionStyle // Bir kullanıcı seçtiğinde seri tarafından benimsenen görünümü yapılandırır. // sizeField // spline {} // splinearea {} diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartCrosshairDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartCrosshairDto.cs index 6c8f452d..2585fc58 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartCrosshairDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartCrosshairDto.cs @@ -9,8 +9,8 @@ public class ChartCrosshairDto VerticalLine = new ChartCrosshairLineDto(); } - /// Artı iÅŸareti çizgilerinin rengini belirtir. - /// Bu özellik aÅŸağıdaki renkleri destekler: + /// Artı işareti çizgilerinin rengini belirtir. + /// Bu özellik aşağıdaki renkleri destekler: /// Hexadecimal colors /// RGB colors /// RGBA colors @@ -19,34 +19,34 @@ public class ChartCrosshairDto /// Paint server address /// public string Color { get; set; } = "#f05b41"; - /// Artı iÅŸareti çizgilerinin kısa çizgi stilini belirtir. + /// Artı işareti çizgilerinin kısa çizgi stilini belirtir. /// Accepted Values: 'dash' | 'dot' | 'longDash' | 'solid' /// Default Value: 'solid' - /// solid : Kenarlık düz, sürekli bir çizgidir - /// longDash : Kenarlık, uzun çizgiler kullanılarak görüntülenir - /// dash : Kenarlık, tireler kullanılarak görüntülenir - /// dot : Kenarlık noktalar kullanılarak görüntülenir - /// Any combination of 'longDash', 'dash' and 'dot : Kenarlık, belirtilen kombinasyon tekrarlanarak görüntülenir. ÖrneÄŸin, 'dashdotdash'. + /// solid : Kenarlık düz, sürekli bir çizgidir + /// longDash : Kenarlık, uzun çizgiler kullanılarak görüntülenir + /// dash : Kenarlık, tireler kullanılarak görüntülenir + /// dot : Kenarlık noktalar kullanılarak görüntülenir + /// Any combination of 'longDash', 'dash' and 'dot : Kenarlık, belirtilen kombinasyon tekrarlanarak görüntülenir. Örneğin, 'dashdotdash'. /// public string DashStyle { get; set; } = "dot"; - /// Artı iÅŸaretini etkinleÅŸtirir. + /// Artı işaretini etkinleştirir. /// public bool Enabled { get; set; } - ///// Sürükleme kutusunun saydamlığını belirtir. - ///// 0 - 1 aralığındadır + ///// Sürükleme kutusunun saydamlığını belirtir. + ///// 0 - 1 aralığındadır ///// //public double Opacity { get; set; } = 1; - /// Artı iÅŸareti çizgilerinin geniÅŸliÄŸini belirtir. + /// Artı işareti çizgilerinin genişliğini belirtir. /// public int Width { get; set; } = 1; - /// Yatay çapraz çizgiyi ayrı ayrı yapılandırır. + /// Yatay çapraz çizgiyi ayrı ayrı yapılandırır. /// public ChartCrosshairLineDto HorizontalLine { get; set; } - /// Artı iÅŸareti etiketlerini yapılandırır. + /// Artı işareti etiketlerini yapılandırır. /// public ChartLabelDto Label { get; set; } - /// Dikey artı çizgisini ayrı ayrı yapılandırır. + /// Dikey artı çizgisini ayrı ayrı yapılandırır. /// public ChartCrosshairLineDto VerticalLine { get; set; } } diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartDragBoxStyle.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartDragBoxStyle.cs index 3033f081..c2397f3e 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartDragBoxStyle.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartDragBoxStyle.cs @@ -2,8 +2,8 @@ public class ChartDragBoxStyle { - /// Sürükleme kutusunun rengini belirtir. - /// Bu özellik aÅŸağıdaki renkleri destekler: + /// Sürükleme kutusunun rengini belirtir. + /// Bu özellik aşağıdaki renkleri destekler: /// Hexadecimal colors /// RGB colors /// RGBA colors @@ -12,8 +12,8 @@ public class ChartDragBoxStyle /// Paint server address /// public string Color { get; set; } - /// Sürükleme kutusunun saydamlığını belirtir. - /// 0 - 1 aralığındadır + /// Sürükleme kutusunun saydamlığını belirtir. + /// 0 - 1 aralığındadır /// public double Opacity { get; set; } } diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartExportDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartExportDto.cs index bc94443d..08878315 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartExportDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartExportDto.cs @@ -2,8 +2,8 @@ public class ChartExportDto { - /// Ortaya çıkan dosya veya belgedeki saydam bölgeleri dolduracak rengi belirtir. - /// Bu özellik aÅŸağıdaki renkleri destekler: + /// Ortaya çıkan dosya veya belgedeki saydam bölgeleri dolduracak rengi belirtir. + /// Bu özellik aşağıdaki renkleri destekler: /// Hexadecimal colors /// RGB colors /// RGBA colors @@ -12,25 +12,25 @@ public class ChartExportDto /// Paint server address /// public string BackgroundColor { get; set; } = "#ffffff"; - /// UI bileÅŸeninde istemci tarafında dışa aktarmayı etkinleÅŸtirir. + /// UI bileşeninde istemci tarafında dışa aktarmayı etkinleştirir. /// public bool Enabled { get; set; } - /// UI bileÅŸeninde istemci tarafında dışa aktarmayı etkinleÅŸtirir. + /// UI bileşeninde istemci tarafında dışa aktarmayı etkinleştirir. /// public bool AllowExportSelectedData { get; set; } - ///// Dışa aktarma formatı belirtir. + ///// Dışa aktarma formatı belirtir. ///// Desteklenen formatlar: 'GIF' | 'JPEG' | 'PDF' | 'PNG' | 'SVG' ///// //public string Formats { get; set; } = "['PNG', 'PDF', 'JPEG', 'SVG', 'GIF']"; - /// Dışa aktarılan UI bileÅŸeninin etrafına boÅŸ bir alan ekler; piksel cinsinden ölçülür. + /// Dışa aktarılan UI bileşeninin etrafına boş bir alan ekler; piksel cinsinden ölçülür. /// public int Margin { get; set; } = 10; - /// UI bileÅŸeninde yazdırma özelliÄŸini etkinleÅŸtirir. Yalnızca export.enabled özelliÄŸi doÄŸruysa geçerlidir. /// + /// UI bileşeninde yazdırma özelliğini etkinleştirir. Yalnızca export.enabled özelliği doğruysa geçerlidir. /// /// public bool PrintingEnabled { get; set; } = true; - // svgToCanvas // HTML tuvalinde SVG iÅŸaretlemesini iÅŸleyen bir iÅŸlev. Özel SVG öğelerini (örneÄŸin, markerTemplate) dışa aktarmak için gereklidir. + // svgToCanvas // HTML tuvalinde SVG işaretlemesini işleyen bir işlev. Özel SVG öğelerini (örneğin, markerTemplate) dışa aktarmak için gereklidir. } diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartFontDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartFontDto.cs index f66333a8..3c177b8d 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartFontDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartFontDto.cs @@ -1,11 +1,11 @@ namespace Erp.Platform.ListForms; -/// Artı iÅŸareti etiketleri için yazı tipi özelliklerini belirtir. +/// Artı işareti etiketleri için yazı tipi özelliklerini belirtir. /// public class ChartFontDto { - /// Yazı tipi rengini belirtir. - /// Bu özellik aÅŸağıdaki renkleri destekler: + /// Yazı tipi rengini belirtir. + /// Bu özellik aşağıdaki renkleri destekler: /// Hexadecimal colors /// RGB colors /// RGBA colors @@ -14,19 +14,19 @@ public class ChartFontDto /// Paint server address /// public string Color { get; set; } = "#FFFFFF"; - /// Yazı tipi ailesini belirtir. + /// Yazı tipi ailesini belirtir. /// Default Value: '"Segoe UI", "Helvetica Neue", "Trebuchet MS", Verdana, sans-serif' /// public string Family { get; set; } = "\"Segoe UI\", \"Helvetica Neue\", \"Trebuchet MS\", Verdana, sans-serif"; - ///// Yazı tipi saydamlığını belirtir. - ///// 0 - 1 aralığındadır + ///// Yazı tipi saydamlığını belirtir. + ///// 0 - 1 aralığındadır ///// //public double Opacity { get; set; } = 1; - /// Yazı tipi boyutunu belirtir. + /// Yazı tipi boyutunu belirtir. /// public int Size { get; set; } = 12; /// - /// Yazı tipi ağırlığını belirtir. 100'lük artışlarla 100 ile 900 arasındaki deÄŸerleri kabul eder. Daha yüksek deÄŸerler kalınlığı artırır. + /// Yazı tipi ağırlığını belirtir. 100'lük artışlarla 100 ile 900 arasındaki değerleri kabul eder. Daha yüksek değerler kalınlığı artırır. /// public int Weight { get; set; } = 400; } diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartLabelDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartLabelDto.cs index ac9d2c9b..e43231b4 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartLabelDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartLabelDto.cs @@ -7,8 +7,8 @@ public class ChartLabelDto Font = new ChartFontDto(); } - /// Etiketin arka planını boyar. - /// Bu özellik aÅŸağıdaki renkleri destekler: + /// Etiketin arka planını boyar. + /// Bu özellik aşağıdaki renkleri destekler: /// Hexadecimal colors /// RGB colors /// RGBA colors @@ -17,13 +17,13 @@ public class ChartLabelDto /// Paint server address /// public string BackgroundColor { get; set; } = "#f05b41"; - /// görüntülenen metni özelleÅŸtirir. - /// Temalarda kullanılamaz. + /// görüntülenen metni özelleştirir. + /// Temalarda kullanılamaz. /// public string CustomizeText { get; set; } public ChartFontDto Font { get; set; } public bool Visible { get; set; } - /// Artı iÅŸareti etiketinde görüntülenmeden önce bir nokta deÄŸerini/bağımsız deÄŸiÅŸkeni biçimlendirir. /// + /// Artı işareti etiketinde görüntülenmeden önce bir nokta değerini/bağımsız değişkeni biçimlendirir. /// /// Accepted Values: 'billions' | 'currency' | 'day' | 'decimal' | 'exponential' | 'fixedPoint' | 'largeNumber' | 'longDate' | 'longTime' | 'millions' | 'millisecond' | 'month' | 'monthAndDay' | 'monthAndYear' | 'percent' | 'quarter' | 'quarterAndYear' | 'shortDate' | 'shortTime' | 'thousands' | 'trillions' | 'year' | 'dayOfWeek' | 'hour' | 'longDateLongTime' | 'minute' | 'second' | 'shortDateShortTime' /// public string Format { get; set; } diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartLegendDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartLegendDto.cs index 41eec470..4994508b 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartLegendDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartLegendDto.cs @@ -7,9 +7,9 @@ public class ChartLegendDto Border = new ChartBorderDto(); } - /// Legend in arka planını renklendirir + /// Legend in arka planını renklendirir /// Default Value: undefined - /// Bu özellik aÅŸağıdaki renkleri destekler: + /// Bu özellik aşağıdaki renkleri destekler: /// Hexadecimal colors /// RGB colors /// RGBA colors @@ -18,32 +18,32 @@ public class ChartLegendDto /// Paint server address /// public string BackgroundColor { get; set; } - /// Legend in kenarlığını yapılandırır + /// Legend in kenarlığını yapılandırır /// public ChartBorderDto Border { get; set; } public int ColumnCount { get; set; } - /// Gösterge öğelerini dikey (bir sütunda) veya yatay (bir satırda) olarak düzenler. legend.horizontalAlignment "center" ise varsayılan deÄŸer "horizontal" olur. Aksi takdirde, "dikey" dir + /// Gösterge öğelerini dikey (bir sütunda) veya yatay (bir satırda) olarak düzenler. legend.horizontalAlignment "center" ise varsayılan değer "horizontal" olur. Aksi takdirde, "dikey" dir /// Accepted Values: 'horizontal' | 'vertical' /// public string Orientation { get; set; } = "vertical"; - /// Göstergenin grafiÄŸin çiziminin dışında mı yoksa içinde mi bulunduÄŸunu belirtir + /// Göstergenin grafiğin çiziminin dışında mı yoksa içinde mi bulunduğunu belirtir /// Accepted Values: 'inside' | 'outside' /// public string Position { get; set; } = "outside"; - /// Gösterge öğelerini birkaç sıra halinde düzenler. + /// Gösterge öğelerini birkaç sıra halinde düzenler. /// public int RowCount { get; set; } = 0; - /// Açıklama baÅŸlığını yapılandırır - /// ihtiyaç olması durumunda detaylandırmak için TitleDto ile deÄŸiÅŸtirilebilir + /// Açıklama başlığını yapılandırır + /// ihtiyaç olması durumunda detaylandırmak için TitleDto ile değiştirilebilir /// public string Title { get; set; } - /// Göstergenin görünürlüğünü belirtir + /// Göstergenin görünürlüğünü belirtir /// public bool Visible { get; set; } = true; - ////İhtiyaç olması durumunda açılacak diÄŸer property ler + ////İhtiyaç olması durumunda açılacak diğer property ler - ///// horizontalAlignment ile birlikte göstergenin konumunu belirtir + ///// horizontalAlignment ile birlikte göstergenin konumunu belirtir ///// Accepted Values: 'bottom' | 'top' ///// //public string VerticalAlignment { get; set; } = "top"; @@ -62,7 +62,7 @@ public class ChartLegendDto //public string CustomizeText { get; set; } //public string CustomizeItems { get; set; } //public string CustomizeHint { get; set; } - ///// Öğe sütunları arasında piksel cinsinden boÅŸ bir alan belirtir + ///// Öğe sütunları arasında piksel cinsinden boş bir alan belirtir ///// //public int ColumnItemSpacing { get; set; } = 20; diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartPanesDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartPanesDto.cs index d4cc33b5..43573182 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartPanesDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartPanesDto.cs @@ -1,16 +1,16 @@ namespace Erp.Platform.ListForms; -/// Bölme, dizi içeren bir grafik alanıdır. Bir grafikte çok sayıda seri varsa, bunlar birden çok bölme arasında dağıtılabilir. +/// Bölme, dizi içeren bir grafik alanıdır. Bir grafikte çok sayıda seri varsa, bunlar birden çok bölme arasında dağıtılabilir. /// public class ChartPanesDto { - /// Bölmenin arka planının rengini belirtir. + /// Bölmenin arka planının rengini belirtir. /// public string BackgroundColor { get; set; } - /// Çok bölmeli bir grafikte bölmenin yüksekliÄŸini (veya grafik döndürüldüğünde geniÅŸliÄŸini) belirtir. + /// Çok bölmeli bir grafikte bölmenin yüksekliğini (veya grafik döndürüldüğünde genişliğini) belirtir. /// public int Height { get; set; } = 250; - /// Bölmenin adını belirtir. + /// Bölmenin adını belirtir. /// public string Name { get; set; } diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartScrollBarDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartScrollBarDto.cs index 9d93885e..4a649b4d 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartScrollBarDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartScrollBarDto.cs @@ -2,8 +2,8 @@ public class ChartScrollBarDto { - /// ScrollBar ın kenarlığını renklendirir. - /// Bu özellik aÅŸağıdaki renkleri destekler: + /// ScrollBar ın kenarlığını renklendirir. + /// Bu özellik aşağıdaki renkleri destekler: /// Hexadecimal colors /// RGB colors /// RGBA colors @@ -12,25 +12,25 @@ public class ChartScrollBarDto /// Paint server address /// public string Color { get; set; } = "gray"; - /// Kaydırma çubuÄŸu ile grafiÄŸin çizimi arasındaki boÅŸluÄŸu piksel cinsinden belirtir. + /// Kaydırma çubuğu ile grafiğin çizimi arasındaki boşluğu piksel cinsinden belirtir. /// public int Offset { get; set; } = 5; - ///// Kaydırma çubuÄŸunun opaklığını belirtir. + ///// Kaydırma çubuğunun opaklığını belirtir. ///// ///// //public double Opacity { get; set; } - /// Grafikteki kaydırma çubuÄŸunun konumunu belirtir. + /// Grafikteki kaydırma çubuğunun konumunu belirtir. /// Accepted Values: 'bottom' | 'left' | 'right' | 'top' /// Default Value: 'top' - /// GrafiÄŸin döndürülüp döndürülmediÄŸine baÄŸlı olarak bu özellik farklı deÄŸerler kabul eder. DöndürülmemiÅŸ bir grafikte, bu özelliÄŸe 'üst' veya 'alt' atayabilirsiniz. Döndürülmüş bir grafikte, bu özellik ya 'sol' ya da 'saÄŸ'ı kabul eder. + /// Grafiğin döndürülüp döndürülmediğine bağlı olarak bu özellik farklı değerler kabul eder. Döndürülmemiş bir grafikte, bu özelliğe 'üst' veya 'alt' atayabilirsiniz. Döndürülmüş bir grafikte, bu özellik ya 'sol' ya da 'sağ'ı kabul eder. /// public string Position { get; set; } = "top"; - /// Kaydırma çubuÄŸunun görünüp görünmeyeceÄŸini belirtir. + /// Kaydırma çubuğunun görünüp görünmeyeceğini belirtir. /// public bool Visible { get; set; } - /// Kaydırma çubuÄŸunun geniÅŸliÄŸini piksel cinsinden belirtir. + /// Kaydırma çubuğunun genişliğini piksel cinsinden belirtir. /// public int Width { get; set; } = 10; } diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartSeriesDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartSeriesDto.cs index bb9a95e9..fa58829f 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartSeriesDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartSeriesDto.cs @@ -2,29 +2,29 @@ public class ChartSeriesDto { - /// Hangi veri kaynağı alanının seri noktaları için bağımsız deÄŸiÅŸkenler saÄŸladığını belirtir + /// Hangi veri kaynağı alanının seri noktaları için bağımsız değişkenler sağladığını belirtir /// Default Value: 'arg' - /// Temalar ile kullanılamaz! + /// Temalar ile kullanılamaz! /// public string ArgumentField { get; set; } = "arg"; - /// Seriyi bir deÄŸer eksenine baÄŸlar. + /// Seriyi bir değer eksenine bağlar. /// public string Axis { get; set; } - /// Aynı bağımsız deÄŸiÅŸkene sahip çubukların üst üste binmesi için çubuk serilerini gruplandırmanıza izin verir. - /// Bu üye ÅŸu seriler tarafından kullanılır: BarSeries, RangeBarSeries + /// Aynı bağımsız değişkene sahip çubukların üst üste binmesi için çubuk serilerini gruplandırmanıza izin verir. + /// Bu üye şu seriler tarafından kullanılır: BarSeries, RangeBarSeries /// public string BarOverlapGroup { get; set; } - /// Göreli birimleri kullanarak bir serideki tüm çubukların dolgusunu ve dolayısıyla geniÅŸliÄŸini kontrol eder. barWidth özelliÄŸi ayarlanmışsa yoksayılır. - /// Bu üye ÅŸu seriler tarafından kullanılır: BarSeries, StackedBarSeries, FullStackedBarSeries, RangeBarSeries + /// Göreli birimleri kullanarak bir serideki tüm çubukların dolgusunu ve dolayısıyla genişliğini kontrol eder. barWidth özelliği ayarlanmışsa yoksayılır. + /// Bu üye şu seriler tarafından kullanılır: BarSeries, StackedBarSeries, FullStackedBarSeries, RangeBarSeries /// public int BarPadding { get; set; } - /// Bir dizideki tüm çubuklar için piksel cinsinden ölçülen sabit bir geniÅŸlik belirtir. barPadding özelliÄŸine göre önceliklidir. - /// Bu üye ÅŸu seriler tarafından kullanılır: BarSeries, StackedBarSeries, FullStackedBarSeries, RangeBarSeries + /// Bir dizideki tüm çubuklar için piksel cinsinden ölçülen sabit bir genişlik belirtir. barPadding özelliğine göre önceliklidir. + /// Bu üye şu seriler tarafından kullanılır: BarSeries, StackedBarSeries, FullStackedBarSeries, RangeBarSeries /// public int BarWidth { get; set; } /// Serinin rengini belirtir. - /// Not: HiddenInput olarak etiketlenmesinin sebebi renk seçimi için farklı bir editör kullanılmasından dolayıdır - /// Bu özellik aÅŸağıdaki renkleri destekler: + /// Not: HiddenInput olarak etiketlenmesinin sebebi renk seçimi için farklı bir editör kullanılmasından dolayıdır + /// Bu özellik aşağıdaki renkleri destekler: /// Hexadecimal colors /// RGB colors /// RGBA colors @@ -33,70 +33,70 @@ public class ChartSeriesDto /// Paint server address /// public string Color { get; set; } - /// Çubukların yuvarlak görünmesini saÄŸlar. Yalnızca çubuk benzeri seriler için geçerlidir. + /// Çubukların yuvarlak görünmesini sağlar. Yalnızca çubuk benzeri seriler için geçerlidir. /// Default Value: 0 - /// Bu üye ÅŸu seriler tarafından kullanılır: BarSeries, StackedBarSeries, FullStackedBarSeries, RangeBarSeries + /// Bu üye şu seriler tarafından kullanılır: BarSeries, StackedBarSeries, FullStackedBarSeries, RangeBarSeries /// public int CornerRadius { get; set; } = 0; - /// Açıklamanın kenarlığı için bir tire stili ayarlar + /// Açıklamanın kenarlığı için bir tire stili ayarlar /// Accepted Values: 'dash' | 'dot' | 'longDash' | 'solid' /// Default Value: 'solid' - /// solid : Kenarlık düz, sürekli bir çizgidir - /// longDash : Kenarlık, uzun çizgiler kullanılarak görüntülenir - /// dash : Kenarlık, tireler kullanılarak görüntülenir - /// dot : Kenarlık noktalar kullanılarak görüntülenir - /// Any combination of 'longDash', 'dash' and 'dot : Kenarlık, belirtilen kombinasyon tekrarlanarak görüntülenir. ÖrneÄŸin, 'dashdotdash'. + /// solid : Kenarlık düz, sürekli bir çizgidir + /// longDash : Kenarlık, uzun çizgiler kullanılarak görüntülenir + /// dash : Kenarlık, tireler kullanılarak görüntülenir + /// dot : Kenarlık noktalar kullanılarak görüntülenir + /// Any combination of 'longDash', 'dash' and 'dot : Kenarlık, belirtilen kombinasyon tekrarlanarak görüntülenir. Örneğin, 'dashdotdash'. /// public string DashStyle { get; set; } = "solid"; - /// Serinin boÅŸ veri noktalarını göz ardı edip etmeyeceÄŸini belirtir. - /// BoÅŸ deÄŸere sahip veri noktaları, gerçek seri noktaları üretmez. Bu nedenle eksik olması gereken yerlerde gereksiz boÅŸluklarla seriler çizilebilir. Bu boÅŸlukları kaldırmak için, ignoreEmptyPoints özelliÄŸini true olarak ayarlayın. + /// Serinin boş veri noktalarını göz ardı edip etmeyeceğini belirtir. + /// Boş değere sahip veri noktaları, gerçek seri noktaları üretmez. Bu nedenle eksik olması gereken yerlerde gereksiz boşluklarla seriler çizilebilir. Bu boşlukları kaldırmak için, ignoreEmptyPoints özelliğini true olarak ayarlayın. /// public bool IgnoreEmptyPoints { get; set; } = false; - /// Seriyi tanımlayan adı belirtir. + /// Seriyi tanımlayan adı belirtir. /// public string Name { get; set; } - /// Serinin hangi bölmeye ait olması gerektiÄŸini belirtir. Bölmenin adını kabul eder. - /// Bilgilendirme: Pane dolu ise chart ın PanesDto Property si aynı isimde bir elemanı mutlaka içermelidir + /// Serinin hangi bölmeye ait olması gerektiğini belirtir. Bölmenin adını kabul eder. + /// Bilgilendirme: Pane dolu ise chart ın PanesDto Property si aynı isimde bir elemanı mutlaka içermelidir /// public string Pane { get; set; } - /// rangeValue2Field özelliÄŸiyle birleÅŸtiÄŸinde, hangi veri kaynağı alanının aralık benzeri bir seri için deÄŸerler saÄŸladığını belirtir. - /// Bu üye aÅŸağıdaki seriler tarafından kullanılır: + /// rangeValue2Field özelliğiyle birleştiğinde, hangi veri kaynağı alanının aralık benzeri bir seri için değerler sağladığını belirtir. + /// Bu üye aşağıdaki seriler tarafından kullanılır: /// RangeBarSeries, RangeAreaSeries /// public string RangeValue1Field { get; set; } = "val1"; - /// rangeValue1Field özelliÄŸiyle birleÅŸtiÄŸinde, hangi veri kaynağı alanının aralık benzeri bir seri için deÄŸerler saÄŸladığını belirtir. - /// Bu üye aÅŸağıdaki seriler tarafından kullanılır: + /// rangeValue1Field özelliğiyle birleştiğinde, hangi veri kaynağı alanının aralık benzeri bir seri için değerler sağladığını belirtir. + /// Bu üye aşağıdaki seriler tarafından kullanılır: /// RangeBarSeries, RangeAreaSeries /// public string RangeValue2Field { get; set; } = "val2"; - /// Kullanıcı bir dizi seçtiÄŸinde vurgulanacak dizi öğelerini belirtir. + /// Kullanıcı bir dizi seçtiğinde vurgulanacak dizi öğelerini belirtir. /// Accepted Values: 'allArgumentPoints' | 'allSeriesPoints' | 'excludePoints' | 'includePoints' | 'none' | 'onlyPoint' - /// Seri tipine baÄŸlı olarak bu özellik farklı deÄŸerler kabul eder. Bilgi için SeriTipleri bölümünü (https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxChart/Series_Types/) ziyaret edin, kullanılan seri tipini seçin ve onun selectionMode özellik açıklamasına bakın + /// Seri tipine bağlı olarak bu özellik farklı değerler kabul eder. Bilgi için SeriTipleri bölümünü (https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxChart/Series_Types/) ziyaret edin, kullanılan seri tipini seçin ve onun selectionMode özellik açıklamasına bakın /// public string SelectionMode { get; set; } = "none"; - /// Dizinin lejantta gösterilip gösterilmeyeceÄŸini belirtir. + /// Dizinin lejantta gösterilip gösterilmeyeceğini belirtir. /// public bool ShowInLegend { get; set; } = true; - /// Seri türünü ayarlar + /// Seri türünü ayarlar /// Default Value: 'line' /// Accepted Values: 'area' | 'bar' | 'bubble' | 'candlestick' | 'fullstackedarea' | 'fullstackedbar' | 'fullstackedline' | 'fullstackedspline' | 'fullstackedsplinearea' | 'line' | 'rangearea' | 'rangebar' | 'scatter' | 'spline' | 'splinearea' | 'stackedarea' | 'stackedbar' | 'stackedline' | 'stackedspline' | 'stackedsplinearea' | 'steparea' | 'stepline' | 'stock' /// public string Type { get; set; } - /// Hangi veri kaynağı alanının seri noktaları için deÄŸerler saÄŸladığını belirtir. - /// Bu üye aÅŸağıdaki seriler tarafından kullanılır: + /// Hangi veri kaynağı alanının seri noktaları için değerler sağladığını belirtir. + /// Bu üye aşağıdaki seriler tarafından kullanılır: /// LineSeries, StackedLineSeries,FullStackedLineSeries,StackedSplineSeries,FullStackedSplineSeries, /// SplineSeries,StepLineSeries,AreaSeries,StackedAreaSeries,Sta,kedSplineAreaSeries,FullStackedAreaSeries, /// FullStackedSplineAreaSeries,SplineAreaSeries,StepAreaSeries,ScatterSeries,BarSeries,StackedBarSeries, /// FullStackedBarSeries,BubbleSeries, /// public string ValueField { get; set; } - /// Serinin görünür olup olmayacağını belirtir. + /// Serinin görünür olup olmayacağını belirtir. /// public bool Visible { get; set; } = true; - /// Seri çizgisinin geniÅŸliÄŸini piksel cinsinden belirtir. Yalnızca çizgi benzeri seriler için geçerlidir. + /// Seri çizgisinin genişliğini piksel cinsinden belirtir. Yalnızca çizgi benzeri seriler için geçerlidir. /// Default Value: 2 - /// Bu üye aÅŸağıdaki seriler tarafından kullanılır: + /// Bu üye aşağıdaki seriler tarafından kullanılır: /// LineSeries, StackedLineSeries, FullStackedLineSeries, StackedSplineSeries, FullStackedSplineSeries, SplineSeries, StepLineSeries, CandleStickSeries, StockSeries /// public int Width { get; set; } = 2; @@ -113,8 +113,8 @@ public class ChartSeriesDto // minBarSize // openValueField // point Dto - // reduction // financial seriler için indirgeme özelliklerini belirtir. - // slectionStyle // Bir kullanıcı seçtiÄŸinde seri tarafından benimsenen görünümü yapılandırır. + // reduction // financial seriler için indirgeme özelliklerini belirtir. + // slectionStyle // Bir kullanıcı seçtiğinde seri tarafından benimsenen görünümü yapılandırır. // stack // tag // tagField @@ -122,11 +122,11 @@ public class ChartSeriesDto public ChartLabelDto Label { get; set; } - /// DeÄŸer özetleme iÅŸlevini belirtir. + /// Değer özetleme işlevini belirtir. /// Accepted Values: 'avg' | 'count' | 'custom' | 'max' | 'min' | 'sum' /// Default Value: 'sum' /// public string SummaryType { get; set; } = "sum"; - /// 'Kullanıcı Adı' + /// 'Kullanıcı Adı' public string UserId { get; set; } } diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartSizeDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartSizeDto.cs index 7fe10793..f4e22d48 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartSizeDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartSizeDto.cs @@ -3,10 +3,10 @@ public class ChartSizeDto { public bool UseSize { get; set; } = false; - /// UI bileÅŸeninin geniÅŸliÄŸini piksel cinsinden belirtir + /// UI bileşeninin genişliğini piksel cinsinden belirtir /// public int Width { get; set; } = 400; - /// UI bileÅŸeninin yüksekliÄŸini piksel cinsinden belirtir + /// UI bileşeninin yüksekliğini piksel cinsinden belirtir /// public int Height { get; set; } = 200; } diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartTitleDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartTitleDto.cs index 3d13853c..44982d2c 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartTitleDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartTitleDto.cs @@ -2,33 +2,33 @@ public class ChartTitleDto { - /// BaÅŸlığın metnini belirtir + /// Başlığın metnini belirtir /// public string Text { get; set; } - /// Dikey hizalamanın konumunu belirtir + /// Dikey hizalamanın konumunu belirtir /// Accepted Values: 'bottom' | 'top' /// public string VerticalAlignment { get; set; } = "top"; - /// Yatay yönde hizalamanın yanaşıklık konumunu belirtir + /// Yatay yönde hizalamanın yanaşıklık konumunu belirtir /// Accepted Values: 'center' | 'left' | 'right' /// public string HorizontalAlignment { get; set; } = "center"; - /// UI bileÅŸeninin altyazısını yapılandırır - /// İhtiyaç olması durumunda alt özellikleri ile birlikte Objeye çevrilebilir + /// UI bileşeninin altyazısını yapılandırır + /// İhtiyaç olması durumunda alt özellikleri ile birlikte Objeye çevrilebilir /// public string Subtitle { get; set; } - /// WordWrap uygulandıktan sonra baÅŸlık ayrılan alandan taÅŸtığında baÅŸlıkla ne yapılacağını belirtir: - /// gizleme, kısaltma ve bir üç nokta görüntüleme veya hiçbir ÅŸey. + /// WordWrap uygulandıktan sonra başlık ayrılan alandan taştığında başlıkla ne yapılacağını belirtir: + /// gizleme, kısaltma ve bir üç nokta görüntüleme veya hiçbir şey. /// Accepted Values: 'ellipsis' | 'hide' | 'none' /// public string TextOverflow { get; set; } = "ellipsis"; - /// Tek bir satıra sığmazsa baÅŸlığın nasıl kaydırılacağını belirtir. + /// Tek bir satıra sığmazsa başlığın nasıl kaydırılacağını belirtir. /// Accepted Values: 'normal' | 'breakWord' | 'none' - /// "normal" Metin yalnızca izin verilen kesme noktalarında (örneÄŸin, iki kelime arasındaki boÅŸluk) kesiliyor. - /// "breakWord" Satırda kullanılabilir kesme noktası yoksa sözcükler bölünebilir. - /// "none" Sözcük kaydırma devre dışı. + /// "normal" Metin yalnızca izin verilen kesme noktalarında (örneğin, iki kelime arasındaki boşluk) kesiliyor. + /// "breakWord" Satırda kullanılabilir kesme noktası yoksa sözcükler bölünebilir. + /// "none" Sözcük kaydırma devre dışı. /// public string WordWrap { get; set; } - //Eklenebilir diÄŸer alanlar: object font, object subtitle, object margin + //Eklenebilir diğer alanlar: object font, object subtitle, object margin } diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartTooltipDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartTooltipDto.cs index 0adf00d7..48584209 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartTooltipDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartTooltipDto.cs @@ -1,6 +1,6 @@ namespace Erp.Platform.ListForms; -/// Araç ipuçlarını yapılandırır. +/// Araç ipuçlarını yapılandırır. /// public class ChartTooltipDto { @@ -10,18 +10,18 @@ public class ChartTooltipDto Font = new ChartFontDto() { Color = "#000000" }; } - /// Araç ipucunda görüntülenmeden önce nokta bağımsız deÄŸiÅŸkenini biçimlendirir. Puan deÄŸerini biçimlendirmek için format özelliÄŸini kullanın. + /// Araç ipucunda görüntülenmeden önce nokta bağımsız değişkenini biçimlendirir. Puan değerini biçimlendirmek için format özelliğini kullanın. /// /// Accepted Values: 'billions' | 'currency' | 'day' | 'decimal' | 'exponential' | 'fixedPoint' | 'largeNumber' | 'longDate' | 'longTime' | 'millions' | 'millisecond' | 'month' | 'monthAndDay' | 'monthAndYear' | 'percent' | 'quarter' | 'quarterAndYear' | 'shortDate' | 'shortTime' | 'thousands' | 'trillions' | 'year' | 'dayOfWeek' | 'hour' | 'longDateLongTime' | 'minute' | 'second' | 'shortDateShortTime' /// public string ArgumentFormat { get; set; } - /// Bir araç ipucunun okunun uzunluÄŸunu piksel cinsinden belirtir. + /// Bir araç ipucunun okunun uzunluğunu piksel cinsinden belirtir. /// public int ArrowLength { get; set; } = 10; - /// Bir araç ipucunun kenarlığını yapılandırır. + /// Bir araç ipucunun kenarlığını yapılandırır. /// public ChartBorderDto Border { get; set; } - /// Tüm araç ipuçlarını renklendirir. - /// Bu özellik aÅŸağıdaki renkleri destekler: + /// Tüm araç ipuçlarını renklendirir. + /// Bu özellik aşağıdaki renkleri destekler: /// Hexadecimal colors /// RGB colors /// RGBA colors @@ -30,30 +30,30 @@ public class ChartTooltipDto /// Paint server address /// public string Color { get; set; } = "#ffffff"; - /// Araç ipuçlarını etkinleÅŸtirir. + /// Araç ipuçlarını etkinleştirir. /// public bool Enabled { get; set; } public ChartFontDto Font { get; set; } - /// Bir deÄŸeri araç ipucunda görüntülenmeden önce biçimlendirir. + /// Bir değeri araç ipucunda görüntülenmeden önce biçimlendirir. /// /// Accepted Values: 'billions' | 'currency' | 'day' | 'decimal' | 'exponential' | 'fixedPoint' | 'largeNumber' | 'longDate' | 'longTime' | 'millions' | 'millisecond' | 'month' | 'monthAndDay' | 'monthAndYear' | 'percent' | 'quarter' | 'quarterAndYear' | 'shortDate' | 'shortTime' | 'thousands' | 'trillions' | 'year' | 'dayOfWeek' | 'hour' | 'longDateLongTime' | 'minute' | 'second' | 'shortDateShortTime' /// public string Format { get; set; } - /// Araç ipucunun bir seri noktasının merkezinde mi yoksa kenarında mı bulunacağını belirtir. Yalnızca çubuk benzeri ve kabarcık serileri için geçerlidir. + /// Araç ipucunun bir seri noktasının merkezinde mi yoksa kenarında mı bulunacağını belirtir. Yalnızca çubuk benzeri ve kabarcık serileri için geçerlidir. /// Accepted Values: 'center' | 'edge' - /// Bu üye ÅŸu seriler tarafından kullanılır: BarSeries, StackedBarSeries, FullStackedBarSeries, BubbleSeries, StockSeries, CandleStickSeries + /// Bu üye şu seriler tarafından kullanılır: BarSeries, StackedBarSeries, FullStackedBarSeries, BubbleSeries, StockSeries, CandleStickSeries /// public string Location { get; set; } = "center"; - /// Araç ipucunun sol/saÄŸ kenarlığı ile metni arasında piksel cinsinden ölçülen boÅŸ bir alan oluÅŸturur. + /// Araç ipucunun sol/sağ kenarlığı ile metni arasında piksel cinsinden ölçülen boş bir alan oluşturur. /// public int PaddingLeftRight { get; set; } = 18; - /// Araç ipucunun üst/alt kenarlığı ile metni arasında piksel cinsinden ölçülen boÅŸ bir alan oluÅŸturur. + /// Araç ipucunun üst/alt kenarlığı ile metni arasında piksel cinsinden ölçülen boş bir alan oluşturur. /// public int PaddingTopBottom { get; set; } = 15; - /// Araç ipucunun aynı bağımsız deÄŸiÅŸkenle tüm seri noktalarında paylaşılıp paylaşılmayacağını belirtir. - /// Bu özellik aÅŸağıdaki deÄŸerlerden birine sahip olabilir: - /// false: Araç ipucu, yalnızca fare imleciyle üzerine getirilen bir seri noktası hakkındaki bilgileri görüntüler. - /// true : Araç ipucu, üzerine gelinen noktayla aynı bağımsız deÄŸiÅŸkene sahip tüm seri noktaları hakkında bilgi görüntüler. - /// Bu nokta bir yığına dahilse, araç ipucu yalnızca bu yığındaki noktalar ve herhangi bir yığına (varsa) ait olmayan noktalar hakkında bilgi görüntüler. + /// Araç ipucunun aynı bağımsız değişkenle tüm seri noktalarında paylaşılıp paylaşılmayacağını belirtir. + /// Bu özellik aşağıdaki değerlerden birine sahip olabilir: + /// false: Araç ipucu, yalnızca fare imleciyle üzerine getirilen bir seri noktası hakkındaki bilgileri görüntüler. + /// true : Araç ipucu, üzerine gelinen noktayla aynı bağımsız değişkene sahip tüm seri noktaları hakkında bilgi görüntüler. + /// Bu nokta bir yığına dahilse, araç ipucu yalnızca bu yığındaki noktalar ve herhangi bir yığına (varsa) ait olmayan noktalar hakkında bilgi görüntüler. /// public bool Shared { get; set; } diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartValueAxisDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartValueAxisDto.cs index 303eed72..d28d4ad2 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartValueAxisDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartValueAxisDto.cs @@ -2,7 +2,7 @@ namespace Erp.Platform.ListForms; -/// DeÄŸer eksenini yapılandırır. +/// Değer eksenini yapılandırır. /// public class ChartValueAxisDto { @@ -16,47 +16,47 @@ public class ChartValueAxisDto } public ChartAxisGridDto Grid { get; set; } - /// DeÄŸer ekseninin adını belirtir. + /// Değer ekseninin adını belirtir. /// public string Name { get; set; } - /// Bağımsız deÄŸiÅŸken ekseninin yerini deÄŸiÅŸtirir. + /// Bağımsız değişken ekseninin yerini değiştirir. /// Accepted Values: 'bottom' | 'left' | 'right' | 'top' /// Default Value: 'left' - /// Döndürülen (Rotated) özelliÄŸin deÄŸerine baÄŸlı olarak, konum (Position) farklı deÄŸerler kabul eder. + /// Döndürülen (Rotated) özelliğin değerine bağlı olarak, konum (Position) farklı değerler kabul eder. /// If (Rotated = False) => Position = "left" or "right" /// If (Rotated = True) => Position = "bottom" or "top" /// public string Position { get; set; } = "left"; - /// Eksen baÅŸlığını yapılandırır. - /// Şimdilik sadece string olaran implemen edildi, ihtiyaç olması durumunda ChartTitleDto benzeri bir nesne ile deÄŸiÅŸtirilebilir + /// Eksen başlığını yapılandırır. + /// Şimdilik sadece string olaran implemen edildi, ihtiyaç olması durumunda ChartTitleDto benzeri bir nesne ile değiştirilebilir /// public string Title { get; set; } - /// DeÄŸerleri belirtilen bir veri türüne dönüştürür. + /// Değerleri belirtilen bir veri türüne dönüştürür. /// Accepted Values: 'datetime' | 'numeric' | 'string' /// Default Value: undefined - /// Veri kaynağınız sayıları veya tarihleri ​​dizeler olarak saklıyorsa, bu özelliÄŸi kullanarak uygun veri türünü belirtin. Tarihlerin geçerli bir biçimi olduÄŸundan emin olun. + /// Veri kaynağınız sayıları veya tarihleri ​​dizeler olarak saklıyorsa, bu özelliği kullanarak uygun veri türünü belirtin. Tarihlerin geçerli bir biçimi olduğundan emin olun. /// public string ValueType { get; set; } = "numeric"; - /// Eksen çizgisini görünür yapar. + /// Eksen çizgisini görünür yapar. /// public bool Visible { get; set; } = true; - /// Eksen çizgisinin geniÅŸliÄŸini piksel cinsinden belirtir. + /// Eksen çizgisinin genişliğini piksel cinsinden belirtir. /// public int Width { get; set; } = 1; public List Breaks { get; set; } public BreakStyleDto BreakStyle { get; set; } - /// DeÄŸer ekseninin türünü belirtir. + /// Değer ekseninin türünü belirtir. /// Accepted Values: 'continuous' | 'discrete' | 'logarithmic' - /// continuous : Sayısal ve tarih-saat deÄŸerlerini görüntüler. Bu ekseni aralıklara bölmek için tickInterval özelliÄŸini kullanın. - /// discrete : "Kategoriler" adı verilen dize deÄŸerlerini görüntüler. Bunları sıralamak için, kategoriler dizisini kullanın. - /// logarithmic : Sayısal deÄŸerleri görüntüler. Her deÄŸer, bir kuvvete yükseltilmiÅŸ logaritmaTemel deÄŸeridir. ÖrneÄŸin, 10'a eÅŸit olan logaritmaTemel ÅŸu deÄŸerleri üretir: 10-2, 10-1, 100, 101, 102, vb. Logaritmik eksen, hızla büyüyen deÄŸerlerden oluÅŸan bir veri kümesini görselleÅŸtirdiÄŸinizde kullanışlıdır. + /// continuous : Sayısal ve tarih-saat değerlerini görüntüler. Bu ekseni aralıklara bölmek için tickInterval özelliğini kullanın. + /// discrete : "Kategoriler" adı verilen dize değerlerini görüntüler. Bunları sıralamak için, kategoriler dizisini kullanın. + /// logarithmic : Sayısal değerleri görüntüler. Her değer, bir kuvvete yükseltilmiş logaritmaTemel değeridir. Örneğin, 10'a eşit olan logaritmaTemel şu değerleri üretir: 10-2, 10-1, 100, 101, 102, vb. Logaritmik eksen, hızla büyüyen değerlerden oluşan bir veri kümesini görselleştirdiğinizde kullanışlıdır. /// public string Type { get; set; } public bool AutoBreaksEnabled { get; set; } = true; public int MaxAutoBreakCount { get; set; } = 2; - // ihtiyaç olunca açılacak property ler + // ihtiyaç olunca açılacak property ler // aggregatedPointsPosition // allowDecimals diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartZoomAndPanDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartZoomAndPanDto.cs index 36d4d70a..9bf75139 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartZoomAndPanDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/Chart/ChartZoomAndPanDto.cs @@ -1,7 +1,7 @@ namespace Erp.Platform.ListForms; -/// YakınlaÅŸtırmayı ve kaydırmayı yapılandırır. -/// Bağımsız deÄŸiÅŸken ve deÄŸer eksenleri için yakınlaÅŸtırmayı ve kaydırmayı etkinleÅŸtirebilirsiniz. Belirli bir eksen için yakınlaÅŸtırmayı, kaydırmayı veya her ikisini birden etkinleÅŸtirmek için argumentAxis ve valueAxis özelliklerini ayarlayın. +/// Yakınlaştırmayı ve kaydırmayı yapılandırır. +/// Bağımsız değişken ve değer eksenleri için yakınlaştırmayı ve kaydırmayı etkinleştirebilirsiniz. Belirli bir eksen için yakınlaştırmayı, kaydırmayı veya her ikisini birden etkinleştirmek için argumentAxis ve valueAxis özelliklerini ayarlayın. /// public class ChartZoomAndPanDto { @@ -10,28 +10,28 @@ public class ChartZoomAndPanDto DragBoxStyle = new ChartDragBoxStyle(); } - /// Kullanıcıların grafiÄŸi yakınlaÅŸtırmak için fare tekerleÄŸini kullanıp kullanamayacağını belirtir. Yalnızca bağımsız deÄŸiÅŸken veya deÄŸer ekseni için yakınlaÅŸtırmaya izin veriliyorsa geçerlidir. + /// Kullanıcıların grafiği yakınlaştırmak için fare tekerleğini kullanıp kullanamayacağını belirtir. Yalnızca bağımsız değişken veya değer ekseni için yakınlaştırmaya izin veriliyorsa geçerlidir. /// public bool AllowMouseWheel { get; set; } = true; - /// Kullanıcıların grafiÄŸi yakınlaÅŸtırmak veya kaydırmak için dokunma hareketlerini kullanıp kullanamayacağını belirtir. Yalnızca bağımsız deÄŸiÅŸken veya deÄŸer ekseni için yakınlaÅŸtırma ve kaydırmaya izin veriliyorsa geçerlidir. + /// Kullanıcıların grafiği yakınlaştırmak veya kaydırmak için dokunma hareketlerini kullanıp kullanamayacağını belirtir. Yalnızca bağımsız değişken veya değer ekseni için yakınlaştırma ve kaydırmaya izin veriliyorsa geçerlidir. /// public bool AllowTouchGestures { get; set; } = true; - /// Kullanıcıların bağımsız deÄŸiÅŸken eksenini yakınlaÅŸtırmasına ve/veya kaydırmasına izin verilip verilmediÄŸini belirtir. + /// Kullanıcıların bağımsız değişken eksenini yakınlaştırmasına ve/veya kaydırmasına izin verilip verilmediğini belirtir. /// Accepted Values: 'both' | 'none' | 'pan' | 'zoom' /// public string ArgumentAxis { get; set; } = "none"; - /// Kullanıcıların, sürükleme hareketiyle bir alan seçerek grafiÄŸi yakınlaÅŸtırmasına olanak tanır. Yalnızca fare kullanan cihazlarda geçerlidir. + /// Kullanıcıların, sürükleme hareketiyle bir alan seçerek grafiği yakınlaştırmasına olanak tanır. Yalnızca fare kullanan cihazlarda geçerlidir. /// public bool DragToZoom { get; set; } = false; - /// dragToZoom true olduÄŸunda kaydırmayı etkinleÅŸtiren anahtarı belirtir. Yalnızca fare kullanan cihazlarda geçerlidir. + /// dragToZoom true olduğunda kaydırmayı etkinleştiren anahtarı belirtir. Yalnızca fare kullanan cihazlarda geçerlidir. /// Accepted Values: 'alt' | 'ctrl' | 'meta' | 'shift' /// public string PanKey { get; set; } = "shift"; - /// Kullanıcıların deÄŸer eksenini yakınlaÅŸtırmasına ve/veya kaydırmasına izin verilip verilmediÄŸini belirtir. + /// Kullanıcıların değer eksenini yakınlaştırmasına ve/veya kaydırmasına izin verilip verilmediğini belirtir. /// Accepted Values: 'both' | 'none' | 'pan' | 'zoom' /// public string ValueAxis { get; set; } = "none"; - /// Kullanıcılar sürükleme hareketiyle bir alan seçerek grafiÄŸi yakınlaÅŸtırdığında görünen kutuyu yapılandırır. Yalnızca dragToZoom doÄŸruysa geçerlidir. + /// Kullanıcılar sürükleme hareketiyle bir alan seçerek grafiği yakınlaştırdığında görünen kutuyu yapılandırır. Yalnızca dragToZoom doğruysa geçerlidir. /// public ChartDragBoxStyle DragBoxStyle { get; set; } } diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/GridOptionsDto/TreeOptionDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/GridOptionsDto/TreeOptionDto.cs index 0e934e6f..44c4b4f6 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/GridOptionsDto/TreeOptionDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/GridOptionsDto/TreeOptionDto.cs @@ -1,41 +1,41 @@ namespace Erp.Platform.ListForms; /// -/// TreeList için özel ayarları içerir +/// TreeList için özel ayarları içerir /// public class TreeOptionDto { /// - /// Parent kaydı belirten field adı (örn: "Id") + /// Parent kaydı belirten field adı (örn: "Id") /// public string KeyExpr { get; set; } /// - /// Parent kaydı belirten field adı (örn: "parentId") + /// Parent kaydı belirten field adı (örn: "parentId") /// public string ParentIdExpr { get; set; } /// - /// Alt kayıtların olup olmadığını belirten field adı (opsiyonel) + /// Alt kayıtların olup olmadığını belirten field adı (opsiyonel) /// public string HasItemsExpr { get; set; } /// - /// Root (en üst) seviyedeki kayıtların parent deÄŸeri (genelde null veya 0) + /// Root (en üst) seviyedeki kayıtların parent değeri (genelde null veya 0) /// public object RootValue { get; set; } = null; /// - /// BaÅŸlangıçta açık olacak node'ların ID'leri + /// Başlangıçta açık olacak node'ların ID'leri /// public object[] ExpandedRowKeys { get; set; } = []; /// - /// Tüm node'ları baÅŸlangıçta açık göster + /// Tüm node'ları başlangıçta açık göster /// public bool AutoExpandAll { get; set; } = false; /// - /// Alt kayıtlar seçildiÄŸinde parent kayıtları da seç (recursive selection) + /// Alt kayıtlar seçildiğinde parent kayıtları da seç (recursive selection) /// public bool RecursiveSelection { get; set; } = false; } diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/ImportManager/ColumnMappingDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/ImportManager/ColumnMappingDto.cs index a95fc2a9..353bfa5e 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/ImportManager/ColumnMappingDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/ImportManager/ColumnMappingDto.cs @@ -2,8 +2,8 @@ public class ColumnMappingDto { - public string SourceColumn { get; set; } // CSV/Excel'deki sütun adı - public string TargetField { get; set; } // Hedef Entity içindeki alan + public string SourceColumn { get; set; } // CSV/Excel'deki sütun adı + public string TargetField { get; set; } // Hedef Entity içindeki alan public bool IsRequired { get; set; } public string DataType { get; set; } // "string", "date", "number", "boolean" } diff --git a/api/src/Erp.Platform.Application.Contracts/ListForms/ImportManager/ImportPreviewDataDto.cs b/api/src/Erp.Platform.Application.Contracts/ListForms/ImportManager/ImportPreviewDataDto.cs index 99a624d2..b96eda29 100644 --- a/api/src/Erp.Platform.Application.Contracts/ListForms/ImportManager/ImportPreviewDataDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/ListForms/ImportManager/ImportPreviewDataDto.cs @@ -7,7 +7,7 @@ public class ImportPreviewDataDto { public Guid SessionId { get; set; } public List Headers { get; set; } = new(); - public List> Rows { get; set; } = new(); // raw string olarak dönen veri hücreleri + public List> Rows { get; set; } = new(); // raw string olarak dönen veri hücreleri public int TotalRows { get; set; } public int SampleSize { get; set; } diff --git a/api/src/Erp.Platform.Application.Contracts/LookUpQueryValues.cs b/api/src/Erp.Platform.Application.Contracts/LookUpQueryValues.cs index cee508f0..efc2f1e7 100644 --- a/api/src/Erp.Platform.Application.Contracts/LookUpQueryValues.cs +++ b/api/src/Erp.Platform.Application.Contracts/LookUpQueryValues.cs @@ -119,12 +119,12 @@ public static class LookupQueryValues $"\"Name\" AS \"Name\" " + $"FROM \"{defaultDomain}\".\"dbo\".\"{FullNameTable(TableNameEnum.Branch)}\" " + $"WHERE " + - $"\"TenantId\" = '@TENANTID' " + // 🔹 Bu form doÄŸru — Replace hedefi bu. + $"\"TenantId\" = '@TENANTID' " + // 🔹 Bu form doğru — Replace hedefi bu. $"AND \"IsDeleted\" = 'false' " + $"AND \"Id\" IN ( " + $"SELECT \"BranchId\" " + $"FROM \"{FullNameTable(TableNameEnum.BranchUsers)}\" " + - $"WHERE \"UserId\" = '@USERID' " + // 🔹 Bu da doÄŸru. + $"WHERE \"UserId\" = '@USERID' " + // 🔹 Bu da doğru. $") " + $"ORDER BY \"Name\";"; diff --git a/api/src/Erp.Platform.Application.Contracts/Uom/UomDto.cs b/api/src/Erp.Platform.Application.Contracts/Uom/UomDto.cs index 09698671..caf1a04b 100644 --- a/api/src/Erp.Platform.Application.Contracts/Uom/UomDto.cs +++ b/api/src/Erp.Platform.Application.Contracts/Uom/UomDto.cs @@ -12,5 +12,5 @@ public class UomDto : AuditedEntityDto public bool IsActive { get; set; } public decimal Rounding { get; set; } public Guid UomCategoryId { get; set; } - public string UomCategoryName { get; set; } // Listelemede gösterim için opsiyonel + public string UomCategoryName { get; set; } // Listelemede gösterim için opsiyonel } diff --git a/api/src/Erp.Platform.Application/AuditLogs/AuditLogAppService.cs b/api/src/Erp.Platform.Application/AuditLogs/AuditLogAppService.cs index 8b3d7b3a..1feb2164 100644 --- a/api/src/Erp.Platform.Application/AuditLogs/AuditLogAppService.cs +++ b/api/src/Erp.Platform.Application/AuditLogs/AuditLogAppService.cs @@ -47,7 +47,7 @@ public class AuditLogAppService foreach (var item in auditLogList) { var dto = await MapToGetListOutputDtoAsync(item); - dto.EntityChangeCount = item.EntityChanges?.Count ?? 0; // null kontrolü artık burada güvenli + dto.EntityChangeCount = item.EntityChanges?.Count ?? 0; // null kontrolü artık burada güvenli entityDtos.Add(dto); } diff --git a/api/src/Erp.Platform.Application/Blog/BlogAppService.cs b/api/src/Erp.Platform.Application/Blog/BlogAppService.cs index 8dae7a59..6c84c24a 100644 --- a/api/src/Erp.Platform.Application/Blog/BlogAppService.cs +++ b/api/src/Erp.Platform.Application/Blog/BlogAppService.cs @@ -97,7 +97,7 @@ public class BlogAppService : PlatformAppService, IBlogAppService await _postRepository.UpdateAsync(post); - return await GetPostAsync(post.Id); // ✅ DTO dönülüyor + return await GetPostAsync(post.Id); // ✅ DTO dönülüyor } public async Task DeletePostAsync(Guid id) diff --git a/api/src/Erp.Platform.Application/DeveloperKit/CrudEndpointGenerateAppService.cs b/api/src/Erp.Platform.Application/DeveloperKit/CrudEndpointGenerateAppService.cs index 9fa0c0d5..2f0b5ede 100644 --- a/api/src/Erp.Platform.Application/DeveloperKit/CrudEndpointGenerateAppService.cs +++ b/api/src/Erp.Platform.Application/DeveloperKit/CrudEndpointGenerateAppService.cs @@ -59,7 +59,7 @@ public class CrudEndpointGenerateAppService : CrudAppService< throw new Exception($"Entity with ID {entityId} not found"); } - // Migration kontrolü + // Migration kontrolü var migrationQueryable = await _migrationRepository.GetQueryableAsync(); var migration = await migrationQueryable .Where(x => x.EntityId == entityId && x.Status == "applied") @@ -70,7 +70,7 @@ public class CrudEndpointGenerateAppService : CrudAppService< throw new Exception($"No applied migration found for entity {entity.Name}. Please apply migration first."); } - // CRUD endpointleri oluÅŸtur + // CRUD endpointleri oluştur var endpoints = new List(); var entityName = entity.Name; var entityDisplayName = entity.DisplayName; @@ -130,7 +130,7 @@ public class CrudEndpointGenerateAppService : CrudAppService< CsharpCode = GenerateDeleteCode(entityName, entityDisplayName) }); - // Var olanları sil + // Var olanları sil var existingEndpoints = await _endpointRepository .GetListAsync(x => x.EntityId == entityId); @@ -139,7 +139,7 @@ public class CrudEndpointGenerateAppService : CrudAppService< // Yeni endpointleri ekle await _endpointRepository.InsertManyAsync(endpoints, autoSave: true); - // Entity endpoint durumu güncelle + // Entity endpoint durumu güncelle entity.EndpointStatus = "applied"; await _entityRepository.UpdateAsync(entity, autoSave: true); diff --git a/api/src/Erp.Platform.Application/DeveloperKit/CustomEntityAppService.cs b/api/src/Erp.Platform.Application/DeveloperKit/CustomEntityAppService.cs index 712cabd2..a95840ed 100644 --- a/api/src/Erp.Platform.Application/DeveloperKit/CustomEntityAppService.cs +++ b/api/src/Erp.Platform.Application/DeveloperKit/CustomEntityAppService.cs @@ -189,7 +189,7 @@ public class CustomEntityAppService : CrudAppService< public override async Task CreateAsync(CreateUpdateCustomEntityDto input) { - // Entity oluÅŸtur + // Entity oluştur var entity = new CustomEntity { Menu = input.Menu, @@ -203,7 +203,7 @@ public class CustomEntityAppService : CrudAppService< MigrationStatus = "pending" }; - // Fields ekle - sıralama ile + // Fields ekle - sıralama ile for (int i = 0; i < input.Fields.Count; i++) { var fieldDto = input.Fields[i]; @@ -255,10 +255,10 @@ public class CustomEntityAppService : CrudAppService< public override async Task DeleteAsync(Guid id) { - // İlgili entity'nin var olup olmadığını kontrol et + // İlgili entity'nin var olup olmadığını kontrol et var entity = await _repository.GetAsync(id); - // İlgili ApiMigration kayıtlarını sil + // İlgili ApiMigration kayıtlarını sil var relatedMigrations = await _migrationRepository.GetListAsync(m => m.EntityId == id); if (relatedMigrations.Any()) { diff --git a/api/src/Erp.Platform.Application/DeveloperKit/DynamicServiceAppService.cs b/api/src/Erp.Platform.Application/DeveloperKit/DynamicServiceAppService.cs index db80ba27..543919f1 100644 --- a/api/src/Erp.Platform.Application/DeveloperKit/DynamicServiceAppService.cs +++ b/api/src/Erp.Platform.Application/DeveloperKit/DynamicServiceAppService.cs @@ -36,7 +36,7 @@ public class DynamicAppServiceAppService : PlatformAppService, IDynamicServiceAp } catch (Exception ex) { - Logger.LogError(ex, "Test compile sırasında hata. Tenant: {TenantId}", CurrentTenant.Id); + Logger.LogError(ex, "Test compile sırasında hata. Tenant: {TenantId}", CurrentTenant.Id); throw; } } @@ -46,7 +46,7 @@ public class DynamicAppServiceAppService : PlatformAppService, IDynamicServiceAp { try { - // Önce kodu test compile et + // Önce kodu test compile et var compileResult = await _compiler.CompileAndValidateAsync(request.Code, CurrentTenant.Id); if (!compileResult.Success) { @@ -57,7 +57,7 @@ public class DynamicAppServiceAppService : PlatformAppService, IDynamicServiceAp }; } - // Aynı isimde AppService var mı kontrol et + // Aynı isimde AppService var mı kontrol et var existingService = await _dynamicAppServiceRepository .FirstOrDefaultAsync(x => x.Name == request.Name && x.TenantId == CurrentTenant.Id); @@ -65,7 +65,7 @@ public class DynamicAppServiceAppService : PlatformAppService, IDynamicServiceAp if (existingService != null) { - // Mevcut servisi güncelle + // Mevcut servisi güncelle existingService.UpdateCode(request.Code); existingService.DisplayName = request.DisplayName; existingService.Description = request.Description; @@ -116,7 +116,7 @@ public class DynamicAppServiceAppService : PlatformAppService, IDynamicServiceAp } else { - // Derleme hatası durumunu kaydet + // Derleme hatası durumunu kaydet appService.MarkCompilationError(loadResult.ErrorMessage); await _dynamicAppServiceRepository.UpdateAsync(appService); @@ -130,13 +130,13 @@ public class DynamicAppServiceAppService : PlatformAppService, IDynamicServiceAp } catch (Exception ex) { - Logger.LogError(ex, "AppService yayınlama sırasında hata. Ad: {Name}, Tenant: {TenantId}", + Logger.LogError(ex, "AppService yayınlama sırasında hata. Ad: {Name}, Tenant: {TenantId}", request.Name, CurrentTenant.Id); return new PublishResultDto { Success = false, - ErrorMessage = $"Yayınlama sırasında beklenmeyen hata: {ex.Message}" + ErrorMessage = $"Yayınlama sırasında beklenmeyen hata: {ex.Message}" }; } } @@ -148,7 +148,7 @@ public class DynamicAppServiceAppService : PlatformAppService, IDynamicServiceAp var queryable = await _dynamicAppServiceRepository.GetQueryableAsync(); - // Tenant filtresi otomatik uygulanır (IMultiTenant) + // Tenant filtresi otomatik uygulanır (IMultiTenant) var query = queryable.WhereIf(!string.IsNullOrEmpty(input.Sorting), x => x.CreationTime.ToString().Contains(input.Sorting ?? "")); @@ -177,8 +177,8 @@ public class DynamicAppServiceAppService : PlatformAppService, IDynamicServiceAp { var appService = await _dynamicAppServiceRepository.GetAsync(id); - // TODO: Runtime'dan assembly'yi kaldırma iÅŸlemi - // (AssemblyLoadContext.Unload() çaÄŸrısı) + // TODO: Runtime'dan assembly'yi kaldırma işlemi + // (AssemblyLoadContext.Unload() çağrısı) await _dynamicAppServiceRepository.DeleteAsync(id); } @@ -205,7 +205,7 @@ public class DynamicAppServiceAppService : PlatformAppService, IDynamicServiceAp { try { - // Service.Name üzerinden assembly adı oluÅŸtur + // Service.Name üzerinden assembly adı oluştur var assemblyName = $"{service.Name}_{service.Version}"; var result = await _compiler.CompileAndRegisterForTenantAsync( CurrentTenant.Id ?? Guid.Empty, @@ -226,7 +226,7 @@ public class DynamicAppServiceAppService : PlatformAppService, IDynamicServiceAp catch (Exception ex) { errorCount++; - Logger.LogError(ex, "AppService yeniden yükleme hatası. ID: {Id}", service.Id); + Logger.LogError(ex, "AppService yeniden yükleme hatası. ID: {Id}", service.Id); service.MarkCompilationError(ex.Message); await _dynamicAppServiceRepository.UpdateAsync(service); diff --git a/api/src/Erp.Platform.Application/DeveloperKit/DynamicServiceCompiler.cs b/api/src/Erp.Platform.Application/DeveloperKit/DynamicServiceCompiler.cs index dc646692..4df48c6c 100644 --- a/api/src/Erp.Platform.Application/DeveloperKit/DynamicServiceCompiler.cs +++ b/api/src/Erp.Platform.Application/DeveloperKit/DynamicServiceCompiler.cs @@ -22,13 +22,13 @@ public class DynamicServiceCompiler : ITransientDependency { private readonly ILogger _logger; - // Tenant bazlı yüklenmiÅŸ assembly'leri takip etmek için + // Tenant bazlı yüklenmiş assembly'leri takip etmek için private static readonly ConcurrentDictionary> _tenantAssemblies = new(); - // Assembly kaydı için delegate + // Assembly kaydı için delegate public static Action? NotifyAssemblyRegistration { get; set; } - // Güvenlik için yasaklı namespace'ler + // Güvenlik için yasaklı namespace'ler private static readonly string[] ForbiddenNamespaces = { "System.IO", "System.Diagnostics", @@ -41,7 +41,7 @@ public class DynamicServiceCompiler : ITransientDependency "System.Net.NetworkInformation" }; - // Güvenlik için yasaklı sınıflar/metotlar + // Güvenlik için yasaklı sınıflar/metotlar private static readonly string[] ForbiddenTypes = { "Process", "ProcessStartInfo", @@ -65,7 +65,7 @@ public class DynamicServiceCompiler : ITransientDependency } /// - /// Kodu derler ve validate eder, ancak assembly yüklemez + /// Kodu derler ve validate eder, ancak assembly yüklemez /// public async Task CompileAndValidateAsync(string code, Guid? tenantId = null) { @@ -73,7 +73,7 @@ public class DynamicServiceCompiler : ITransientDependency try { - // Güvenlik kontrolü + // Güvenlik kontrolü var securityCheck = ValidateCodeSecurity(code); if (!securityCheck.Success) { @@ -96,7 +96,7 @@ public class DynamicServiceCompiler : ITransientDependency Warnings = new List() }; - // Hataları ve uyarıları topla + // Hataları ve uyarıları topla foreach (var diagnostic in emitResult.Diagnostics) { var error = new CompilationErrorDto @@ -122,10 +122,10 @@ public class DynamicServiceCompiler : ITransientDependency if (!result.Success) { - result.ErrorMessage = $"Derleme {result.Errors.Count} hata ile baÅŸarısız oldu."; + result.ErrorMessage = $"Derleme {result.Errors.Count} hata ile başarısız oldu."; } - _logger.LogInformation("Kod derlemesi tamamlandı. BaÅŸarılı: {Success}, Süre: {Time}ms, Hata sayısı: {ErrorCount}", + _logger.LogInformation("Kod derlemesi tamamlandı. Başarılı: {Success}, Süre: {Time}ms, Hata sayısı: {ErrorCount}", result.Success, stopwatch.ElapsedMilliseconds, result.Errors?.Count ?? 0); return result; @@ -133,12 +133,12 @@ public class DynamicServiceCompiler : ITransientDependency catch (Exception ex) { stopwatch.Stop(); - _logger.LogError(ex, "Kod derlemesi sırasında beklenmeyen hata"); + _logger.LogError(ex, "Kod derlemesi sırasında beklenmeyen hata"); return new CompileResultDto { Success = false, - ErrorMessage = $"Derleme sırasında hata: {ex.Message}", + ErrorMessage = $"Derleme sırasında hata: {ex.Message}", CompilationTimeMs = stopwatch.ElapsedMilliseconds, Errors = new List() }; @@ -146,20 +146,20 @@ public class DynamicServiceCompiler : ITransientDependency } /// - /// Kodu derler ve belirtilen tenant için assembly yükler + /// Kodu derler ve belirtilen tenant için assembly yükler /// public async Task CompileAndRegisterForTenantAsync(Guid tenantId, string code, string assemblyName) { try { - // Önce validate et + // Önce validate et var validateResult = await CompileAndValidateAsync(code, tenantId); if (!validateResult.Success) { return validateResult; } - // Assembly oluÅŸtur + // Assembly oluştur var compilation = CreateCompilation(code, assemblyName); using var ms = new MemoryStream(); @@ -172,7 +172,7 @@ public class DynamicServiceCompiler : ITransientDependency ms.Seek(0, SeekOrigin.Begin); - // Tenant'a özel assembly load context + // Tenant'a özel assembly load context var contextName = $"Tenant_{tenantId}_Context"; var loadContext = new AssemblyLoadContext(contextName, isCollectible: true); @@ -197,25 +197,25 @@ public class DynamicServiceCompiler : ITransientDependency } catch (Exception ex) { - _logger.LogError(ex, "Assembly yükleme sırasında hata. Tenant: {TenantId}", tenantId); + _logger.LogError(ex, "Assembly yükleme sırasında hata. Tenant: {TenantId}", tenantId); return new CompileResultDto { Success = false, - ErrorMessage = $"Assembly yükleme hatası: {ex.Message}", + ErrorMessage = $"Assembly yükleme hatası: {ex.Message}", Errors = new List() }; } } /// - /// Kod güvenlik kontrolü + /// Kod güvenlik kontrolü /// private CompileResultDto ValidateCodeSecurity(string code) { var errors = new List(); - // Yasaklı namespace kontrolü + // Yasaklı namespace kontrolü foreach (var forbiddenNs in ForbiddenNamespaces) { if (code.Contains($"using {forbiddenNs}") || code.Contains($"{forbiddenNs}.")) @@ -223,7 +223,7 @@ public class DynamicServiceCompiler : ITransientDependency errors.Add(new CompilationErrorDto { Code = "SECURITY001", - Message = $"Güvenlik nedeniyle '{forbiddenNs}' namespace'i kullanılamaz", + Message = $"Güvenlik nedeniyle '{forbiddenNs}' namespace'i kullanılamaz", Severity = "Error", Line = GetLineNumber(code, forbiddenNs), Column = 1 @@ -231,7 +231,7 @@ public class DynamicServiceCompiler : ITransientDependency } } - // Yasaklı tip kontrolü + // Yasaklı tip kontrolü foreach (var forbiddenType in ForbiddenTypes) { if (code.Contains(forbiddenType)) @@ -239,7 +239,7 @@ public class DynamicServiceCompiler : ITransientDependency errors.Add(new CompilationErrorDto { Code = "SECURITY002", - Message = $"Güvenlik nedeniyle '{forbiddenType}' tipi kullanılamaz", + Message = $"Güvenlik nedeniyle '{forbiddenType}' tipi kullanılamaz", Severity = "Error", Line = GetLineNumber(code, forbiddenType), Column = 1 @@ -250,13 +250,13 @@ public class DynamicServiceCompiler : ITransientDependency return new CompileResultDto { Success = errors.Count == 0, - ErrorMessage = errors.Count > 0 ? "Güvenlik kontrolü baÅŸarısız" : null, + ErrorMessage = errors.Count > 0 ? "Güvenlik kontrolü başarısız" : null, Errors = errors }; } /// - /// Roslyn compilation oluÅŸturur + /// Roslyn compilation oluşturur /// private CSharpCompilation CreateCompilation(string code, string assemblyName) { @@ -271,12 +271,12 @@ public class DynamicServiceCompiler : ITransientDependency new CSharpCompilationOptions( OutputKind.DynamicallyLinkedLibrary, optimizationLevel: OptimizationLevel.Debug, - allowUnsafe: false // Güvenlik için unsafe kod yasağı + allowUnsafe: false // Güvenlik için unsafe kod yasağı )); } /// - /// Varsayılan assembly referanslarını döner + /// Varsayılan assembly referanslarını döner /// private List GetDefaultReferences() { @@ -303,11 +303,11 @@ public class DynamicServiceCompiler : ITransientDependency } catch (Exception ex) { - _logger.LogWarning(ex, "Assembly referansı eklenemedi: {Assembly}", assembly.FullName); + _logger.LogWarning(ex, "Assembly referansı eklenemedi: {Assembly}", assembly.FullName); } } - // ABP Framework referansları + // ABP Framework referansları try { var abpAssemblies = AppDomain.CurrentDomain.GetAssemblies() @@ -331,7 +331,7 @@ public class DynamicServiceCompiler : ITransientDependency } /// - /// Bir tipin ApplicationService olup olmadığını kontrol eder + /// Bir tipin ApplicationService olup olmadığını kontrol eder /// private bool IsApplicationServiceType(Type type) { @@ -350,7 +350,7 @@ public class DynamicServiceCompiler : ITransientDependency } /// - /// Tipin ApplicationService base class'ından türediÄŸini kontrol eder + /// Tipin ApplicationService base class'ından türediğini kontrol eder /// private bool HasApplicationServiceBase(Type type) { @@ -367,7 +367,7 @@ public class DynamicServiceCompiler : ITransientDependency } /// - /// Kod içinde belirli bir string'in satır numarasını bulur + /// Kod içinde belirli bir string'in satır numarasını bulur /// private int GetLineNumber(string code, string searchText) { @@ -383,7 +383,7 @@ public class DynamicServiceCompiler : ITransientDependency } /// - /// Assembly içindeki ApplicationService'lerden endpoint listesini çıkarır + /// Assembly içindeki ApplicationService'lerden endpoint listesini çıkarır /// public List ExtractEndpointsFromAssembly(Assembly assembly, string serviceName) { @@ -391,14 +391,14 @@ public class DynamicServiceCompiler : ITransientDependency try { - // Assembly içindeki ApplicationService türlerini bul + // Assembly içindeki ApplicationService türlerini bul var appServiceTypes = assembly.GetTypes() .Where(t => IsApplicationServiceType(t) && t.Name == serviceName) .ToList(); foreach (var serviceType in appServiceTypes) { - // Controller adını oluÅŸtur (ABP convention: CustomerAppService -> Customer) + // Controller adını oluştur (ABP convention: CustomerAppService -> Customer) var controllerName = serviceType.Name; if (controllerName.EndsWith("AppService")) { @@ -412,14 +412,14 @@ public class DynamicServiceCompiler : ITransientDependency // ABP kebab-case convention (DynamicCustomer -> dynamic-customer) var routePrefix = ToKebabCase(controllerName); - // Public method'ları bul (async method'lar genelde Async suffix'i ile biter) + // Public method'ları bul (async method'lar genelde Async suffix'i ile biter) var methods = serviceType.GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly) - .Where(m => !m.IsSpecialName) // Property getter/setter'ları hariç tut + .Where(m => !m.IsSpecialName) // Property getter/setter'ları hariç tut .ToList(); foreach (var method in methods) { - // Method adından Async suffix'ini kaldır ve kebab-case'e çevir + // Method adından Async suffix'ini kaldır ve kebab-case'e çevir var methodName = method.Name; if (methodName.EndsWith("Async")) { @@ -428,10 +428,10 @@ public class DynamicServiceCompiler : ITransientDependency var methodRoute = ToKebabCase(methodName); - // HTTP verb'ü belirle (basit heuristic) + // HTTP verb'ü belirle (basit heuristic) var httpVerb = DetermineHttpVerb(method); - // Endpoint'i oluÅŸtur + // Endpoint'i oluştur var endpoint = $"{httpVerb} /api/app/{routePrefix}/{methodRoute}"; endpoints.Add(endpoint); } @@ -439,14 +439,14 @@ public class DynamicServiceCompiler : ITransientDependency } catch (Exception ex) { - _logger.LogError(ex, "Endpoint çıkarma sırasında hata"); + _logger.LogError(ex, "Endpoint çıkarma sırasında hata"); } return endpoints; } /// - /// PascalCase'i kebab-case'e çevirir (DynamicCustomer -> dynamic-customer) + /// PascalCase'i kebab-case'e çevirir (DynamicCustomer -> dynamic-customer) /// private string ToKebabCase(string value) { @@ -461,7 +461,7 @@ public class DynamicServiceCompiler : ITransientDependency } /// - /// Method'un HTTP verb'ünü belirler (ABP convention'a göre) + /// Method'un HTTP verb'ünü belirler (ABP convention'a göre) /// private string DetermineHttpVerb(MethodInfo method) { diff --git a/api/src/Erp.Platform.Application/FileManagement/FileManagementAppService.cs b/api/src/Erp.Platform.Application/FileManagement/FileManagementAppService.cs index ed17983d..ffa5598e 100644 --- a/api/src/Erp.Platform.Application/FileManagement/FileManagementAppService.cs +++ b/api/src/Erp.Platform.Application/FileManagement/FileManagementAppService.cs @@ -55,13 +55,13 @@ public class FileManagementAppService : ApplicationService, IFileManagementAppSe private string EncodePathAsId(string path) { - // Path'deki '/' karakterlerini '|' ile deÄŸiÅŸtir URL-safe hale getirmek için + // Path'deki '/' karakterlerini '|' ile değiştir URL-safe hale getirmek için return path.Replace("/", "|"); } private string DecodeIdAsPath(string id) { - // ID'deki '|' karakterlerini '/' ile geri deÄŸiÅŸtir + // ID'deki '|' karakterlerini '/' ile geri değiştir return id.Replace("|", "/"); } @@ -127,14 +127,14 @@ public class FileManagementAppService : ApplicationService, IFileManagementAppSe return items; } - // Klasörleri listele + // Klasörleri listele var directories = Directory.GetDirectories(fullPath); foreach (var dir in directories) { var dirInfo = new DirectoryInfo(dir); var relativePath = string.IsNullOrEmpty(folderPath) ? dirInfo.Name : $"{folderPath}/{dirInfo.Name}"; - // Klasör içindeki öğe sayısını hesapla + // Klasör içindeki öğe sayısını hesapla var childCount = 0; try { @@ -163,7 +163,7 @@ public class FileManagementAppService : ApplicationService, IFileManagementAppSe }); } - // Dosyaları listele + // Dosyaları listele var files = Directory.GetFiles(fullPath); foreach (var file in files) { @@ -270,19 +270,19 @@ public class FileManagementAppService : ApplicationService, IFileManagementAppSe var folderPath = Path.Combine(parentPath, input.Name); - // Klasör zaten var mı kontrol et + // Klasör zaten var mı kontrol et if (Directory.Exists(folderPath)) { throw new UserFriendlyException("A folder with this name already exists"); } - // Dosya ile aynı isimde bir ÅŸey var mı kontrol et + // Dosya ile aynı isimde bir şey var mı kontrol et if (File.Exists(folderPath)) { throw new UserFriendlyException("A file with this name already exists"); } - // Klasörü oluÅŸtur + // Klasörü oluştur Directory.CreateDirectory(folderPath); var newFolderPath = string.IsNullOrEmpty(decodedParentId) ? input.Name : $"{decodedParentId}/{input.Name}"; @@ -350,7 +350,7 @@ public class FileManagementAppService : ApplicationService, IFileManagementAppSe fullCdnPath = Path.Combine(fullCdnPath, decodedParentId); } - // Dizini oluÅŸtur + // Dizini oluştur Directory.CreateDirectory(fullCdnPath); var fullFilePath = Path.Combine(fullCdnPath, uniqueFileName); @@ -358,7 +358,7 @@ public class FileManagementAppService : ApplicationService, IFileManagementAppSe long fileSize; if (input.Files != null && input.Files.Length > 0) { - // İlk dosyayı kullan (tek dosya upload için) + // İlk dosyayı kullan (tek dosya upload için) var file = input.Files[0]; using var stream = file.GetStream(); using var fileStream = File.Create(fullFilePath); @@ -388,7 +388,7 @@ public class FileManagementAppService : ApplicationService, IFileManagementAppSe TenantId = _currentTenant.Id?.ToString() }; - // File system'e kaydedildi, index güncellemeye gerek yok + // File system'e kaydedildi, index güncellemeye gerek yok return new FileItemDto { Id = metadata.Id, @@ -551,7 +551,7 @@ public class FileManagementAppService : ApplicationService, IFileManagementAppSe if (Directory.Exists(fullPath)) { - // Klasör sil (içindeki tüm dosyalar ile birlikte) + // Klasör sil (içindeki tüm dosyalar ile birlikte) Directory.Delete(fullPath, recursive: true); } else if (File.Exists(fullPath)) @@ -593,7 +593,7 @@ public class FileManagementAppService : ApplicationService, IFileManagementAppSe if (Directory.Exists(fullPath)) { - // Klasör sil (içindeki tüm dosyalar ile birlikte) + // Klasör sil (içindeki tüm dosyalar ile birlikte) Directory.Delete(fullPath, recursive: true); } else if (File.Exists(fullPath)) diff --git a/api/src/Erp.Platform.Application/FileManagement/FileMetadata.cs b/api/src/Erp.Platform.Application/FileManagement/FileMetadata.cs index d9cfc51a..a6864aa3 100644 --- a/api/src/Erp.Platform.Application/FileManagement/FileMetadata.cs +++ b/api/src/Erp.Platform.Application/FileManagement/FileMetadata.cs @@ -16,5 +16,5 @@ public class FileMetadata public string ParentId { get; set; } = string.Empty; public bool IsReadOnly { get; set; } public string? TenantId { get; set; } - public int? ChildCount { get; set; } // Klasörler için öğe sayısı + public int? ChildCount { get; set; } // Klasörler için öğe sayısı } diff --git a/api/src/Erp.Platform.Application/Forum/ForumAppService.cs b/api/src/Erp.Platform.Application/Forum/ForumAppService.cs index 2fd13b2f..47d9bc74 100644 --- a/api/src/Erp.Platform.Application/Forum/ForumAppService.cs +++ b/api/src/Erp.Platform.Application/Forum/ForumAppService.cs @@ -436,7 +436,7 @@ public class ForumAppService : PlatformAppService, IForumAppService topic.ReplyCount = Math.Max(0, topic.ReplyCount - 1); category.PostCount = Math.Max(0, category.PostCount ?? 0 - 1); - // 🔁 Last post deÄŸiÅŸti mi kontrol et + // 🔁 Last post değişti mi kontrol et var latestPost = await _postRepository .GetQueryableAsync() .ContinueWith(q => q.Result @@ -459,7 +459,7 @@ public class ForumAppService : PlatformAppService, IForumAppService } else { - // Tüm postlar silindiyse + // Tüm postlar silindiyse topic.LastPostId = null; topic.LastPostDate = null; topic.LastPostUserId = null; @@ -496,7 +496,7 @@ public class ForumAppService : PlatformAppService, IForumAppService post.LikeCount = Math.Max(0, post.LikeCount ?? 0 - 1); await _postRepository.UpdateAsync(post); - // 🔽 Topic'in toplam beÄŸeni sayısını güncelle + // 🔽 Topic'in toplam beğeni sayısını güncelle var topic = await _topicRepository.GetAsync(post.TopicId); var postsInTopic = await _postRepository.GetListAsync(p => p.TopicId == topic.Id); diff --git a/api/src/Erp.Platform.Application/Intranet/IntranetAppService.cs b/api/src/Erp.Platform.Application/Intranet/IntranetAppService.cs index 32f75cb8..67db0bdf 100644 --- a/api/src/Erp.Platform.Application/Intranet/IntranetAppService.cs +++ b/api/src/Erp.Platform.Application/Intranet/IntranetAppService.cs @@ -147,14 +147,14 @@ public class IntranetAppService : PlatformAppService, IIntranetAppService private async Task> GetMealsAsync() { - // Bu haftanın baÅŸlangıç ve bitiÅŸ tarihlerini hesapla + // Bu haftanın başlangıç ve bitiş tarihlerini hesapla var today = DateTime.Now.Date; var dayOfWeek = (int)today.DayOfWeek; - // Pazartesi'yi haftanın başı olarak kabul ediyoruz (ISO 8601) + // Pazartesi'yi haftanın başı olarak kabul ediyoruz (ISO 8601) var weekStart = today.AddDays(-(dayOfWeek == 0 ? 6 : dayOfWeek - 1)); var weekEnd = weekStart.AddDays(6); - // Sadece bu haftanın yemeklerini getir + // Sadece bu haftanın yemeklerini getir var meals = await _mealRepository.GetListAsync(m => m.Date >= weekStart && m.Date <= weekEnd); @@ -192,7 +192,7 @@ public class IntranetAppService : PlatformAppService, IIntranetAppService { var dto = ObjectMapper.Map(shuttleRoute); - // Route string'ini array'e çevir (pipe ile ayrılmış) + // Route string'ini array'e çevir (pipe ile ayrılmış) if (!string.IsNullOrEmpty(shuttleRoute.Route)) { dto.Route = shuttleRoute.Route @@ -219,14 +219,14 @@ public class IntranetAppService : PlatformAppService, IIntranetAppService var announcementDtos = new List(); - // Tüm departmanları bir kez çek (performans için) + // Tüm departmanları bir kez çek (performans için) var allDepartments = await _departmentRepository.GetListAsync(); foreach (var announcement in announcements) { var dto = ObjectMapper.Map(announcement); - // Departments string'ini array'e çevir (pipe ile ayrılmış ID'ler) + // Departments string'ini array'e çevir (pipe ile ayrılmış ID'ler) if (!string.IsNullOrEmpty(announcement.Departments)) { var departmentIds = announcement.Departments @@ -234,7 +234,7 @@ public class IntranetAppService : PlatformAppService, IIntranetAppService .Select(d => d.Trim()) .ToArray(); - // ID'leri Department Name'lere çevir + // ID'leri Department Name'lere çevir var departmentNames = new List(); foreach (var deptId in departmentIds) { @@ -268,28 +268,28 @@ public class IntranetAppService : PlatformAppService, IIntranetAppService var today = DateTime.Today; var oneMonthAgo = today.AddMonths(-1); - // Son 1 ay içerisindeki kayıtlar + // Son 1 ay içerisindeki kayıtlar var lastMonthExpenses = queryable .Where(a => a.RequestDate >= oneMonthAgo && a.RequestDate <= today); - // Son 1 aydaki toplam talep miktarı + // Son 1 aydaki toplam talep miktarı var totalRequested = lastMonthExpenses.Sum(a => a.Amount); - // Son 1 aydaki onaylanan harcamaların toplamı + // Son 1 aydaki onaylanan harcamaların toplamı var totalApproved = lastMonthExpenses .Where(a => a.Status == "approved") .Sum(a => a.Amount); - // Son 5 kayıt + // Son 5 kayıt var last5Expenses = queryable .OrderByDescending(a => a.RequestDate) .Take(5) .ToList(); - // Map iÅŸlemleri + // Map işlemleri var last5Dtos = ObjectMapper.Map, List>(last5Expenses); - // Dönüş DTO'su + // Dönüş DTO'su return new ExpensesDto { TotalRequested = totalRequested, diff --git a/api/src/Erp.Platform.Application/ListForms/ListFormImportAppService.cs b/api/src/Erp.Platform.Application/ListForms/ListFormImportAppService.cs index f0b5121e..ce2b3a40 100644 --- a/api/src/Erp.Platform.Application/ListForms/ListFormImportAppService.cs +++ b/api/src/Erp.Platform.Application/ListForms/ListFormImportAppService.cs @@ -52,7 +52,7 @@ public class ListFormImportAppService : PlatformAppService, IImportAppService if (string.IsNullOrWhiteSpace(file.FileName)) { - throw new UserFriendlyException("Geçersiz dosya adı."); + throw new UserFriendlyException("Geçersiz dosya adı."); } // Uygunsuz karakterleri temizle @@ -77,7 +77,7 @@ public class ListFormImportAppService : PlatformAppService, IImportAppService } catch (Exception ex) { - // Upload baÅŸarısız olursa status'ı failed yap + // Upload başarısız olursa status'ı failed yap session.Status = "failed"; Logger.LogError(ex, "File upload failed for session {SessionId}, blob: {BlobName}", session.Id, blobName); } diff --git a/api/src/Erp.Platform.Application/ListForms/ListFormWizardAppService.cs b/api/src/Erp.Platform.Application/ListForms/ListFormWizardAppService.cs index f1766e05..d8c62b3b 100644 --- a/api/src/Erp.Platform.Application/ListForms/ListFormWizardAppService.cs +++ b/api/src/Erp.Platform.Application/ListForms/ListFormWizardAppService.cs @@ -170,7 +170,7 @@ public class ListFormWizardAppService( var langTextEn = await repoLangText.FirstOrDefaultAsync(a => a.ResourceName == res && a.Key == langKey.Key && a.CultureName == cultureNameDefault) ?? await repoLangText.InsertAsync(new LanguageText { ResourceName = res, Key = langKey.Key, CultureName = cultureNameDefault, Value = textEn }); var langTextTitleTr = await repoLangText.FirstOrDefaultAsync(a => a.ResourceName == res && a.Key == langKey.Key && a.CultureName == LanguageCodes.Tr) - ?? await repoLangText.InsertAsync(new LanguageText { ResourceName = res, Key = langKey.Key, CultureName = LanguageCodes.Tr, Value = textTr }); + ?? await repoLangText.InsertAsync(new LanguageText { ResourceName = res, Key = langKey.Key, CultureName = LanguageCodes.En, Value = textTr }); return langKey; } diff --git a/api/src/Erp.Platform.Application/Permissions/PermissionAppService.cs b/api/src/Erp.Platform.Application/Permissions/PermissionAppService.cs index b8b95edb..130bf114 100644 --- a/api/src/Erp.Platform.Application/Permissions/PermissionAppService.cs +++ b/api/src/Erp.Platform.Application/Permissions/PermissionAppService.cs @@ -13,8 +13,8 @@ namespace Erp.Platform.PermissionManagement; public class PlatformGetPermissionListResultDto : GetPermissionListResultDto { - // ABP’nin orijinalinde PermissionGroupDto kullanıyor, - // biz de kendi alt tipimizi yaratıyoruz. + // ABP’nin orijinalinde PermissionGroupDto kullanıyor, + // biz de kendi alt tipimizi yaratıyoruz. public new List Groups { get; set; } = new(); } diff --git a/api/src/Erp.Platform.Application/Public/PublicAppService.cs b/api/src/Erp.Platform.Application/Public/PublicAppService.cs index d8679cea..ef3149d8 100644 --- a/api/src/Erp.Platform.Application/Public/PublicAppService.cs +++ b/api/src/Erp.Platform.Application/Public/PublicAppService.cs @@ -81,8 +81,8 @@ public class PublicAppService : PlatformAppService bodyBuilder.AppendLine($"E-Posta: {input.Email}"); bodyBuilder.AppendLine($"Telefon: {input.PhoneNumber}"); bodyBuilder.AppendLine($"Adres: {input.Address}"); - bodyBuilder.AppendLine($"Şube Sayısı: {input.NumberOfBranches}"); - bodyBuilder.AppendLine($"Kullanıcı Sayısı: {input.NumberOfUsers}"); + bodyBuilder.AppendLine($"Şube Sayısı: {input.NumberOfBranches}"); + bodyBuilder.AppendLine($"Kullanıcı Sayısı: {input.NumberOfUsers}"); bodyBuilder.AppendLine($"Mesaj: {input.Message}"); var SenderName = await _settingProvider.GetOrNullAsync(SeedConsts.AbpSettings.Mailing.Default.DefaultFromDisplayName); @@ -116,17 +116,17 @@ public class PublicAppService : PlatformAppService postQuery = postQuery.Where(p => p.CategoryId == input.CategoryId.Value); } - // Toplam adet (sayfalama öncesi) + // Toplam adet (sayfalama öncesi) var totalCount = await AsyncExecuter.CountAsync(postQuery); - // Sayfalama + sıralama + // Sayfalama + sıralama var pagedPosts = await AsyncExecuter.ToListAsync( postQuery .OrderByDescending(p => p.CreationTime) .PageBy(input) ); - // Sayfadaki kategori kayıtları + // Sayfadaki kategori kayıtları var categoryIds = pagedPosts.Select(x => x.CategoryId).Distinct().ToList(); var pageCategories = await _categoryRepository.GetListAsync(x => categoryIds.Contains(x.Id)); var categoryDict = pageCategories.ToDictionary(x => x.Id, x => x); diff --git a/api/src/Erp.Platform.Application/Reports/ReportAppService.cs b/api/src/Erp.Platform.Application/Reports/ReportAppService.cs index 805d67b4..c6afa979 100644 --- a/api/src/Erp.Platform.Application/Reports/ReportAppService.cs +++ b/api/src/Erp.Platform.Application/Reports/ReportAppService.cs @@ -42,7 +42,7 @@ public class ReportAppService : PlatformAppService, IReportAppService public async Task> GetTemplatesAsync(GetReportTemplatesInput input) { - // IQueryable baÅŸlat - Parameters'ı include et + // IQueryable başlat - Parameters'ı include et var query = await _reportTemplateRepository.GetQueryableAsync(); query = query.Include(x => x.Parameters); @@ -60,10 +60,10 @@ public class ReportAppService : PlatformAppService, IReportAppService query = query.Where(x => x.CategoryId == input.CategoryId); } - // Toplam kayıt sayısı + // Toplam kayıt sayısı var totalCount = await AsyncExecuter.CountAsync(query); - // Sıralama (ABP default olarak sorting null ise Id'ye göre sıralar) + // Sıralama (ABP default olarak sorting null ise Id'ye göre sıralar) query = query.OrderBy(input.Sorting ?? nameof(ReportTemplate.Name)); // Sayfalama @@ -73,7 +73,7 @@ public class ReportAppService : PlatformAppService, IReportAppService .Take(input.MaxResultCount) ); - // DTO dönüşümü + // DTO dönüşümü var templateDtos = templates.Select(MapToReportTemplateDto).ToList(); return new PagedResultDto( @@ -134,7 +134,7 @@ public class ReportAppService : PlatformAppService, IReportAppService public async Task UpdateTemplateAsync(Guid id, UpdateReportTemplateDto input) { - // 1) Şablonu getir ve alanlarını güncelle + // 1) Şablonu getir ve alanlarını güncelle var template = await _reportTemplateRepository.GetAsync(id); template.Name = input.Name; @@ -143,27 +143,27 @@ public class ReportAppService : PlatformAppService, IReportAppService template.CategoryId = input.CategoryId; template.Tags = JsonSerializer.Serialize(input.Tags ?? []); - // Şablonu hemen persist et (audit alanları için de iyi olur) + // Şablonu hemen persist et (audit alanları için de iyi olur) await _reportTemplateRepository.UpdateAsync(template, autoSave: true); - // 2) Parametrelerde upsert + artıklarını sil + // 2) Parametrelerde upsert + artıklarını sil var existingParams = await _reportParameterRepository.GetListAsync(p => p.TemplateId == id); var existingById = existingParams.ToDictionary(p => p.Id, p => p); var inputParams = input.Parameters ?? new List(); - // Id'si olan/olmayan diye ayır + // Id'si olan/olmayan diye ayır var withId = inputParams.Where(x => x.Id.HasValue).ToList(); var withoutId = inputParams.Where(x => !x.Id.HasValue).ToList(); - // 2.a) Id'si olanları güncelle (varsa) ya da ekle (yoksa) + // 2.a) Id'si olanları güncelle (varsa) ya da ekle (yoksa) foreach (var dto in withId) { var pid = dto.Id!.Value; if (existingById.TryGetValue(pid, out var entity)) { - // Güncelle + // Güncelle entity.Name = dto.Name; entity.Placeholder = dto.Placeholder; entity.Type = dto.Type; @@ -172,11 +172,11 @@ public class ReportAppService : PlatformAppService, IReportAppService entity.Description = dto.Description; await _reportParameterRepository.UpdateAsync(entity); - existingById.Remove(pid); // kalanlar silinecek listesinde kalmasın + existingById.Remove(pid); // kalanlar silinecek listesinde kalmasın } else { - // DB'de yoksa yeni ekle (istemci Id göndermiÅŸ olabilir) + // DB'de yoksa yeni ekle (istemci Id göndermiş olabilir) var newParam = new ReportParameter( pid, template.Id, @@ -217,10 +217,10 @@ public class ReportAppService : PlatformAppService, IReportAppService await _reportParameterRepository.DeleteAsync(leftover); } - // 3) DeÄŸiÅŸiklikleri tek seferde kaydet + // 3) Değişiklikleri tek seferde kaydet await CurrentUnitOfWork.SaveChangesAsync(); - // 4) Güncel DTO'yu dön + // 4) Güncel DTO'yu dön return await GetTemplateAsync(template.Id); } @@ -234,7 +234,7 @@ public class ReportAppService : PlatformAppService, IReportAppService { var query = await _generatedReportRepository.GetQueryableAsync(); - // Okuma senaryosu: tracking gerekmiyor + Template'ı eager load edelim + // Okuma senaryosu: tracking gerekmiyor + Template'ı eager load edelim query = query.AsNoTracking() .Include(x => x.ReportTemplate); @@ -252,12 +252,12 @@ public class ReportAppService : PlatformAppService, IReportAppService query = query.Where(x => x.TemplateId == input.TemplateId.Value); } - // Toplam kayıt + // Toplam kayıt var totalCount = await AsyncExecuter.CountAsync(query); - // Sıralama + // Sıralama if (!string.IsNullOrWhiteSpace(input.Sorting)) - query = query.OrderBy(input.Sorting); // ör. "generatedAt DESC" veya "templateName" + query = query.OrderBy(input.Sorting); // ör. "generatedAt DESC" veya "templateName" else query = query.OrderByDescending(x => x.CreationTime); @@ -287,7 +287,7 @@ public class ReportAppService : PlatformAppService, IReportAppService throw new ArgumentException("Template not found"); } - // HTML içeriÄŸindeki parametreleri deÄŸiÅŸtir + // HTML içeriğindeki parametreleri değiştir var generatedContent = template.HtmlContent; foreach (var param in input.Parameters) { diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/HostDataSeeder.cs b/api/src/Erp.Platform.DbMigrator/Seeds/HostDataSeeder.cs index 5fc92ffc..d012cdb0 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/HostDataSeeder.cs +++ b/api/src/Erp.Platform.DbMigrator/Seeds/HostDataSeeder.cs @@ -210,7 +210,7 @@ public class HostDataSeeder : IDataSeedContributor, ITransientDependency { var dbCtx = await _countryRepository.GetDbContextAsync(); - // DB’de mevcut kodları set olarak al + // DB’de mevcut kodları set olarak al var existingCodes = (await dbCtx.Set() .Select(c => c.Name) .ToListAsync()) @@ -221,14 +221,14 @@ public class HostDataSeeder : IDataSeedContributor, ITransientDependency using var fs = File.OpenRead(Path.Combine("Seeds", "CountryGroups.json")); var buffer = new List(capacity: 1000); - var seenCodes = new HashSet(); // JSON içindeki duplicate’leri yakalamak için + var seenCodes = new HashSet(); // JSON içindeki duplicate’leri yakalamak için await foreach (var item in JsonSerializer.DeserializeAsyncEnumerable(fs, options)) { if (item == null) continue; - if (string.IsNullOrWhiteSpace(item.Name)) continue; // boÅŸ kodları atla + if (string.IsNullOrWhiteSpace(item.Name)) continue; // boş kodları atla - // hem DB’de hem JSON içinde duplicate engelle + // hem DB’de hem JSON içinde duplicate engelle if (!seenCodes.Add(item.Name) || existingCodes.Contains(item.Name)) continue; @@ -263,7 +263,7 @@ public class HostDataSeeder : IDataSeedContributor, ITransientDependency { var dbCtx = await _countryRepository.GetDbContextAsync(); - // DB’de mevcut kodları set olarak al + // DB’de mevcut kodları set olarak al var existingCodes = (await dbCtx.Set() .Select(c => c.Code) .ToListAsync()) @@ -274,14 +274,14 @@ public class HostDataSeeder : IDataSeedContributor, ITransientDependency using var fs = File.OpenRead(Path.Combine("Seeds", "Countries.json")); var buffer = new List(capacity: 1000); - var seenCodes = new HashSet(); // JSON içindeki duplicate’leri yakalamak için + var seenCodes = new HashSet(); // JSON içindeki duplicate’leri yakalamak için await foreach (var item in JsonSerializer.DeserializeAsyncEnumerable(fs, options)) { if (item == null) continue; - if (string.IsNullOrWhiteSpace(item.Code)) continue; // boÅŸ kodları atla + if (string.IsNullOrWhiteSpace(item.Code)) continue; // boş kodları atla - // hem DB’de hem JSON içinde duplicate engelle + // hem DB’de hem JSON içinde duplicate engelle if (!seenCodes.Add(item.Code) || existingCodes.Contains(item.Code)) continue; @@ -323,7 +323,7 @@ public class HostDataSeeder : IDataSeedContributor, ITransientDependency { var dbCtx = await _cityRepository.GetDbContextAsync(); - // 1. Mevcut kayıtları çek (tek sorguda) + // 1. Mevcut kayıtları çek (tek sorguda) var existingCities = await dbCtx.Set() .Select(d => new { d.Code }) .ToListAsync(); @@ -346,7 +346,7 @@ public class HostDataSeeder : IDataSeedContributor, ITransientDependency if (item == null) continue; var key = $"{item.Country}.{item.Code}"; - if (existingSet.Contains(key)) continue; // duplicate kontrolü + if (existingSet.Contains(key)) continue; // duplicate kontrolü buffer.Add(new City( Guid.NewGuid(), @@ -384,7 +384,7 @@ public class HostDataSeeder : IDataSeedContributor, ITransientDependency { var dbCtx = await _districtRepository.GetDbContextAsync(); - // 1. Mevcut kayıtları çek (tek sorguda) + // 1. Mevcut kayıtları çek (tek sorguda) var existingDistricts = await dbCtx.Set() .Select(d => new { d.Country, d.City, d.Name, d.Township, d.Street, d.ZipCode }) .ToListAsync(); diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/LanguagesData.json b/api/src/Erp.Platform.DbMigrator/Seeds/LanguagesData.json index 7dd2b518..9059e8dc 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/LanguagesData.json +++ b/api/src/Erp.Platform.DbMigrator/Seeds/LanguagesData.json @@ -9181,6 +9181,12 @@ "tr": "Sınıf Planlama", "en": "Class Planning" }, + { + "resourceName": "Platform", + "key": "App.SupplyChain.PaymentTerm", + "tr": "Ödeme Koşulları", + "en": "Payment Terms" + }, { "resourceName": "Platform", "key": "App.SupplyChain.MaterialType", @@ -9201,7 +9207,19 @@ }, { "resourceName": "Platform", - "key": "App.SupplyChain.Supplier", + "key": "App.SupplyChain.SupplyType", + "tr": "Tedarikçi Tipleri", + "en": "Supply Types" + }, + { + "resourceName": "Platform", + "key": "App.SupplyChain.SupplyCardType", + "tr": "Tedarikçi Kart Tipleri", + "en": "Supply Card Types" + }, + { + "resourceName": "Platform", + "key": "App.SupplyChain.Supply", "tr": "Tedarikçiler", "en": "Suppliers" }, diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Administration.cs b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Administration.cs index 856c5c81..646400b0 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Administration.cs +++ b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Administration.cs @@ -3985,7 +3985,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.WorkHour), PivotSettingsJson = DefaultPivotSettingsJson }, - // Saat alanları + // Saat alanları new() { ListFormCode = listFormWorkHour.ListFormCode, CultureName = LanguageCodes.En, @@ -4016,7 +4016,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep PivotSettingsJson = DefaultPivotSettingsJson, EditorOptions = EditorOptionValues.TimeSpanOptions }, - // Günlük kolonlar + // Günlük kolonlar new() { ListFormCode = listFormWorkHour.ListFormCode, diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Coordinator.cs b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Coordinator.cs index 00448e1a..67afa4a7 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Coordinator.cs +++ b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Coordinator.cs @@ -523,7 +523,7 @@ public class ListFormSeeder_Coordinator : IDataSeedContributor, ITransientDepend PivotSettingsJson = DefaultPivotSettingsJson }, - // Öğle Arası + // Öğle Arası new() { ListFormCode = listFormSchedule.ListFormCode, @@ -570,7 +570,7 @@ public class ListFormSeeder_Coordinator : IDataSeedContributor, ITransientDepend PivotSettingsJson = DefaultPivotSettingsJson }, - // Günler + // Günler new() { ListFormCode = listFormSchedule.ListFormCode, @@ -1524,7 +1524,7 @@ public class ListFormSeeder_Coordinator : IDataSeedContributor, ITransientDepend ValueExpr = "key", LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { new () { Key="Seviye",Name="Seviye" }, - new () { Key="Sınav EÄŸitimi",Name="Sınav EÄŸitimi" }, + new () { Key="Sınav Eğitimi",Name="Sınav Eğitimi" }, }), }), ColumnCustomizationJson = DefaultColumnCustomizationJson, @@ -1915,8 +1915,8 @@ public class ListFormSeeder_Coordinator : IDataSeedContributor, ITransientDepend DisplayExpr = "name", ValueExpr = "key", LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key="Ana",Name="Ana Öğretmen" }, - new () { Key="Ek",Name="Ek Öğretmen" }, + new () { Key="Ana",Name="Ana Öğretmen" }, + new () { Key="Ek",Name="Ek Öğretmen" }, }), }), ColumnCustomizationJson = DefaultColumnCustomizationJson, @@ -1939,8 +1939,8 @@ public class ListFormSeeder_Coordinator : IDataSeedContributor, ITransientDepend DisplayExpr = "name", ValueExpr = "key", LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key="Ana",Name="Ana Öğretmen" }, - new () { Key="Ek",Name="Ek Öğretmen" }, + new () { Key="Ana",Name="Ana Öğretmen" }, + new () { Key="Ek",Name="Ek Öğretmen" }, }), }), ColumnCustomizationJson = DefaultColumnCustomizationJson, @@ -1963,8 +1963,8 @@ public class ListFormSeeder_Coordinator : IDataSeedContributor, ITransientDepend DisplayExpr = "name", ValueExpr = "key", LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key="Ana",Name="Ana Öğretmen" }, - new () { Key="Ek",Name="Ek Öğretmen" }, + new () { Key="Ana",Name="Ana Öğretmen" }, + new () { Key="Ek",Name="Ek Öğretmen" }, }), }), ColumnCustomizationJson = DefaultColumnCustomizationJson, @@ -1987,8 +1987,8 @@ public class ListFormSeeder_Coordinator : IDataSeedContributor, ITransientDepend DisplayExpr = "name", ValueExpr = "key", LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key="Ana",Name="Ana Öğretmen" }, - new () { Key="Ek",Name="Ek Öğretmen" }, + new () { Key="Ana",Name="Ana Öğretmen" }, + new () { Key="Ek",Name="Ek Öğretmen" }, }), }), ColumnCustomizationJson = DefaultColumnCustomizationJson, @@ -2370,13 +2370,13 @@ public class ListFormSeeder_Coordinator : IDataSeedContributor, ITransientDepend DisplayExpr = "name", ValueExpr = "key", LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key= "multiple-choice", Name= "Çoktan Seçmeli" }, - new () { Key= "fill-blank", Name= "BoÅŸluk Doldurma" }, - new () { Key= "multiple-answer", Name= "Çok Yanıtlı"}, - new () { Key= "matching", Name= "EÅŸleÅŸtirme" }, - new () { Key= "ordering", Name= "Sıralama" }, - new () { Key= "open-ended", Name= "Açık Uçlu" }, - new () { Key= "true-false", Name= "DoÄŸru-Yanlış" }, + new () { Key= "multiple-choice", Name= "Çoktan Seçmeli" }, + new () { Key= "fill-blank", Name= "Boşluk Doldurma" }, + new () { Key= "multiple-answer", Name= "Çok Yanıtlı"}, + new () { Key= "matching", Name= "Eşleştirme" }, + new () { Key= "ordering", Name= "Sıralama" }, + new () { Key= "open-ended", Name= "Açık Uçlu" }, + new () { Key= "true-false", Name= "Doğru-Yanlış" }, new () { Key= "calculation", Name="Hesaplama" } }), }), diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Hr.cs b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Hr.cs index f72a7e20..25ec4cd5 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Hr.cs +++ b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Hr.cs @@ -986,20 +986,20 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency DisplayExpr = "name", ValueExpr = "key", LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key= "⭐", Name= "⭐ Yıldız" }, + new () { Key= "⭐", Name= "⭐ Yıldız" }, new () { Key= "🏆", Name= "🏆 Kupa" }, - new () { Key= "🥇", Name= "🥇 Altın Madalya" }, - new () { Key= "🥈", Name= "🥈 Gümüş Madalya" }, + new () { Key= "🥇", Name= "🥇 Altın Madalya" }, + new () { Key= "🥈", Name= "🥈 Gümüş Madalya" }, new () { Key= "🥉", Name= "🥉 Bronz Madalya" }, - new () { Key= "👑", Name= "👑 Taç" }, + new () { Key= "👑", Name= "👑 Taç" }, new () { Key= "💎", Name= "💎 Elmas" }, new () { Key= "💡", Name= "💡 Ampul" }, - new () { Key= "🔥", Name= "🔥 AteÅŸ" }, - new () { Key= "âš¡", Name= "âš¡ ŞimÅŸek" }, + new () { Key= "🔥", Name= "🔥 Ateş" }, + new () { Key= "âš¡", Name= "âš¡ Şimşek" }, new () { Key= "🎯", Name= "🎯 Hedef" }, new () { Key= "📈", Name= "📈 Grafik" }, new () { Key= "🚀", Name= "🚀 Roket" }, - new () { Key= "💪", Name= "💪 Güç" }, + new () { Key= "💪", Name= "💪 Güç" }, new () { Key= "❤️", Name= "❤️ Kalp" } }), }), @@ -3167,8 +3167,8 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency }) }, new() { - Hint = "Ödeme & Kesinti", - Text ="Ödeme & Kesinti", + Hint = "Ödeme & Kesinti", + Text ="Ödeme & Kesinti", UrlTarget="_blank", AuthName = AppCodes.Hr.Payroll + ".Update", Url="/admin/list/list-employees/@Id" @@ -3263,14 +3263,14 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency new () { Key= 2, Name= "02-Şubat" }, new () { Key= 3, Name= "03-Mart"}, new () { Key= 4, Name= "04-Nisan" }, - new () { Key= 5, Name= "05-Mayıs" }, + new () { Key= 5, Name= "05-Mayıs" }, new () { Key= 6, Name= "06-Haziran" }, new () { Key= 7, Name= "07-Temmuz" }, - new () { Key= 8, Name= "08-AÄŸustos" }, - new () { Key= 9, Name= "09-Eylül" }, + new () { Key= 8, Name= "08-Ağustos" }, + new () { Key= 9, Name= "09-Eylül" }, new () { Key=10, Name= "10-Ekim" }, - new () { Key=11, Name= "11-Kasım" }, - new () { Key=12, Name= "12-Aralık" }, + new () { Key=11, Name= "11-Kasım" }, + new () { Key=12, Name= "12-Aralık" }, }), }), ValidationRuleJson = DefaultValidationRuleRequiredJson, diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Intranet.cs b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Intranet.cs index 25b3e924..f8b0924a 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Intranet.cs +++ b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Intranet.cs @@ -612,28 +612,28 @@ public class ListFormSeeder_Intranet : IDataSeedContributor, ITransientDependenc IsDeleted = false, LookupJson = JsonSerializer.Serialize(new LookupDto { - //TODO: Materials kısmında Query olarak getirmeli + //TODO: Materials kısmında Query olarak getirmeli DataSourceType = UiLookupDataSourceTypeEnum.StaticData, DisplayExpr = "name", ValueExpr = "key", LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key="Mercimek Çorbası", Name="Mercimek Çorbası" }, + new () { Key="Mercimek Çorbası", Name="Mercimek Çorbası" }, new () { Key="Tavuk Şinitzel", Name="Tavuk Şinitzel" }, - new () { Key="Bulgur Pilavı", Name="Bulgur Pilavı" }, + new () { Key="Bulgur Pilavı", Name="Bulgur Pilavı" }, new () { Key="Salata", Name="Salata" }, new () { Key="Meyve", Name="Meyve" }, - new () { Key="Domates Çorbası", Name="Domates Çorbası" }, + new () { Key="Domates Çorbası", Name="Domates Çorbası" }, new () { Key="Etli Kuru Fasulye", Name="Etli Kuru Fasulye" }, new () { Key="Pilav", Name="Pilav" }, - new () { Key="TurÅŸu", Name="TurÅŸu" }, + new () { Key="Turşu", Name="Turşu" }, new () { Key="Komposto", Name="Komposto" }, new () { Key="Tarator", Name="Tarator" }, - new () { Key="Köfte", Name="Köfte" }, - new () { Key="Patates Püresi", Name="Patates Püresi" }, - new () { Key="YoÄŸurtlu Kabak Salatası", Name="YoÄŸurtlu Kabak Salatası" }, - new () { Key="Fırında Levrek", Name="Fırında Levrek" }, + new () { Key="Köfte", Name="Köfte" }, + new () { Key="Patates Püresi", Name="Patates Püresi" }, + new () { Key="Yoğurtlu Kabak Salatası", Name="Yoğurtlu Kabak Salatası" }, + new () { Key="Fırında Levrek", Name="Fırında Levrek" }, new () { Key="Kuskus", Name="Kuskus" }, - new () { Key="Roka Salatası", Name="Roka Salatası" } + new () { Key="Roka Salatası", Name="Roka Salatası" } }), }), ValidationRuleJson = DefaultValidationRuleRequiredJson, @@ -1098,13 +1098,13 @@ public class ListFormSeeder_Intranet : IDataSeedContributor, ITransientDependenc DisplayExpr = "name", ValueExpr = "key", LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key= "Kadıköy İskele", Name= "Kadıköy İskele" }, - new () { Key= "Bostancı", Name= "Bostancı" }, - new () { Key= "Acıbadem", Name="Acıbadem" }, - new () { Key= "Kozyatağı", Name="Kozyatağı" }, + new () { Key= "Kadıköy İskele", Name= "Kadıköy İskele" }, + new () { Key= "Bostancı", Name= "Bostancı" }, + new () { Key= "Acıbadem", Name="Acıbadem" }, + new () { Key= "Kozyatağı", Name="Kozyatağı" }, new () { Key= "Ofis", Name="Ofis" }, - new () { Key= "Üsküdar Meydanı", Name="Üsküdar Meydanı" }, - new () { Key= "Kısıklı", Name="Kısıklı" }, + new () { Key= "Üsküdar Meydanı", Name="Üsküdar Meydanı" }, + new () { Key= "Kısıklı", Name="Kısıklı" }, new () { Key= "Bulgurlu", Name="Bulgurlu" }, new () { Key= "Ümraniye", Name="Ümraniye" }, }), diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Participant.cs b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Participant.cs index 943a7a2e..1ca5404b 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Participant.cs +++ b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Participant.cs @@ -644,13 +644,13 @@ public class ListFormSeeder_Participant : IDataSeedContributor, ITransientDepend DisplayExpr = "name", ValueExpr = "key", LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key="KiÅŸisel",Name="KiÅŸisel" }, - new () { Key="Fiyat / Bütçe",Name="Fiyat / Bütçe" }, - new () { Key="Ürün / Hizmet",Name="Ürün / Hizmet" }, + new () { Key="Kişisel",Name="Kişisel" }, + new () { Key="Fiyat / Bütçe",Name="Fiyat / Bütçe" }, + new () { Key="Ürün / Hizmet",Name="Ürün / Hizmet" }, new () { Key="Rekabet",Name="Rekabet" }, new () { Key="Zamanlama",Name="Zamanlama" }, new () { Key="Lokasyon",Name="Lokasyon" }, - new () { Key="İletiÅŸim",Name="İletiÅŸim" }, + new () { Key="İletişim",Name="İletişim" }, }), }), ColumnCustomizationJson = DefaultColumnCustomizationJson, diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Saas.cs b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Saas.cs index bb96ccdd..1d5c5322 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Saas.cs +++ b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Saas.cs @@ -3908,8 +3908,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency }, new() { ButtonPosition= UiCommandButtonPositionTypeEnum.Toolbar, - Hint = "Hangfire Aç", - Text = "Hangfire Aç", + Hint = "Hangfire Aç", + Text = "Hangfire Aç", AuthName=AppCodes.BackgroundWorkers, Url= swaggerRootUrl + "/hangfire", }, diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_SupplyChain.cs b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_SupplyChain.cs index b44b9b8a..0ac25e01 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_SupplyChain.cs +++ b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_SupplyChain.cs @@ -668,5 +668,1025 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend ]); } #endregion + + #region Payment Terms + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == ListFormCodes.Lists.PaymentTerm)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + IsSubForm = true, + LayoutJson = DefaultLayoutJson, + CultureName = LanguageCodes.En, + ListFormCode = ListFormCodes.Lists.PaymentTerm, + Name = AppCodes.SupplyChain.PaymentTerm, + Title = AppCodes.SupplyChain.PaymentTerm, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = AppCodes.SupplyChain.PaymentTerm, + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.PaymentTerm)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = JsonSerializer.Serialize(new GridFilterRowDto { Visible = true }), + HeaderFilterJson = JsonSerializer.Serialize(new { Visible = true }), + SearchPanelJson = JsonSerializer.Serialize(new { Visible = true }), + GroupPanelJson = JsonSerializer.Serialize(new { Visible = true }), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson, + PermissionJson = DefaultPermissionJson(AppCodes.SupplyChain.PaymentTerm), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.PaymentTerm)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson, + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(AppCodes.SupplyChain.PaymentTerm, 500, 300, true, true, true, true, false), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson, + EditingFormJson = JsonSerializer.Serialize(new List() + { + new() { + Order=1, ColCount=1, ColSpan=1, ItemType="group", Items =[ + new EditingFormItemDto { Order = 1, DataField="Name", ColSpan = 1, IsRequired =true, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 2, DataField="Description", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea }, + new EditingFormItemDto { Order = 3, DataField="IsActive", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox }, + ]} + }), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value } + }), + } + ); + + #region Payment Term Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + Width = 100, + ListOrderNo = 1, + Visible = false, + IsActive = true, + IsDeleted = false, + SortIndex = 0, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.PaymentTerm), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + Width = 300, + ListOrderNo = 2, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.PaymentTerm), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Description", + Width = 500, + ListOrderNo = 3, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.PaymentTerm), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsActive", + Width = 100, + ListOrderNo = 4, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.PaymentTerm), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ]); + #endregion + } + #endregion + + #region Supply Type + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == ListFormCodes.Lists.SupplyType)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + IsSubForm = true, + LayoutJson = DefaultLayoutJson, + CultureName = LanguageCodes.En, + ListFormCode = ListFormCodes.Lists.SupplyType, + Name = AppCodes.SupplyChain.SupplyType, + Title = AppCodes.SupplyChain.SupplyType, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = AppCodes.SupplyChain.SupplyType, + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.SupplyType)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = JsonSerializer.Serialize(new GridFilterRowDto { Visible = true }), + HeaderFilterJson = JsonSerializer.Serialize(new { Visible = true }), + SearchPanelJson = JsonSerializer.Serialize(new { Visible = true }), + GroupPanelJson = JsonSerializer.Serialize(new { Visible = true }), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson, + PermissionJson = DefaultPermissionJson(AppCodes.SupplyChain.SupplyType), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.SupplyType)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson, + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(AppCodes.SupplyChain.SupplyType, 500, 300, true, true, true, true, false), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson, + EditingFormJson = JsonSerializer.Serialize(new List() + { + new() { + Order=1, ColCount=1, ColSpan=1, ItemType="group", Items =[ + new EditingFormItemDto { Order = 1, DataField="Name", ColSpan = 1, IsRequired =true, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 2, DataField="Description", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea }, + new EditingFormItemDto { Order = 3, DataField="IsActive", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox }, + ]} + }), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value } + }), + } + ); + + #region Supply Type Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + Width = 100, + ListOrderNo = 1, + Visible = false, + IsActive = true, + IsDeleted = false, + SortIndex = 0, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.SupplyType), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + Width = 300, + ListOrderNo = 2, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.SupplyType), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Description", + Width = 500, + ListOrderNo = 3, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.SupplyType), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsActive", + Width = 100, + ListOrderNo = 4, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.SupplyType), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ]); + #endregion + } + #endregion + + #region Supply Card Type + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == ListFormCodes.Lists.SupplyCardType)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + IsSubForm = true, + LayoutJson = DefaultLayoutJson, + CultureName = LanguageCodes.En, + ListFormCode = ListFormCodes.Lists.SupplyCardType, + Name = AppCodes.SupplyChain.SupplyCardType, + Title = AppCodes.SupplyChain.SupplyCardType, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = AppCodes.SupplyChain.SupplyCardType, + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.SupplyCardType)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = JsonSerializer.Serialize(new GridFilterRowDto { Visible = true }), + HeaderFilterJson = JsonSerializer.Serialize(new { Visible = true }), + SearchPanelJson = JsonSerializer.Serialize(new { Visible = true }), + GroupPanelJson = JsonSerializer.Serialize(new { Visible = true }), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson, + PermissionJson = DefaultPermissionJson(AppCodes.SupplyChain.SupplyCardType), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.SupplyCardType)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson, + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(AppCodes.SupplyChain.SupplyCardType, 500, 300, true, true, true, true, false), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson, + EditingFormJson = JsonSerializer.Serialize(new List() + { + new() { + Order=1, ColCount=1, ColSpan=1, ItemType="group", Items =[ + new EditingFormItemDto { Order = 1, DataField="Name", ColSpan = 1, IsRequired =true, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 2, DataField="Description", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea }, + new EditingFormItemDto { Order = 3, DataField="IsActive", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox }, + ]} + }), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value } + }), + } + ); + + #region Supply Type Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + Width = 100, + ListOrderNo = 1, + Visible = false, + IsActive = true, + IsDeleted = false, + SortIndex = 0, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.SupplyCardType), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + Width = 300, + ListOrderNo = 2, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.SupplyCardType), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Description", + Width = 500, + ListOrderNo = 3, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.SupplyCardType), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsActive", + Width = 100, + ListOrderNo = 4, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.SupplyCardType), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ]); + #endregion + } + #endregion + + #region Supplier + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == ListFormCodes.Lists.Supply)) + { + var listForm = await _listFormRepository.InsertAsync(new ListForm() + { + ListFormType = ListFormTypeEnum.List, + IsSubForm = false, + LayoutJson = DefaultLayoutJson, + CultureName = LanguageCodes.En, + ListFormCode = ListFormCodes.Lists.Supply, + Name = AppCodes.SupplyChain.Supply, + Title = AppCodes.SupplyChain.Supply, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = AppCodes.SupplyChain.Supply, + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Partner)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = "\"IsDeleted\" = 'false' AND \"PartyType\" = 'Supplier'", + SortMode = GridOptions.SortModeSingle, + FilterRowJson = JsonSerializer.Serialize(new GridFilterRowDto { Visible = true }), + HeaderFilterJson = JsonSerializer.Serialize(new { Visible = true }), + SearchPanelJson = JsonSerializer.Serialize(new { Visible = true }), + GroupPanelJson = JsonSerializer.Serialize(new { Visible = true }), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson, + PermissionJson = DefaultPermissionJson(AppCodes.SupplyChain.Supply), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Partner)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson, + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(AppCodes.SupplyChain.Supply, 900, 800, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List() + { + new() + { + Order = 1, Caption = "General", ColCount = 2, ColSpan = 2, ItemType = "group", Items = + [ + new EditingFormItemDto { Order = 1, DataField = "Code", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 2, DataField = "Name", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 3, DataField = "PartyType", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 4, DataField = "SectorId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 5, DataField = "TaxNumber", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox }, + new EditingFormItemDto { Order = 6, DataField = "TaxOffice", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 7, DataField = "CurrencyId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 8, DataField = "PaymentTermId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 9, DataField = "CreditLimit", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox }, + ] + }, + new() + { + Order = 2, Caption = "Address", ColCount = 2, ColSpan = 2, ItemType = "group", Items = + [ + new EditingFormItemDto { Order = 10, DataField = "Country", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 11, DataField = "City", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 12, DataField = "District", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 13, DataField = "Street", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 14, DataField = "Address1", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 15, DataField = "Address2", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 16, DataField = "PostalCode", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 17, DataField = "PhoneNumber", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 18, DataField = "MobileNumber", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 19, DataField = "FaxNumber", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 20, DataField = "Email", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 21, DataField = "Website", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox }, + ] + }, + new() + { + Order = 3, Caption="Supply Card", ColCount = 2, ColSpan = 2, ItemType = "group", Items = + [ + new EditingFormItemDto { Order = 22, DataField = "SupplierTypeId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 23, DataField = "SupplyCardTypeId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 24, DataField = "CardNumber", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 25, DataField = "ValidFrom", ColSpan = 1, EditorType2 = EditorTypes.dxDateBox }, + new EditingFormItemDto { Order = 26, DataField = "ValidTo", ColSpan = 1, EditorType2 = EditorTypes.dxDateBox }, + new EditingFormItemDto { Order = 27, DataField = "CurrentBalance", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox }, + new EditingFormItemDto { Order = 28, DataField = "DiscountRate", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox }, + new EditingFormItemDto { Order = 29, DataField = "Status", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, + ] + } + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson, + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] + { + new() { FieldName = "PartyType", FieldDbType = DbType.String, Value = "Supplier", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "CreditLimit", FieldDbType = DbType.Decimal, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "CurrentBalance", FieldDbType = DbType.Decimal, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "DiscountRate", FieldDbType = DbType.Decimal, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "Status", FieldDbType = DbType.String, Value = "Aktif", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "Country", FieldDbType = DbType.String, Value = "TR", CustomValueType = FieldCustomValueTypeEnum.Value }, + }) + }); + + await _listFormFieldRepository.InsertManyAsync( + [ + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + Width = 100, + ListOrderNo = 1, + Visible = false, + IsActive = true, + IsDeleted = false, + SortIndex = 0, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Code", + Width = 140, + ListOrderNo = 2, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + Width = 250, + ListOrderNo = 3, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + SortIndex = 1, + SortDirection = GridColumnOptions.SortOrderAsc, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PartyType", + Width = 100, + ListOrderNo = 4, + Visible = true, + IsActive = true, + IsDeleted = false, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new() { Key="Customer", Name="Customer" }, + new() { Key="Supplier", Name="Supplier" }, + new() { Key="Both", Name="Both" }, + new() { Key="Other", Name="Other" }, + }), + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "SectorId", + Width = 100, + ListOrderNo = 5, + Visible = true, + IsActive = true, + IsDeleted = false, + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Sector), "Id", "Name"), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int64, + FieldName = "TaxNumber", + Width = 100, + ListOrderNo = 6, + Visible = true, + IsActive = true, + IsDeleted = false, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "TaxOffice", + Width = 100, + ListOrderNo = 7, + Visible = true, + IsActive = true, + IsDeleted = false, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "CurrencyId", + Width = 100, + ListOrderNo = 8, + Visible = true, + IsActive = true, + IsDeleted = false, + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Currency), "Id", "Name"), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "PaymentTermId", + Width = 100, + ListOrderNo = 9, + Visible = true, + IsActive = true, + IsDeleted = false, + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.PaymentTerm), "Id", "Name"), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "CreditLimit", + Width = 100, + ListOrderNo = 10, + Visible = true, + IsActive = true, + IsDeleted = false, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Country", + Width = 100, + ListOrderNo = 11, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.CountryValues, + CascadeEmptyFields = "City,District,Street" + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "City", + Width = 100, + ListOrderNo = 12, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.CityValues, + CascadeRelationField = "Country", + CascadeFilterOperator="=", + CascadeParentFields = "Country", + CascadeEmptyFields = "District,Street" + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "District", + Width = 100, + ListOrderNo = 13, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.DistrictValues, + CascadeRelationField = "City", + CascadeFilterOperator="=", + CascadeParentFields = "Country,City", + CascadeEmptyFields = "Street", + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Street", + Width = 100, + ListOrderNo = 14, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.StreetValues, + CascadeRelationField = "District", + CascadeFilterOperator="=", + CascadeParentFields = "Country,City,District", + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Address1", + Width = 150, + ListOrderNo = 15, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Address2", + Width = 150, + ListOrderNo = 16, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PostalCode", + Width = 100, + ListOrderNo = 17, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PhoneNumber", + Width = 100, + ListOrderNo = 18, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "MobileNumber", + Width = 100, + ListOrderNo = 19, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "FaxNumber", + Width = 100, + ListOrderNo = 20, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Email", + Width = 100, + ListOrderNo = 21, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleEmailJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Website", + Width = 100, + ListOrderNo = 22, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "SupplierTypeId", + Width = 100, + ListOrderNo = 23, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new() { Key="Manufacturer", Name="Manufacturer" }, + new() { Key="Distributor", Name="Distributor" }, + new() { Key="Wholesaler", Name="Wholesaler" }, + new() { Key="ServiceProvider", Name="ServiceProvider" }, + new() { Key="Other", Name="Other" }, + }), + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "SupplyCardTypeId", + Width = 100, + ListOrderNo = 24, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new() { Key="Standard", Name="Standard" }, + new() { Key="Premium", Name="Premium" }, + new() { Key="Strategic", Name="Strategic" }, + new() { Key="Preferred", Name="Preferred" }, + }), + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Status", + Width = 100, + ListOrderNo = 25, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new() { Key="Prospect", Name="Prospect" }, + new() { Key="Active", Name="Active" }, + new() { Key="Inactive", Name="Inactive" }, + new() { Key="Blocked", Name="Blocked" }, + }), + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "CardNumber", + Width = 100, + ListOrderNo = 26, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Date, + FieldName = "ValidFrom", + Width = 100, + ListOrderNo = 27, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Date, + FieldName = "ValidTo", + Width = 100, + ListOrderNo = 28, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "CurrentBalance", + Width = 100, + ListOrderNo = 29, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "DiscountRate", + Width = 100, + ListOrderNo = 30, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Supply), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ]); + } + #endregion } } diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/MenusData.json b/api/src/Erp.Platform.DbMigrator/Seeds/MenusData.json index 3bde625e..f220149e 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/MenusData.json +++ b/api/src/Erp.Platform.DbMigrator/Seeds/MenusData.json @@ -512,13 +512,6 @@ "App.Coordinator.Tests" ] }, - { - "key": "admin.supplychain.suppliers", - "path": "/admin/supplychain/suppliers", - "componentPath": "@/views/supplychain/components/SupplierCards", - "routeType": "protected", - "authority": null - }, { "key": "admin.supplychain.requests", "path": "/admin/supplychain/requests", @@ -2392,19 +2385,49 @@ }, { "ParentCode": "App.SupplyChain", - "Code": "App.SupplyChain.Supplier", - "DisplayName": "App.SupplyChain.Supplier", + "Code": "App.SupplyChain.PaymentTerm", + "DisplayName": "App.SupplyChain.PaymentTerm", "Order": 4, - "Url": "/admin/supplychain/suppliers", + "Url": "/admin/list/list-paymentterm", + "Icon": "FcDebt", + "RequiredPermissionName": "App.SupplyChain.PaymentTerm", + "IsDisabled": false + }, + { + "ParentCode": "App.SupplyChain", + "Code": "App.SupplyChain.SupplyType", + "DisplayName": "App.SupplyChain.SupplyType", + "Order": 5, + "Url": "/admin/list/list-supplytype", + "Icon": "FcTreeStructure", + "RequiredPermissionName": "App.SupplyChain.SupplyType", + "IsDisabled": false + }, + { + "ParentCode": "App.SupplyChain", + "Code": "App.SupplyChain.SupplyCardType", + "DisplayName": "App.SupplyChain.SupplyCardType", + "Order": 6, + "Url": "/admin/list/list-supplycardtype", + "Icon": "FcComboChart", + "RequiredPermissionName": "App.SupplyChain.SupplyCardType", + "IsDisabled": false + }, + { + "ParentCode": "App.SupplyChain", + "Code": "App.SupplyChain.Supply", + "DisplayName": "App.SupplyChain.Supply", + "Order": 7, + "Url": "/admin/list/list-supply", "Icon": "FcBusiness", - "RequiredPermissionName": "App.SupplyChain.Supplier", + "RequiredPermissionName": "App.SupplyChain.Supply", "IsDisabled": false }, { "ParentCode": "App.SupplyChain", "Code": "App.SupplyChain.Request", "DisplayName": "App.SupplyChain.Request", - "Order": 5, + "Order": 8, "Url": "/admin/supplychain/requests", "Icon": "FcServices", "RequiredPermissionName": "App.SupplyChain.Request", @@ -2414,7 +2437,7 @@ "ParentCode": "App.SupplyChain", "Code": "App.SupplyChain.Quotation", "DisplayName": "App.SupplyChain.Quotation", - "Order": 7, + "Order": 9, "Url": "/admin/supplychain/quotations", "Icon": "FcSurvey", "RequiredPermissionName": "App.SupplyChain.Quotation", @@ -2424,7 +2447,7 @@ "ParentCode": "App.SupplyChain", "Code": "App.SupplyChain.Approval", "DisplayName": "App.SupplyChain.Approval", - "Order": 8, + "Order": 10, "Url": "/admin/supplychain/approvals", "Icon": "FcApproval", "RequiredPermissionName": "App.SupplyChain.Approval", @@ -2434,7 +2457,7 @@ "ParentCode": "App.SupplyChain", "Code": "App.SupplyChain.Order", "DisplayName": "App.SupplyChain.Order", - "Order": 9, + "Order": 11, "Url": "/admin/supplychain/orders", "Icon": "FcShop", "RequiredPermissionName": "App.SupplyChain.Order", @@ -2444,7 +2467,7 @@ "ParentCode": "App.SupplyChain", "Code": "App.SupplyChain.Delivery", "DisplayName": "App.SupplyChain.Delivery", - "Order": 10, + "Order": 12, "Url": "/admin/supplychain/delivery", "Icon": "FcShipped", "RequiredPermissionName": "App.SupplyChain.Delivery", diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/PermissionsData.json b/api/src/Erp.Platform.DbMigrator/Seeds/PermissionsData.json index 5254b108..b75d2235 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/PermissionsData.json +++ b/api/src/Erp.Platform.DbMigrator/Seeds/PermissionsData.json @@ -5431,6 +5431,195 @@ "MultiTenancySide": 2, "MenuGroup": "Kurs" }, + { + "GroupName": "App.SupplyChain", + "Name": "App.SupplyChain.PaymentTerm", + "ParentName": null, + "DisplayName": "App.SupplyChain.PaymentTerm", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, + { + "GroupName": "App.SupplyChain", + "Name": "App.SupplyChain.PaymentTerm.Create", + "ParentName": "App.SupplyChain.PaymentTerm", + "DisplayName": "Create", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, + { + "GroupName": "App.SupplyChain", + "Name": "App.SupplyChain.PaymentTerm.Update", + "ParentName": "App.SupplyChain.PaymentTerm", + "DisplayName": "Update", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, + { + "GroupName": "App.SupplyChain", + "Name": "App.SupplyChain.PaymentTerm.Delete", + "ParentName": "App.SupplyChain.PaymentTerm", + "DisplayName": "Delete", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, + { + "GroupName": "App.SupplyChain", + "Name": "App.SupplyChain.PaymentTerm.Export", + "ParentName": "App.SupplyChain.PaymentTerm", + "DisplayName": "Export", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, + { + "GroupName": "App.SupplyChain", + "Name": "App.SupplyChain.PaymentTerm.Import", + "ParentName": "App.SupplyChain.PaymentTerm", + "DisplayName": "Import", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, + { + "GroupName": "App.SupplyChain", + "Name": "App.SupplyChain.PaymentTerm.Activity", + "ParentName": "App.SupplyChain.PaymentTerm", + "DisplayName": "Activity", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, + { + "GroupName": "App.SupplyChain", + "Name": "App.SupplyChain.SupplyType", + "ParentName": null, + "DisplayName": "App.SupplyChain.SupplyType", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, + { + "GroupName": "App.SupplyChain", + "Name": "App.SupplyChain.SupplyType.Create", + "ParentName": "App.SupplyChain.SupplyType", + "DisplayName": "Create", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, + { + "GroupName": "App.SupplyChain", + "Name": "App.SupplyChain.SupplyType.Update", + "ParentName": "App.SupplyChain.SupplyType", + "DisplayName": "Update", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, + { + "GroupName": "App.SupplyChain", + "Name": "App.SupplyChain.SupplyType.Delete", + "ParentName": "App.SupplyChain.SupplyType", + "DisplayName": "Delete", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, + { + "GroupName": "App.SupplyChain", + "Name": "App.SupplyChain.SupplyType.Export", + "ParentName": "App.SupplyChain.SupplyType", + "DisplayName": "Export", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, + { + "GroupName": "App.SupplyChain", + "Name": "App.SupplyChain.SupplyType.Import", + "ParentName": "App.SupplyChain.SupplyType", + "DisplayName": "Import", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, + { + "GroupName": "App.SupplyChain", + "Name": "App.SupplyChain.SupplyType.Activity", + "ParentName": "App.SupplyChain.SupplyType", + "DisplayName": "Activity", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, + { + "GroupName": "App.SupplyChain", + "Name": "App.SupplyChain.SupplyCardType", + "ParentName": null, + "DisplayName": "App.SupplyChain.SupplyCardType", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, + { + "GroupName": "App.SupplyChain", + "Name": "App.SupplyChain.SupplyCardType.Create", + "ParentName": "App.SupplyChain.SupplyCardType", + "DisplayName": "Create", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, + { + "GroupName": "App.SupplyChain", + "Name": "App.SupplyChain.SupplyCardType.Update", + "ParentName": "App.SupplyChain.SupplyCardType", + "DisplayName": "Update", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, + { + "GroupName": "App.SupplyChain", + "Name": "App.SupplyChain.SupplyCardType.Delete", + "ParentName": "App.SupplyChain.SupplyCardType", + "DisplayName": "Delete", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, + { + "GroupName": "App.SupplyChain", + "Name": "App.SupplyChain.SupplyCardType.Export", + "ParentName": "App.SupplyChain.SupplyCardType", + "DisplayName": "Export", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, + { + "GroupName": "App.SupplyChain", + "Name": "App.SupplyChain.SupplyCardType.Import", + "ParentName": "App.SupplyChain.SupplyCardType", + "DisplayName": "Import", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, + { + "GroupName": "App.SupplyChain", + "Name": "App.SupplyChain.SupplyCardType.Activity", + "ParentName": "App.SupplyChain.SupplyCardType", + "DisplayName": "Activity", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, { "GroupName": "App.SupplyChain", "Name": "App.SupplyChain.MaterialType", @@ -5622,17 +5811,17 @@ }, { "GroupName": "App.SupplyChain", - "Name": "App.SupplyChain.Supplier", + "Name": "App.SupplyChain.Supply", "ParentName": null, - "DisplayName": "App.SupplyChain.Supplier", + "DisplayName": "App.SupplyChain.Supply", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { "GroupName": "App.SupplyChain", - "Name": "App.SupplyChain.Supplier.Create", - "ParentName": "App.SupplyChain.Supplier", + "Name": "App.SupplyChain.Supply.Create", + "ParentName": "App.SupplyChain.Supply", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, @@ -5640,8 +5829,8 @@ }, { "GroupName": "App.SupplyChain", - "Name": "App.SupplyChain.Supplier.Update", - "ParentName": "App.SupplyChain.Supplier", + "Name": "App.SupplyChain.Supply.Update", + "ParentName": "App.SupplyChain.Supply", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, @@ -5649,8 +5838,8 @@ }, { "GroupName": "App.SupplyChain", - "Name": "App.SupplyChain.Supplier.Delete", - "ParentName": "App.SupplyChain.Supplier", + "Name": "App.SupplyChain.Supply.Delete", + "ParentName": "App.SupplyChain.Supply", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, @@ -5658,8 +5847,8 @@ }, { "GroupName": "App.SupplyChain", - "Name": "App.SupplyChain.Supplier.Export", - "ParentName": "App.SupplyChain.Supplier", + "Name": "App.SupplyChain.Supply.Export", + "ParentName": "App.SupplyChain.Supply", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, @@ -5667,8 +5856,8 @@ }, { "GroupName": "App.SupplyChain", - "Name": "App.SupplyChain.Supplier.Import", - "ParentName": "App.SupplyChain.Supplier", + "Name": "App.SupplyChain.Supply.Import", + "ParentName": "App.SupplyChain.Supply", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, @@ -5676,8 +5865,8 @@ }, { "GroupName": "App.SupplyChain", - "Name": "App.SupplyChain.Supplier.Activity", - "ParentName": "App.SupplyChain.Supplier", + "Name": "App.SupplyChain.Supply.Activity", + "ParentName": "App.SupplyChain.Supply", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, @@ -10474,4 +10663,4 @@ "MenuGroup": "Erp" } ] -} \ No newline at end of file +} diff --git a/api/src/Erp.Platform.Domain.Shared/PlatformConsts.cs b/api/src/Erp.Platform.Domain.Shared/PlatformConsts.cs index 816f67a2..af8e592c 100644 --- a/api/src/Erp.Platform.Domain.Shared/PlatformConsts.cs +++ b/api/src/Erp.Platform.Domain.Shared/PlatformConsts.cs @@ -518,10 +518,10 @@ public static class PlatformConsts public const string MaterialType = "list-materialtype"; public const string MaterialGroup = "list-materialgroup"; public const string Material = "list-material"; - // public const string Supplier = "list-supplier"; - // public const string PurchaseOrder = "list-purchaseorder"; - // public const string Inventory = "list-inventory"; - + public const string Supply = "list-supply"; + public const string PaymentTerm = "list-paymentterm"; + public const string SupplyType = "list-supplytype"; + public const string SupplyCardType = "list-supplycardtype"; } } diff --git a/api/src/Erp.Platform.Domain.Shared/Public/StatDto.cs b/api/src/Erp.Platform.Domain.Shared/Public/StatDto.cs index 7cafa4de..9e2e6a5d 100644 --- a/api/src/Erp.Platform.Domain.Shared/Public/StatDto.cs +++ b/api/src/Erp.Platform.Domain.Shared/Public/StatDto.cs @@ -3,7 +3,7 @@ public class StatDto { public string Icon { get; set; } - public string Value { get; set; } // number/string farkını normalize ettik + public string Value { get; set; } // number/string farkını normalize ettik public string LabelKey { get; set; } public bool? UseCounter { get; set; } public int? CounterEnd { get; set; } diff --git a/api/src/Erp.Platform.Domain.Shared/TableNameResolver.cs b/api/src/Erp.Platform.Domain.Shared/TableNameResolver.cs index 3c7507f4..8401ed8a 100644 --- a/api/src/Erp.Platform.Domain.Shared/TableNameResolver.cs +++ b/api/src/Erp.Platform.Domain.Shared/TableNameResolver.cs @@ -7,7 +7,7 @@ public static class TableNameResolver { public const string ViewPrefix = "V_"; - // Tüm tabloların hangi prefix tipine ve menü grubuna ait olduÄŸunu belirten harita + // Tüm tabloların hangi prefix tipine ve menü grubuna ait olduğunu belirten harita private static readonly Dictionary Method, MenuPrefix PrefixGroup)> _map = new(StringComparer.OrdinalIgnoreCase) { @@ -185,10 +185,10 @@ public static class TableNameResolver public static string GetFullTableName(string tableName) { if (!Enum.TryParse(tableName, out var tableEnum)) - throw new ArgumentException($"'{tableName}' geçerli bir TableNameEnum deÄŸil."); + throw new ArgumentException($"'{tableName}' geçerli bir TableNameEnum değil."); if (!_map.TryGetValue(tableName, out var entry)) - throw new KeyNotFoundException($"'{tableName}' için tablo eÅŸlemesi bulunamadı."); + throw new KeyNotFoundException($"'{tableName}' için tablo eşlemesi bulunamadı."); return entry.Method(entry.PrefixGroup, tableEnum); } @@ -196,10 +196,10 @@ public static class TableNameResolver public static string GetFullViewName(string tableName) { if (!Enum.TryParse(tableName, out var tableEnum)) - throw new ArgumentException($"'{tableName}' geçerli bir TableNameEnum deÄŸil."); + throw new ArgumentException($"'{tableName}' geçerli bir TableNameEnum değil."); if (!_map.TryGetValue(tableName, out var entry)) - throw new KeyNotFoundException($"'{tableName}' için tablo eÅŸlemesi bulunamadı."); + throw new KeyNotFoundException($"'{tableName}' için tablo eşlemesi bulunamadı."); return ViewPrefix + entry.Method(entry.PrefixGroup, tableEnum); } diff --git a/api/src/Erp.Platform.Domain/BlobStoring/BlobManager.cs b/api/src/Erp.Platform.Domain/BlobStoring/BlobManager.cs index 4c3dcce1..dc035fef 100644 --- a/api/src/Erp.Platform.Domain/BlobStoring/BlobManager.cs +++ b/api/src/Erp.Platform.Domain/BlobStoring/BlobManager.cs @@ -20,7 +20,7 @@ public class BlobManager : DomainService private IBlobContainer GetContainer(string containerName) { - // containerName bir sınıfa baÄŸlı deÄŸil, sadece string + // containerName bir sınıfa bağlı değil, sadece string return _blobContainerFactory.Create(containerName); } diff --git a/api/src/Erp.Platform.Domain/Branch/BranchSeedManager.cs b/api/src/Erp.Platform.Domain/Branch/BranchSeedManager.cs index eb4f22d1..e9518837 100644 --- a/api/src/Erp.Platform.Domain/Branch/BranchSeedManager.cs +++ b/api/src/Erp.Platform.Domain/Branch/BranchSeedManager.cs @@ -65,11 +65,11 @@ public class BranchSeedManager : DomainService if (items == null) { result.Success = false; - result.Message = "BranchData.json okunamadı veya format hatalı."; + result.Message = "BranchData.json okunamadı veya format hatalı."; return result; } - // Yardımcı fonksiyon: kolay log ekleme + // Yardımcı fonksiyon: kolay log ekleme BranchSeedDetail CreateLog(string entity) => new() { @@ -381,7 +381,7 @@ public class BranchSeedManager : DomainService } result.Success = true; - result.Message = $"Seed iÅŸlemi baÅŸarıyla tamamlandı. Toplam {result.TotalInsertedCount} kayıt eklendi."; + result.Message = $"Seed işlemi başarıyla tamamlandı. Toplam {result.TotalInsertedCount} kayıt eklendi."; return result; } catch (Exception ex) diff --git a/api/src/Erp.Platform.Domain/Data/SeedConsts.cs b/api/src/Erp.Platform.Domain/Data/SeedConsts.cs index 47b4a3cb..34c41ebb 100644 --- a/api/src/Erp.Platform.Domain/Data/SeedConsts.cs +++ b/api/src/Erp.Platform.Domain/Data/SeedConsts.cs @@ -493,6 +493,10 @@ public static class SeedConsts public const string MaterialType = Default + ".MaterialType"; public const string MaterialGroup = Default + ".MaterialGroup"; public const string Material = Default + ".Material"; + public const string Supply = Default + ".Supply"; + public const string PaymentTerm = Default + ".PaymentTerm"; + public const string SupplyType = Default + ".SupplyType"; + public const string SupplyCardType = Default + ".SupplyCardType"; } public static class Accounting diff --git a/api/src/Erp.Platform.Domain/Entities/Branch/Coordinator/Level.cs b/api/src/Erp.Platform.Domain/Entities/Branch/Coordinator/Level.cs index 374fd257..07931af6 100644 --- a/api/src/Erp.Platform.Domain/Entities/Branch/Coordinator/Level.cs +++ b/api/src/Erp.Platform.Domain/Entities/Branch/Coordinator/Level.cs @@ -12,7 +12,7 @@ public class Level : FullAuditedEntity, IMultiTenant public Guid ClassTypeId { get; set; } // SinifTipiID (FK) public string LevelType { get; set; } // SeviyeTipi public string Name { get; set; } // SeviyeKodu - public int Order { get; set; } // Sıra Numarası + public int Order { get; set; } // Sıra Numarası public int LessonCount { get; set; } // DersSayisi public string Status { get; set; } // Durum public int? LessonDuration { get; set; } // DersSuresi diff --git a/api/src/Erp.Platform.Domain/Entities/Branch/Coordinator/Schedule.cs b/api/src/Erp.Platform.Domain/Entities/Branch/Coordinator/Schedule.cs index 2fb4b130..769c9902 100644 --- a/api/src/Erp.Platform.Domain/Entities/Branch/Coordinator/Schedule.cs +++ b/api/src/Erp.Platform.Domain/Entities/Branch/Coordinator/Schedule.cs @@ -20,7 +20,7 @@ public class Schedule : FullAuditedEntity, IMultiTenant public int LessonBreakMinute { get; set; } public int LessonCount { get; set; } - // Öğle arası + // Öğle arası public string LunchTime { get; set; } public int? LunchMinute { get; set; } public bool? IncludeLunch { get; set; } diff --git a/api/src/Erp.Platform.Domain/Entities/Host/Currency.cs b/api/src/Erp.Platform.Domain/Entities/Host/Currency.cs index 95a535a0..0286cbc8 100644 --- a/api/src/Erp.Platform.Domain/Entities/Host/Currency.cs +++ b/api/src/Erp.Platform.Domain/Entities/Host/Currency.cs @@ -8,7 +8,7 @@ public class Currency : FullAuditedEntity public string Code { get; set; } // TRY, USD, EUR public string Symbol { get; set; } // ₺, $, etc. public string Name { get; set; } // Turkish lira, US dollar, ... - public decimal Rate { get; set; } // TRY başına deÄŸer + public decimal Rate { get; set; } // TRY başına değer public bool IsActive { get; set; } public DateTime? LastUpdated { get; set; } } diff --git a/api/src/Erp.Platform.Domain/Entities/Tenant/Administration/CustomEntity.cs b/api/src/Erp.Platform.Domain/Entities/Tenant/Administration/CustomEntity.cs index 13ed682e..da9241a1 100644 --- a/api/src/Erp.Platform.Domain/Entities/Tenant/Administration/CustomEntity.cs +++ b/api/src/Erp.Platform.Domain/Entities/Tenant/Administration/CustomEntity.cs @@ -25,7 +25,7 @@ public class CustomEntity : FullAuditedEntity, IMultiTenant public CustomEntity() { - Id = Guid.NewGuid(); // Burada eriÅŸim mümkün çünkü sınıfın içi + Id = Guid.NewGuid(); // Burada erişim mümkün çünkü sınıfın içi } } @@ -45,7 +45,7 @@ public class CustomEntityField : FullAuditedEntity public CustomEntityField() { - Id = Guid.NewGuid(); // Burada eriÅŸim mümkün çünkü sınıfın içi + Id = Guid.NewGuid(); // Burada erişim mümkün çünkü sınıfın içi } } diff --git a/api/src/Erp.Platform.Domain/Entities/Tenant/Administration/DynamicService.cs b/api/src/Erp.Platform.Domain/Entities/Tenant/Administration/DynamicService.cs index 06d19928..27b3c309 100644 --- a/api/src/Erp.Platform.Domain/Entities/Tenant/Administration/DynamicService.cs +++ b/api/src/Erp.Platform.Domain/Entities/Tenant/Administration/DynamicService.cs @@ -7,7 +7,7 @@ using Volo.Abp.MultiTenancy; namespace Erp.Platform.Entities; /// -/// Tenant bazında dinamik olarak tanımlanmış AppService'lerin kod ve meta verilerini saklar +/// Tenant bazında dinamik olarak tanımlanmış AppService'lerin kod ve meta verilerini saklar /// public class DynamicService : FullAuditedEntity, IMultiTenant { @@ -17,26 +17,26 @@ public class DynamicService : FullAuditedEntity, IMultiTenant public Guid? TenantId { get; set; } /// - /// AppService'in benzersiz adı (örn: "DynamicCustomerService") + /// AppService'in benzersiz adı (örn: "DynamicCustomerService") /// [Required] [StringLength(256)] public string Name { get; set; } /// - /// AppService'in kullanıcı dostu baÅŸlığı + /// AppService'in kullanıcı dostu başlığı /// [StringLength(512)] public string? DisplayName { get; set; } /// - /// AppService açıklaması + /// AppService açıklaması /// [StringLength(2000)] public string? Description { get; set; } /// - /// Tam C# sınıf kodu (using'ler ve namespace dahil) + /// Tam C# sınıf kodu (using'ler ve namespace dahil) /// [Required] public string Code { get; set; } @@ -52,34 +52,34 @@ public class DynamicService : FullAuditedEntity, IMultiTenant public CompilationStatus CompilationStatus { get; set; } /// - /// Son derleme hatası (varsa) + /// Son derleme hatası (varsa) /// public string? LastCompilationError { get; set; } /// - /// Son baÅŸarılı derleme zamanı + /// Son başarılı derleme zamanı /// public DateTime? LastSuccessfulCompilation { get; set; } /// - /// Kod versiyonu (her güncelleme ile artan numara) + /// Kod versiyonu (her güncelleme ile artan numara) /// public int Version { get; set; } /// - /// Kod hash'i (deÄŸiÅŸiklik kontrolü için) + /// Kod hash'i (değişiklik kontrolü için) /// [StringLength(64)] public string? CodeHash { get; set; } /// - /// AppService'in kullandığı ana entity türü (opsiyonel) + /// AppService'in kullandığı ana entity türü (opsiyonel) /// [StringLength(256)] public string? PrimaryEntityType { get; set; } /// - /// Swagger'da görünecek controller adı + /// Swagger'da görünecek controller adı /// [StringLength(256)] public string? ControllerName { get; set; } @@ -104,7 +104,7 @@ public class DynamicService : FullAuditedEntity, IMultiTenant } /// - /// Kodu günceller ve versiyonu artırır + /// Kodu günceller ve versiyonu artırır /// public void UpdateCode(string newCode) { @@ -121,7 +121,7 @@ public class DynamicService : FullAuditedEntity, IMultiTenant } /// - /// Derleme baÅŸarısını iÅŸaretler + /// Derleme başarısını işaretler /// public void MarkCompilationSuccess() { @@ -131,7 +131,7 @@ public class DynamicService : FullAuditedEntity, IMultiTenant } /// - /// Derleme hatasını iÅŸaretler + /// Derleme hatasını işaretler /// public void MarkCompilationError(string error) { @@ -153,22 +153,22 @@ public class DynamicService : FullAuditedEntity, IMultiTenant public enum CompilationStatus { /// - /// Henüz derlenmedi + /// Henüz derlenmedi /// Pending = 0, /// - /// Derleme baÅŸarılı + /// Derleme başarılı /// Success = 1, /// - /// Derleme baÅŸarısız + /// Derleme başarısız /// Failed = 2, /// - /// Derleme iÅŸlemi devam ediyor + /// Derleme işlemi devam ediyor /// InProgress = 3 } diff --git a/api/src/Erp.Platform.Domain/Entities/Tenant/Coordinator/QuestionPool.cs b/api/src/Erp.Platform.Domain/Entities/Tenant/Coordinator/QuestionPool.cs index a2371c67..a6f4e81e 100644 --- a/api/src/Erp.Platform.Domain/Entities/Tenant/Coordinator/QuestionPool.cs +++ b/api/src/Erp.Platform.Domain/Entities/Tenant/Coordinator/QuestionPool.cs @@ -11,7 +11,7 @@ public class QuestionPool : FullAuditedEntity, IMultiTenant public string Name { get; set; } public string Description { get; set; } - public string Tags { get; set; } // İstersen JSON veya ayrı tablo da olabilir + public string Tags { get; set; } // İstersen JSON veya ayrı tablo da olabilir public ICollection Questions { get; set; } = new List(); diff --git a/api/src/Erp.Platform.Domain/Entities/Tenant/Coordinator/QuestionTag.cs b/api/src/Erp.Platform.Domain/Entities/Tenant/Coordinator/QuestionTag.cs index 78dbc274..92218453 100644 --- a/api/src/Erp.Platform.Domain/Entities/Tenant/Coordinator/QuestionTag.cs +++ b/api/src/Erp.Platform.Domain/Entities/Tenant/Coordinator/QuestionTag.cs @@ -8,10 +8,10 @@ public class QuestionTag : FullAuditedEntity, IMultiTenant { public Guid? TenantId; - public string Name { get; set; } // Etiket adı (ör: Grammar) - public string Description { get; set; } // Açıklama - public string Color { get; set; } // Renk kodu (ör: #3B82F6) - public int UsageCount { get; set; } // Kullanım sayısı + public string Name { get; set; } // Etiket adı (ör: Grammar) + public string Description { get; set; } // Açıklama + public string Color { get; set; } // Renk kodu (ör: #3B82F6) + public int UsageCount { get; set; } // Kullanım sayısı Guid? IMultiTenant.TenantId => TenantId; } diff --git a/api/src/Erp.Platform.Domain/Entities/Tenant/Hr/Overtime.cs b/api/src/Erp.Platform.Domain/Entities/Tenant/Hr/Overtime.cs index 64380d1a..d7888304 100644 --- a/api/src/Erp.Platform.Domain/Entities/Tenant/Hr/Overtime.cs +++ b/api/src/Erp.Platform.Domain/Entities/Tenant/Hr/Overtime.cs @@ -5,16 +5,16 @@ using Volo.Abp.MultiTenancy; namespace Erp.Platform.Entities { - // İnsan Kaynakları Fazla Mesai + // İnsan Kaynakları Fazla Mesai public class Overtime : FullAuditedEntity, IMultiTenant { public Guid? TenantId { get; set; } - // İliÅŸkisel alanlar + // İlişkisel alanlar public Guid EmployeeId { get; set; } public Employee Employee { get; set; } - // Fazla mesai detayları + // Fazla mesai detayları public DateTime Date { get; set; } public DateTime StartTime { get; set; } public DateTime EndTime { get; set; } diff --git a/api/src/Erp.Platform.Domain/Entities/Tenant/Intranet/Announcement.cs b/api/src/Erp.Platform.Domain/Entities/Tenant/Intranet/Announcement.cs index 801c25fc..24c4f791 100644 --- a/api/src/Erp.Platform.Domain/Entities/Tenant/Intranet/Announcement.cs +++ b/api/src/Erp.Platform.Domain/Entities/Tenant/Intranet/Announcement.cs @@ -12,14 +12,14 @@ public class Announcement : FullAuditedEntity, IMultiTenant public string Excerpt { get; set; } public string Content { get; set; } public string ImageUrl { get; set; } - public string Category { get; set; } // ÖrneÄŸin: "Genel", "Etkinlik", "Duyuru" - public Guid? EmployeeId { get; set; } // Employee referansı metin olarak saklanır + public string Category { get; set; } // Örneğin: "Genel", "Etkinlik", "Duyuru" + public Guid? EmployeeId { get; set; } // Employee referansı metin olarak saklanır public Employee Employee { get; set; } public DateTime PublishDate { get; set; } public DateTime? ExpiryDate { get; set; } public bool IsPinned { get; set; } public int ViewCount { get; set; } - public string Departments { get; set; } // ["Yazılım GeliÅŸtirme"] + public string Departments { get; set; } // ["Yazılım Geliştirme"] public string Attachments { get; set; } // [{name,url,size}] } diff --git a/api/src/Erp.Platform.Domain/Entities/Tenant/Intranet/Reservation.cs b/api/src/Erp.Platform.Domain/Entities/Tenant/Intranet/Reservation.cs index 42c1e9f9..1eaebd98 100644 --- a/api/src/Erp.Platform.Domain/Entities/Tenant/Intranet/Reservation.cs +++ b/api/src/Erp.Platform.Domain/Entities/Tenant/Intranet/Reservation.cs @@ -17,8 +17,8 @@ public class Reservation : FullAuditedEntity, IMultiTenant public DateTime StartDate { get; set; } public DateTime EndDate { get; set; } - public string Purpose { get; set; } //Amaç - public int? Participants { get; set; } //Katılımcı Sayısı + public string Purpose { get; set; } //Amaç + public int? Participants { get; set; } //Katılımcı Sayısı public string Notes { get; set; } public string Status { get; set; } // pending | approved | rejected | completed } diff --git a/api/src/Erp.Platform.Domain/Entities/Tenant/SupplyChain/Partner.cs b/api/src/Erp.Platform.Domain/Entities/Tenant/SupplyChain/Partner.cs index ab7d2bbb..6b44cbf2 100644 --- a/api/src/Erp.Platform.Domain/Entities/Tenant/SupplyChain/Partner.cs +++ b/api/src/Erp.Platform.Domain/Entities/Tenant/SupplyChain/Partner.cs @@ -14,7 +14,7 @@ public class Partner : FullAuditedEntity, IMultiTenant public string Code { get; set; } public string Name { get; set; } - public PartnerType PartyType { get; set; } + public string PartyType { get; set; } public Guid? SectorId { get; set; } public Sector? Sector { get; set; } @@ -44,7 +44,7 @@ public class Partner : FullAuditedEntity, IMultiTenant public decimal CreditLimit { get; set; } public DateTime? LastOrderDate { get; set; } - public PartnerStatus Status { get; set; } + public string Status { get; set; } public ICollection Banks { get; set; } public ICollection Certificates { get; set; } @@ -63,8 +63,8 @@ public class Partner : FullAuditedEntity, IMultiTenant public string? TeamCode { get; set; } // Organization Unit Code public decimal TotalRevenue { get; set; } // Toplam Gelir - public decimal AverageOrderValue { get; set; } // Ortalama SipariÅŸ DeÄŸeri - public decimal LifetimeValue { get; set; } // Müşteri Ömrü DeÄŸeri + public decimal AverageOrderValue { get; set; } // Ortalama Sipariş Değeri + public decimal LifetimeValue { get; set; } // Müşteri Ömrü Değeri //Supplier ile ilgili bilgiler public Guid? SupplierTypeId { get; set; } diff --git a/api/src/Erp.Platform.Domain/Entities/Tenant/SupplyChain/PartnerBank.cs b/api/src/Erp.Platform.Domain/Entities/Tenant/SupplyChain/PartnerBank.cs index ec927a95..8fbf9a2f 100644 --- a/api/src/Erp.Platform.Domain/Entities/Tenant/SupplyChain/PartnerBank.cs +++ b/api/src/Erp.Platform.Domain/Entities/Tenant/SupplyChain/PartnerBank.cs @@ -11,12 +11,12 @@ public class PartnerBank : FullAuditedEntity, IMultiTenant public Partner Partner { get; set; } public string BankName { get; set; } - public string AccountNumber { get; set; } //Hesap Numarası + public string AccountNumber { get; set; } //Hesap Numarası public string Iban { get; set; } //IBAN public string SwiftCode { get; set; } //BIC public string AccountOwner { get; set; } //Hesap Sahibi - public string BranchName { get; set; } //Şube Adı - public string AccountType { get; set; } //Hesap Türü + public string BranchName { get; set; } //Şube Adı + public string AccountType { get; set; } //Hesap Türü public Guid? CurrencyId { get; set; } public Currency? Currency { get; set; } diff --git a/api/src/Erp.Platform.Domain/Entities/Tenant/SupplyChain/PartnerStatus.cs b/api/src/Erp.Platform.Domain/Entities/Tenant/SupplyChain/PartnerStatus.cs deleted file mode 100644 index 1f9a6718..00000000 --- a/api/src/Erp.Platform.Domain/Entities/Tenant/SupplyChain/PartnerStatus.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System.Runtime.Serialization; - -namespace Erp.Platform.Entities; - -public enum PartnerStatus -{ - [EnumMember(Value = "Prospect")] - Prospect, // Aday - - [EnumMember(Value = "Active")] - Active, // Aktif - - [EnumMember(Value = "Inactive")] - Inactive, // Pasif - - [EnumMember(Value = "Blocked")] - Blocked, // EngellenmiÅŸ -} diff --git a/api/src/Erp.Platform.Domain/Entities/Tenant/SupplyChain/PartnerType.cs b/api/src/Erp.Platform.Domain/Entities/Tenant/SupplyChain/PartnerType.cs deleted file mode 100644 index 87e40191..00000000 --- a/api/src/Erp.Platform.Domain/Entities/Tenant/SupplyChain/PartnerType.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System.Runtime.Serialization; - -namespace Erp.Platform.Entities; - -public enum PartnerType -{ - [EnumMember(Value = "Customer")] - Customer, // Müşteri - - [EnumMember(Value = "Supplier")] - Supplier, // Tedarikçi -} diff --git a/api/src/Erp.Platform.Domain/Entities/Tenant/SupplyChain/PaymentTerm.cs b/api/src/Erp.Platform.Domain/Entities/Tenant/SupplyChain/PaymentTerm.cs index 481ae7c5..1e90cd18 100644 --- a/api/src/Erp.Platform.Domain/Entities/Tenant/SupplyChain/PaymentTerm.cs +++ b/api/src/Erp.Platform.Domain/Entities/Tenant/SupplyChain/PaymentTerm.cs @@ -9,6 +9,9 @@ public class PaymentTerm : FullAuditedEntity, IMultiTenant public Guid? TenantId { get; set; } public string Name { get; set; } + public string Description { get; set; } + + public bool IsActive { get; set; } } diff --git a/api/src/Erp.Platform.Domain/Queries/Break.cs b/api/src/Erp.Platform.Domain/Queries/Break.cs index 207bf2a1..e494b8a5 100644 --- a/api/src/Erp.Platform.Domain/Queries/Break.cs +++ b/api/src/Erp.Platform.Domain/Queries/Break.cs @@ -5,7 +5,7 @@ using Volo.Abp.Domain.Values; namespace Erp.Platform.Queries; /// -/// Break tanımı +/// Break tanımı /// public class Break : ValueObject { @@ -17,7 +17,7 @@ public class Break : ValueObject [JsonPropertyName("EndValue")] public int EndValue { get; private set; } - public Break() { } // JSON için gerekli + public Break() { } // JSON için gerekli protected override IEnumerable GetAtomicValues() { diff --git a/api/src/Erp.Platform.Domain/Queries/BreakStyle.cs b/api/src/Erp.Platform.Domain/Queries/BreakStyle.cs index 36ed0474..f7c72681 100644 --- a/api/src/Erp.Platform.Domain/Queries/BreakStyle.cs +++ b/api/src/Erp.Platform.Domain/Queries/BreakStyle.cs @@ -18,7 +18,7 @@ public class BreakStyle : ValueObject [JsonPropertyName("Width")] public int Width { get; private set; } - // JSON deserialization için parametresiz public ctor bırak + // JSON deserialization için parametresiz public ctor bırak public BreakStyle() { } protected override IEnumerable GetAtomicValues() diff --git a/api/src/Erp.Platform.Domain/Queries/ChartAxisGrid.cs b/api/src/Erp.Platform.Domain/Queries/ChartAxisGrid.cs index c8900f68..c5d6072c 100644 --- a/api/src/Erp.Platform.Domain/Queries/ChartAxisGrid.cs +++ b/api/src/Erp.Platform.Domain/Queries/ChartAxisGrid.cs @@ -5,7 +5,7 @@ using Volo.Abp.Domain.Values; namespace Erp.Platform.Queries; /// -/// Grid tanımı +/// Grid tanımı /// public class ChartAxisGrid : ValueObject { @@ -21,7 +21,7 @@ public class ChartAxisGrid : ValueObject [JsonPropertyName("Width")] public int Width { get; private set; } - public ChartAxisGrid() { } // JSON için gerekli + public ChartAxisGrid() { } // JSON için gerekli protected override IEnumerable GetAtomicValues() { diff --git a/api/src/Erp.Platform.Domain/Queries/ChartBorder.cs b/api/src/Erp.Platform.Domain/Queries/ChartBorder.cs index 76d45db0..90161216 100644 --- a/api/src/Erp.Platform.Domain/Queries/ChartBorder.cs +++ b/api/src/Erp.Platform.Domain/Queries/ChartBorder.cs @@ -21,7 +21,7 @@ public class ChartBorder : ValueObject [JsonInclude] public int Width { get; private set; } = 1; - public ChartBorder() { } // JSON deserialize için parametresiz public ctor + public ChartBorder() { } // JSON deserialize için parametresiz public ctor protected override IEnumerable GetAtomicValues() { diff --git a/api/src/Erp.Platform.Domain/Queries/ChartPanes.cs b/api/src/Erp.Platform.Domain/Queries/ChartPanes.cs index 4b6954e5..329fb517 100644 --- a/api/src/Erp.Platform.Domain/Queries/ChartPanes.cs +++ b/api/src/Erp.Platform.Domain/Queries/ChartPanes.cs @@ -9,7 +9,7 @@ public class ChartPanes : ValueObject public int Height { get; private set; } = 250; public string Name { get; private set; } - private ChartPanes() { } // EF Core / JSON için + private ChartPanes() { } // EF Core / JSON için public ChartPanes(string name, int height, string backgroundColor) { diff --git a/api/src/Erp.Platform.Domain/Queries/DefaultValueHelper.cs b/api/src/Erp.Platform.Domain/Queries/DefaultValueHelper.cs index 9a885814..c586bc80 100644 --- a/api/src/Erp.Platform.Domain/Queries/DefaultValueHelper.cs +++ b/api/src/Erp.Platform.Domain/Queries/DefaultValueHelper.cs @@ -39,7 +39,7 @@ public class DefaultValueHelper : ITransientDependency .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' + // 🔹 TenantId özel durumu: NULL => IS NULL, varsa => = 'GUID' if (_currentTenant?.Id.HasValue == true) { result = result.Replace( diff --git a/api/src/Erp.Platform.EntityFrameworkCore/DeveloperKit/PlatformDynamicEntityManager.cs b/api/src/Erp.Platform.EntityFrameworkCore/DeveloperKit/PlatformDynamicEntityManager.cs index 4918d854..7ed3cd99 100644 --- a/api/src/Erp.Platform.EntityFrameworkCore/DeveloperKit/PlatformDynamicEntityManager.cs +++ b/api/src/Erp.Platform.EntityFrameworkCore/DeveloperKit/PlatformDynamicEntityManager.cs @@ -145,7 +145,7 @@ public class DynamicEntityManager : IDynamicEntityManager using var command = connection.CreateCommand(); command.CommandText = query; - // ⭐️⭐️⭐️ Kritik satır: + // ⭐️⭐️⭐️ Kritik satır: command.Transaction = dbContext.Database.CurrentTransaction?.GetDbTransaction(); using var reader = await command.ExecuteReaderAsync(); diff --git a/api/src/Erp.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs b/api/src/Erp.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs index 23112881..6cdc6e1b 100644 --- a/api/src/Erp.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs +++ b/api/src/Erp.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs @@ -203,15 +203,15 @@ public class PlatformDbContext : public DbSet PaymentTerms { get; set; } public DbSet Partners { get; set; } + public DbSet PartnerBanks { get; set; } + public DbSet PartnerCertificates { get; set; } + public DbSet PartnerContacts { get; set; } + public DbSet SupplyTypes { get; set; } public DbSet SupplyCardTypes { get; set; } public DbSet CustomerTypes { get; set; } public DbSet CustomerSegments { get; set; } - - public DbSet PartnerBanks { get; set; } - public DbSet PartnerCertificates { get; set; } - public DbSet PartnerContacts { get; set; } #endregion #region Accounting @@ -2283,6 +2283,8 @@ public class PlatformDbContext : b.ConfigureByConvention(); b.Property(x => x.Name).IsRequired().HasMaxLength(100); + b.Property(x => x.Description).IsRequired().HasMaxLength(500); + b.Property(x => x.IsActive).HasDefaultValue(true); }); builder.Entity(b => @@ -2332,8 +2334,12 @@ public class PlatformDbContext : b.Property(p => p.Code).IsRequired().HasMaxLength(64); b.Property(p => p.Name).IsRequired().HasMaxLength(256); + b.Property(p => p.PartyType).IsRequired().HasMaxLength(32); + b.Property(p => p.SectorId).IsRequired(); b.Property(p => p.TaxNumber).IsRequired(); b.Property(p => p.TaxOffice).HasMaxLength(128); + b.Property(p => p.CurrencyId).IsRequired(); + b.Property(p => p.PaymentTermId).IsRequired(); b.Property(p => p.Country).IsRequired().HasMaxLength(64); b.Property(p => p.City).IsRequired().HasMaxLength(64); b.Property(p => p.District).HasMaxLength(64); @@ -2341,13 +2347,13 @@ public class PlatformDbContext : b.Property(p => p.Address1).HasMaxLength(256); b.Property(p => p.Address2).HasMaxLength(256); b.Property(p => p.PostalCode).HasMaxLength(16); - b.Property(p => p.PhoneNumber).HasMaxLength(20); + b.Property(p => p.PhoneNumber).IsRequired().HasMaxLength(20); b.Property(p => p.MobileNumber).HasMaxLength(20); b.Property(p => p.FaxNumber).HasMaxLength(20); - b.Property(p => p.Email).HasMaxLength(128); + b.Property(p => p.Email).IsRequired().HasMaxLength(128); b.Property(p => p.Website).HasMaxLength(128); - b.Property(p => p.Status).IsRequired(); b.Property(p => p.CreditLimit).HasPrecision(18, 2).HasDefaultValue(0); + b.Property(p => p.Status).IsRequired().HasMaxLength(10); //Supplier configuration b.Property(x => x.CardNumber).HasMaxLength(64); diff --git a/api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251111192837_Initial.Designer.cs b/api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251112124138_Initial.Designer.cs similarity index 99% rename from api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251111192837_Initial.Designer.cs rename to api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251112124138_Initial.Designer.cs index 7ab46f01..559f2761 100644 --- a/api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251111192837_Initial.Designer.cs +++ b/api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251112124138_Initial.Designer.cs @@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore; namespace Erp.Platform.Migrations { [DbContext(typeof(PlatformDbContext))] - [Migration("20251111192837_Initial")] + [Migration("20251112124138_Initial")] partial class Initial { /// @@ -6615,7 +6615,7 @@ namespace Erp.Platform.Migrations .HasColumnType("decimal(18,2)") .HasDefaultValue(0m); - b.Property("CurrencyId") + b.Property("CurrencyId") .HasColumnType("uniqueidentifier"); b.Property("CurrentBalance") @@ -6649,6 +6649,7 @@ namespace Erp.Platform.Migrations .HasColumnType("nvarchar(64)"); b.Property("Email") + .IsRequired() .HasMaxLength(128) .HasColumnType("nvarchar(128)"); @@ -6691,16 +6692,19 @@ namespace Erp.Platform.Migrations .HasMaxLength(256) .HasColumnType("nvarchar(256)"); - b.Property("PartyType") - .HasColumnType("int"); + b.Property("PartyType") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); - b.Property("PaymentTermId") + b.Property("PaymentTermId") .HasColumnType("uniqueidentifier"); b.Property("PerformanceMetricsJson") .HasColumnType("text"); b.Property("PhoneNumber") + .IsRequired() .HasMaxLength(20) .HasColumnType("nvarchar(20)"); @@ -6708,11 +6712,13 @@ namespace Erp.Platform.Migrations .HasMaxLength(16) .HasColumnType("nvarchar(16)"); - b.Property("SectorId") + b.Property("SectorId") .HasColumnType("uniqueidentifier"); - b.Property("Status") - .HasColumnType("int"); + b.Property("Status") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); b.Property("Street") .HasMaxLength(128) @@ -7118,6 +7124,16 @@ namespace Erp.Platform.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); + b.Property("Description") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("IsActive") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(true); + b.Property("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("bit") @@ -13194,7 +13210,9 @@ namespace Erp.Platform.Migrations b.HasOne("Erp.Platform.Entities.Currency", "Currency") .WithMany() - .HasForeignKey("CurrencyId"); + .HasForeignKey("CurrencyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); b.HasOne("Erp.Platform.Entities.CustomerSegment", "CustomerSegment") .WithMany("Partners") @@ -13212,11 +13230,15 @@ namespace Erp.Platform.Migrations b.HasOne("Erp.Platform.Entities.PaymentTerm", "PaymentTerm") .WithMany() - .HasForeignKey("PaymentTermId"); + .HasForeignKey("PaymentTermId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); b.HasOne("Erp.Platform.Entities.Sector", "Sector") .WithMany() - .HasForeignKey("SectorId"); + .HasForeignKey("SectorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); b.HasOne("Erp.Platform.Entities.SupplyType", "SupplierType") .WithMany("Partners") diff --git a/api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251111192837_Initial.cs b/api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251112124138_Initial.cs similarity index 99% rename from api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251111192837_Initial.cs rename to api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251112124138_Initial.cs index ee432a99..d76f877b 100644 --- a/api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251111192837_Initial.cs +++ b/api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251112124138_Initial.cs @@ -2330,6 +2330,8 @@ namespace Erp.Platform.Migrations Id = table.Column(type: "uniqueidentifier", nullable: false), TenantId = table.Column(type: "uniqueidentifier", nullable: true), Name = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: false), + Description = table.Column(type: "nvarchar(500)", maxLength: 500, nullable: false), + IsActive = table.Column(type: "bit", nullable: false, defaultValue: true), CreationTime = table.Column(type: "datetime2", nullable: false), CreatorId = table.Column(type: "uniqueidentifier", nullable: true), LastModificationTime = table.Column(type: "datetime2", nullable: true), @@ -4090,8 +4092,8 @@ namespace Erp.Platform.Migrations TenantId = table.Column(type: "uniqueidentifier", nullable: true), Code = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), Name = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - PartyType = table.Column(type: "int", nullable: false), - SectorId = table.Column(type: "uniqueidentifier", nullable: true), + PartyType = table.Column(type: "nvarchar(32)", maxLength: 32, nullable: false), + SectorId = table.Column(type: "uniqueidentifier", nullable: false), TaxNumber = table.Column(type: "bigint", nullable: false), TaxOffice = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true), Country = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), @@ -4102,15 +4104,15 @@ namespace Erp.Platform.Migrations Address2 = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), PostalCode = table.Column(type: "nvarchar(16)", maxLength: 16, nullable: true), MobileNumber = table.Column(type: "nvarchar(20)", maxLength: 20, nullable: true), - PhoneNumber = table.Column(type: "nvarchar(20)", maxLength: 20, nullable: true), + PhoneNumber = table.Column(type: "nvarchar(20)", maxLength: 20, nullable: false), FaxNumber = table.Column(type: "nvarchar(20)", maxLength: 20, nullable: true), - Email = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true), + Email = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), Website = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true), - CurrencyId = table.Column(type: "uniqueidentifier", nullable: true), - PaymentTermId = table.Column(type: "uniqueidentifier", nullable: true), + CurrencyId = table.Column(type: "uniqueidentifier", nullable: false), + PaymentTermId = table.Column(type: "uniqueidentifier", nullable: false), CreditLimit = table.Column(type: "decimal(18,2)", precision: 18, scale: 2, nullable: false, defaultValue: 0m), LastOrderDate = table.Column(type: "datetime2", nullable: true), - Status = table.Column(type: "int", nullable: false), + Status = table.Column(type: "nvarchar(10)", maxLength: 10, nullable: false), CustomerTypeId = table.Column(type: "uniqueidentifier", nullable: true), CustomerSegmentId = table.Column(type: "uniqueidentifier", nullable: true), AssignedEmployeeId = table.Column(type: "uniqueidentifier", nullable: true), @@ -4154,17 +4156,20 @@ namespace Erp.Platform.Migrations name: "FK_Adm_T_Partner_Sas_H_Currency_CurrencyId", column: x => x.CurrencyId, principalTable: "Sas_H_Currency", - principalColumn: "Id"); + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Adm_T_Partner_Sas_T_Sector_SectorId", column: x => x.SectorId, principalTable: "Sas_T_Sector", - principalColumn: "Id"); + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Adm_T_Partner_Scp_T_PaymentTerm_PaymentTermId", column: x => x.PaymentTermId, principalTable: "Scp_T_PaymentTerm", - principalColumn: "Id"); + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Adm_T_Partner_Scp_T_SupplyCardType_SupplyCardTypeId", column: x => x.SupplyCardTypeId, diff --git a/api/src/Erp.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs b/api/src/Erp.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs index 0b240aa4..aa0394a4 100644 --- a/api/src/Erp.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs +++ b/api/src/Erp.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs @@ -6612,7 +6612,7 @@ namespace Erp.Platform.Migrations .HasColumnType("decimal(18,2)") .HasDefaultValue(0m); - b.Property("CurrencyId") + b.Property("CurrencyId") .HasColumnType("uniqueidentifier"); b.Property("CurrentBalance") @@ -6646,6 +6646,7 @@ namespace Erp.Platform.Migrations .HasColumnType("nvarchar(64)"); b.Property("Email") + .IsRequired() .HasMaxLength(128) .HasColumnType("nvarchar(128)"); @@ -6688,16 +6689,19 @@ namespace Erp.Platform.Migrations .HasMaxLength(256) .HasColumnType("nvarchar(256)"); - b.Property("PartyType") - .HasColumnType("int"); + b.Property("PartyType") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); - b.Property("PaymentTermId") + b.Property("PaymentTermId") .HasColumnType("uniqueidentifier"); b.Property("PerformanceMetricsJson") .HasColumnType("text"); b.Property("PhoneNumber") + .IsRequired() .HasMaxLength(20) .HasColumnType("nvarchar(20)"); @@ -6705,11 +6709,13 @@ namespace Erp.Platform.Migrations .HasMaxLength(16) .HasColumnType("nvarchar(16)"); - b.Property("SectorId") + b.Property("SectorId") .HasColumnType("uniqueidentifier"); - b.Property("Status") - .HasColumnType("int"); + b.Property("Status") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); b.Property("Street") .HasMaxLength(128) @@ -7115,6 +7121,16 @@ namespace Erp.Platform.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); + b.Property("Description") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("IsActive") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(true); + b.Property("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("bit") @@ -13191,7 +13207,9 @@ namespace Erp.Platform.Migrations b.HasOne("Erp.Platform.Entities.Currency", "Currency") .WithMany() - .HasForeignKey("CurrencyId"); + .HasForeignKey("CurrencyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); b.HasOne("Erp.Platform.Entities.CustomerSegment", "CustomerSegment") .WithMany("Partners") @@ -13209,11 +13227,15 @@ namespace Erp.Platform.Migrations b.HasOne("Erp.Platform.Entities.PaymentTerm", "PaymentTerm") .WithMany() - .HasForeignKey("PaymentTermId"); + .HasForeignKey("PaymentTermId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); b.HasOne("Erp.Platform.Entities.Sector", "Sector") .WithMany() - .HasForeignKey("SectorId"); + .HasForeignKey("SectorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); b.HasOne("Erp.Platform.Entities.SupplyType", "SupplierType") .WithMany("Partners") diff --git a/api/src/Erp.Platform.EntityFrameworkCore/Tenants/Seeds/TenantData.json b/api/src/Erp.Platform.EntityFrameworkCore/Tenants/Seeds/TenantData.json index f6384a8f..480aeafc 100644 --- a/api/src/Erp.Platform.EntityFrameworkCore/Tenants/Seeds/TenantData.json +++ b/api/src/Erp.Platform.EntityFrameworkCore/Tenants/Seeds/TenantData.json @@ -4333,5 +4333,105 @@ "totalStock": 850.0, "trackingType": "Serial" } + ], + "PaymentTerms": [ + { + "name": "NET15", + "description": "Fatura tarihinden itibaren 15 gün içinde ödeme", + "isActive": true + }, + { + "name": "NET30", + "description": "Fatura tarihinden itibaren 30 gün içinde ödeme", + "isActive": true + }, + { + "name": "NET45", + "description": "Fatura tarihinden itibaren 45 gün içinde ödeme", + "isActive": true + }, + { + "name": "NET60", + "description": "Fatura tarihinden itibaren 60 gün içinde ödeme", + "isActive": true + }, + { + "name": "NET90", + "description": "Fatura tarihinden itibaren 90 gün içinde ödeme", + "isActive": true + }, + { + "name": "Prepaid", + "description": "Ödeme önceden yapılır", + "isActive": true + }, + { + "name": "Cash", + "description": "Nakit ödeme", + "isActive": true + }, + { + "name": "COD", + "description": "Teslimatta ödeme", + "isActive": true + } + ], + "SupplyTypes": [ + { + "code": "MANUFACTURER", + "name": "Üretici", + "description": "Doğrudan üretim yapan tedarikçiler", + "isActive": true + }, + { + "code": "DISTRIBUTOR", + "name": "Distribütör", + "description": "Ürünleri dağıtan tedarikçiler", + "isActive": true + }, + { + "code": "WHOLESALER", + "name": "Toptancı", + "description": "Büyük miktarlarda ürün satan tedarikçiler", + "isActive": true + }, + { + "code": "SERVICE_PROVIDER", + "name": "Hizmet Sağlayıcı", + "description": "Hizmet bazlı tedarikçiler", + "isActive": true + }, + { + "code": "OTHER", + "name": "Diğer", + "description": "Diğer tedarikçi türleri", + "isActive": true + } + ], + "SupplyCardTypes": [ + { + "code": "STANDARD", + "name": "Standart", + "description": "Standart tedarikçi kartı", + "isActive": true + }, + { + "code": "PREMIUM", + "name": "Premium", + "description": "Premium tedarikçi kartı", + "isActive": true + }, + { + "code": "STRATEGIC", + "name": "Stratejik", + "description": "Stratejik tedarikçi kartı", + "isActive": true + }, + { + "code": "PREFERRED", + "name": "Tercih Edilen", + "description": "Tercih edilen tedarikçi kartı", + "isActive": true + } ] } diff --git a/api/src/Erp.Platform.EntityFrameworkCore/Tenants/TenantDataSeeder.cs b/api/src/Erp.Platform.EntityFrameworkCore/Tenants/TenantDataSeeder.cs index 0c23dc08..fc92db10 100644 --- a/api/src/Erp.Platform.EntityFrameworkCore/Tenants/TenantDataSeeder.cs +++ b/api/src/Erp.Platform.EntityFrameworkCore/Tenants/TenantDataSeeder.cs @@ -95,6 +95,9 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency private readonly IRepository _materialTypeRepository; private readonly IRepository _materialGroupRepository; private readonly IRepository _materialRepository; + private readonly IRepository _paymentTermRepository; + private readonly IRepository _supplyTypeRepository; + private readonly IRepository _supplyCardTypeRepository; public TenantDataSeeder( IClock clock, @@ -172,7 +175,10 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency IRepository socialLikeRepository, IRepository materialTypeRepository, IRepository materialGroupRepository, - IRepository materialRepository + IRepository materialRepository, + IRepository paymentTermRepository, + IRepository supplyTypeRepository, + IRepository supplyCardTypeRepository ) { _clock = clock; @@ -252,6 +258,9 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency _materialTypeRepository = materialTypeRepository; _materialGroupRepository = materialGroupRepository; _materialRepository = materialRepository; + _paymentTermRepository = paymentTermRepository; + _supplyTypeRepository = supplyTypeRepository; + _supplyCardTypeRepository = supplyCardTypeRepository; } private static IConfigurationRoot BuildConfiguration() @@ -1676,6 +1685,48 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency TrackingType = item.TrackingType }, autoSave: true); } + + foreach (var item in items.PaymentTerms) + { + var exists = await _paymentTermRepository.AnyAsync(x => x.Name == item.Name); + if (exists) + continue; + + await _paymentTermRepository.InsertAsync(new PaymentTerm + { + Name = item.Name, + Description = item.Description, + IsActive = item.IsActive + }, autoSave: true); + } + + foreach (var item in items.SupplyTypes) + { + var exists = await _supplyTypeRepository.AnyAsync(x => x.Name == item.Name); + if (exists) + continue; + + await _supplyTypeRepository.InsertAsync(new SupplyType + { + Name = item.Name, + Description = item.Description, + IsActive = item.IsActive + }, autoSave: true); + } + + foreach (var item in items.SupplyCardTypes) + { + var exists = await _supplyCardTypeRepository.AnyAsync(x => x.Name == item.Name); + if (exists) + continue; + + await _supplyCardTypeRepository.InsertAsync(new SupplyCardType + { + Name = item.Name, + Description = item.Description, + IsActive = item.IsActive + }, autoSave: true); + } } } diff --git a/api/src/Erp.Platform.EntityFrameworkCore/Tenants/TenantSeederDto.cs b/api/src/Erp.Platform.EntityFrameworkCore/Tenants/TenantSeederDto.cs index c3a886cf..cbf2cc2a 100644 --- a/api/src/Erp.Platform.EntityFrameworkCore/Tenants/TenantSeederDto.cs +++ b/api/src/Erp.Platform.EntityFrameworkCore/Tenants/TenantSeederDto.cs @@ -84,6 +84,30 @@ public class TenantSeederDto public List MaterialTypes { get; set; } public List MaterialGroups { get; set; } public List Materials { get; set; } + public List PaymentTerms { get; set; } + public List SupplyTypes { get; set; } + public List SupplyCardTypes { get; set; } +} + +public class SupplyTypeSeedDto +{ + public string Name { get; set; } + public string Description { get; set; } + public bool IsActive { get; set; } +} + +public class SupplyCardTypeSeedDto +{ + public string Name { get; set; } + public string Description { get; set; } + public bool IsActive { get; set; } +} + +public class PaymentTermSeedDto +{ + public string Name { get; set; } + public string Description { get; set; } + public bool IsActive { get; set; } } public class MaterialSeedDto diff --git a/api/src/Erp.Platform.HttpApi.Host/Classroom/ClassroomHub.cs b/api/src/Erp.Platform.HttpApi.Host/Classroom/ClassroomHub.cs index 09544d82..4cf6ac55 100644 --- a/api/src/Erp.Platform.HttpApi.Host/Classroom/ClassroomHub.cs +++ b/api/src/Erp.Platform.HttpApi.Host/Classroom/ClassroomHub.cs @@ -140,7 +140,7 @@ public class ClassroomHub : Hub x => x.SessionId == sessionId && x.UserId == userId ); - // ❌ KicklenmiÅŸ kullanıcı tekrar giremez + // ❌ Kicklenmiş kullanıcı tekrar giremez if (participant != null && participant.IsKicked) { await Clients.Caller.SendAsync("Error", "You are not allowed to rejoin this class."); @@ -168,7 +168,7 @@ public class ClassroomHub : Hub await UpdateParticipantConnectionAsync(participant, Context.ConnectionId, isActive); - // ✅ Attendance sadece yoksa aç + // ✅ Attendance sadece yoksa aç var existingOpenAttendance = await _attendanceRepository.FirstOrDefaultAsync( x => x.SessionId == sessionId && x.StudentId == userId && x.LeaveTime == null ); @@ -352,7 +352,7 @@ public class ClassroomHub : Hub [HubMethodName("RaiseHand")] public async Task RaiseHandAsync(Guid sessionId, Guid studentId, string studentName) { - // 🔑 Participant'ı bul + // 🔑 Participant'ı bul var participant = await _participantRepository.FirstOrDefaultAsync( x => x.SessionId == sessionId && x.UserId == studentId ); @@ -378,7 +378,7 @@ public class ClassroomHub : Hub { try { - // 1. Attendance kapat (sadece kicklenen için) + // 1. Attendance kapat (sadece kicklenen için) var attendances = await _attendanceRepository.GetListAsync( x => x.SessionId == sessionId && x.StudentId == participantId && @@ -389,7 +389,7 @@ public class ClassroomHub : Hub { await CloseAttendanceAsync(attendance); - // yalnızca diÄŸer katılımcılar görebilsin + // yalnızca diğer katılımcılar görebilsin await Clients.Group(sessionId.ToString()) .SendAsync("AttendanceUpdated", new { attendance.Id, @@ -409,34 +409,34 @@ public class ClassroomHub : Hub if (participant == null) { - _logger.LogWarning($"⚠️ KickParticipant: participant bulunamadı Session={sessionId}, Target={participantId})"); - await Clients.Caller.SendAsync("Warning", "Participant bulunamadı"); + _logger.LogWarning($"⚠️ KickParticipant: participant bulunamadı Session={sessionId}, Target={participantId})"); + await Clients.Caller.SendAsync("Warning", "Participant bulunamadı"); return; } - // ConnectionId'yi cache et (null yazmadan önce) + // ConnectionId'yi cache et (null yazmadan önce) var connectionId = participant.ConnectionId; - // 3. DB güncelle + // 3. DB güncelle participant.IsActive = false; participant.IsKicked = true; participant.ConnectionId = null; await _participantRepository.UpdateAsync(participant, autoSave: true); - // 4. Hedef kullanıcıya bildir (ForceDisconnect) + // 4. Hedef kullanıcıya bildir (ForceDisconnect) if (!string.IsNullOrEmpty(connectionId)) { await Clients.Client(connectionId) .SendAsync("ForceDisconnect", "You have been removed from the class."); - // 🔑 Mesajın client’a ulaÅŸmasını bekle + // 🔑 Mesajın client’a ulaşmasını bekle await Task.Delay(300); await Groups.RemoveFromGroupAsync(connectionId, sessionId.ToString()); } - // 5. DiÄŸer katılımcılara duyur + // 5. Diğer katılımcılara duyur await Clients.Group(sessionId.ToString()) .SendAsync("ParticipantLeft", new { @@ -446,12 +446,12 @@ public class ClassroomHub : Hub // 6. Log _logger.LogInformation($"👢 Participant {participantId} kicked from session {sessionId}"); - await Clients.Caller.SendAsync("Info", "Kick iÅŸlemi baÅŸarısız oldu."); + await Clients.Caller.SendAsync("Info", "Kick işlemi başarısız oldu."); } catch (Exception ex) { _logger.LogError(ex, $"❌ KickParticipant hata verdi (Session={sessionId}, Participant={participantId})"); - await Clients.Caller.SendAsync("Error", "Kick iÅŸlemi baÅŸarısız oldu."); + await Clients.Caller.SendAsync("Error", "Kick işlemi başarısız oldu."); } } @@ -459,7 +459,7 @@ public class ClassroomHub : Hub [HubMethodName("ApproveHandRaise")] public async Task ApproveHandRaiseAsync(Guid sessionId, Guid studentId) { - // 🔑 Öğrencinin parmak kaldırma durumunu sıfırla + // 🔑 Öğrencinin parmak kaldırma durumunu sıfırla var participant = await _participantRepository.FirstOrDefaultAsync( x => x.SessionId == sessionId && x.UserId == studentId ); @@ -476,7 +476,7 @@ public class ClassroomHub : Hub [HubMethodName("DismissHandRaise")] public async Task DismissHandRaiseAsync(Guid sessionId, Guid studentId) { - // 🔑 Participant'ı bul ve elini indir + // 🔑 Participant'ı bul ve elini indir var participant = await _participantRepository.FirstOrDefaultAsync( x => x.SessionId == sessionId && x.UserId == studentId ); @@ -519,26 +519,26 @@ public class ClassroomHub : Hub var userId = _currentUser.Id; if (!userId.HasValue) { - _logger.LogWarning($"OnDisconnectedAsync çaÄŸrıldı fakat UserId bulunamadı. ConnId={Context.ConnectionId}"); - await Clients.Caller.SendAsync("Warning", "User bulunamadı"); + _logger.LogWarning($"OnDisconnectedAsync çağrıldı fakat UserId bulunamadı. ConnId={Context.ConnectionId}"); + await Clients.Caller.SendAsync("Warning", "User bulunamadı"); return; } - // 🔑 Yeni scope aç (her disconnect için ayrı UoW) + // 🔑 Yeni scope aç (her disconnect için ayrı UoW) using var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true); var participants = await _participantRepository .GetListAsync(x => x.UserId == userId.Value && x.ConnectionId == Context.ConnectionId); if (!participants.Any()) { - _logger.LogInformation($"OnDisconnectedAsync: User {userId} için aktif participant bulunamadı. ConnId={Context.ConnectionId}"); - await Clients.Caller.SendAsync("Warning", "Aktif participant bulunamadı"); + _logger.LogInformation($"OnDisconnectedAsync: User {userId} için aktif participant bulunamadı. ConnId={Context.ConnectionId}"); + await Clients.Caller.SendAsync("Warning", "Aktif participant bulunamadı"); } foreach (var participant in participants) { - _logger.LogInformation($"OnDisconnectedAsync: User {userId}, Session {participant.SessionId} baÄŸlantısı koptu."); - await Clients.Caller.SendAsync("Info", $"BaÄŸlantı koptu: User {userId}"); + _logger.LogInformation($"OnDisconnectedAsync: User {userId}, Session {participant.SessionId} bağlantısı koptu."); + await Clients.Caller.SendAsync("Info", $"Bağlantı koptu: User {userId}"); var attendances = await _attendanceRepository.GetListAsync( x => x.SessionId == participant.SessionId && @@ -555,7 +555,7 @@ public class ClassroomHub : Hub ); await _attendanceRepository.UpdateAsync(attendance, autoSave: true); - // DTO gönder (entity yerine) + // DTO gönder (entity yerine) await Clients.Group(participant.SessionId.ToString()) .SendAsync("AttendanceUpdated", new { @@ -569,7 +569,7 @@ public class ClassroomHub : Hub }); } - // EÄŸer kick edilmemiÅŸse → pasif et + // Eğer kick edilmemişse → pasif et if (!participant.IsKicked) { participant.IsActive = false; @@ -596,7 +596,7 @@ public class ClassroomHub : Hub catch (Exception ex) { _logger.LogError(ex, "OnDisconnectedAsync hata. ConnId={ConnectionId}", Context.ConnectionId); - await Clients.Caller.SendAsync("Error", "OnDisconnectedAsync hata oluÅŸtu"); + await Clients.Caller.SendAsync("Error", "OnDisconnectedAsync hata oluştu"); } await base.OnDisconnectedAsync(exception); diff --git a/api/src/Erp.Platform.HttpApi.Host/DynamicServices/ActionDescriptorChangeProvider.cs b/api/src/Erp.Platform.HttpApi.Host/DynamicServices/ActionDescriptorChangeProvider.cs index 058f3bea..b046d562 100644 --- a/api/src/Erp.Platform.HttpApi.Host/DynamicServices/ActionDescriptorChangeProvider.cs +++ b/api/src/Erp.Platform.HttpApi.Host/DynamicServices/ActionDescriptorChangeProvider.cs @@ -22,7 +22,7 @@ public class ActionDescriptorChangeProvider : IActionDescriptorChangeProvider public IChangeToken GetChangeToken() { - _logger.LogDebug("GetChangeToken çaÄŸrıldı"); + _logger.LogDebug("GetChangeToken çağrıldı"); return new CancellationChangeToken(_cts.Token); } @@ -34,14 +34,14 @@ public class ActionDescriptorChangeProvider : IActionDescriptorChangeProvider { try { - _logger.LogInformation("NotifyChanges çaÄŸrıldı - MVC/Swagger yenilenecek"); + _logger.LogInformation("NotifyChanges çağrıldı - MVC/Swagger yenilenecek"); var prev = Interlocked.Exchange(ref _cts, new CancellationTokenSource()); prev.Cancel(); - _logger.LogInformation("Change token baÅŸarıyla iptal edildi - yenileme tetiklendi"); + _logger.LogInformation("Change token başarıyla iptal edildi - yenileme tetiklendi"); } catch (Exception ex) { - _logger.LogError(ex, "NotifyChanges sırasında hata"); + _logger.LogError(ex, "NotifyChanges sırasında hata"); } } } diff --git a/api/src/Erp.Platform.HttpApi.Host/DynamicServices/DynamicAssemblyRegistrationService.cs b/api/src/Erp.Platform.HttpApi.Host/DynamicServices/DynamicAssemblyRegistrationService.cs index 00c30203..ad77e3e8 100644 --- a/api/src/Erp.Platform.HttpApi.Host/DynamicServices/DynamicAssemblyRegistrationService.cs +++ b/api/src/Erp.Platform.HttpApi.Host/DynamicServices/DynamicAssemblyRegistrationService.cs @@ -25,7 +25,7 @@ namespace Erp.Platform.DynamicServices private readonly IOptions _mvcOptions; private readonly ActionDescriptorChangeProvider _changeProvider; - // Bekleyen assembly kayıt istekleri + // Bekleyen assembly kayıt istekleri private static readonly Queue _pendingRegistrations = new(); private static readonly object _lock = new(); @@ -44,7 +44,7 @@ namespace Erp.Platform.DynamicServices } /// - /// Yeni assembly kaydı istemi + /// Yeni assembly kaydı istemi /// public static void RequestAssemblyRegistration(Guid tenantId, Assembly assembly, string assemblyName) { @@ -75,7 +75,7 @@ namespace Erp.Platform.DynamicServices } catch (Exception ex) { - _logger.LogError(ex, "Assembly registration service hatası"); + _logger.LogError(ex, "Assembly registration service hatası"); } } } @@ -108,13 +108,13 @@ namespace Erp.Platform.DynamicServices } catch (Exception ex) { - _logger.LogError(ex, "Servis yükleme hatası: {Name}", service.Name); + _logger.LogError(ex, "Servis yükleme hatası: {Name}", service.Name); } } } catch (Exception ex) { - _logger.LogError(ex, "Startup servis yükleme hatası"); + _logger.LogError(ex, "Startup servis yükleme hatası"); } } @@ -141,7 +141,7 @@ namespace Erp.Platform.DynamicServices } catch (Exception ex) { - _logger.LogError(ex, "Assembly kaydı baÅŸarısız. Tenant: {TenantId}, Assembly: {Assembly}", + _logger.LogError(ex, "Assembly kaydı başarısız. Tenant: {TenantId}, Assembly: {Assembly}", request.TenantId, request.AssemblyName); } } @@ -225,7 +225,7 @@ namespace Erp.Platform.DynamicServices } catch (Exception ex) { - _logger.LogError(ex, "ActionDescriptor notify hatası"); + _logger.LogError(ex, "ActionDescriptor notify hatası"); } await Task.Delay(100); diff --git a/api/src/Erp.Platform.HttpApi.Host/DynamicServices/DynamicControllerActivator.cs b/api/src/Erp.Platform.HttpApi.Host/DynamicServices/DynamicControllerActivator.cs index 9be1f925..1be19696 100644 --- a/api/src/Erp.Platform.HttpApi.Host/DynamicServices/DynamicControllerActivator.cs +++ b/api/src/Erp.Platform.HttpApi.Host/DynamicServices/DynamicControllerActivator.cs @@ -81,7 +81,7 @@ public class DynamicControllerActivator : IControllerActivator } catch (Exception ex) { - _logger.LogError(ex, "Controller oluÅŸturma hatası: {Type}", controllerType.Name); + _logger.LogError(ex, "Controller oluşturma hatası: {Type}", controllerType.Name); throw; } } diff --git a/api/src/Erp.Platform.HttpApi.Host/TenantLocalizationInitializer.cs b/api/src/Erp.Platform.HttpApi.Host/TenantLocalizationInitializer.cs index 394306d8..48bbdf32 100644 --- a/api/src/Erp.Platform.HttpApi.Host/TenantLocalizationInitializer.cs +++ b/api/src/Erp.Platform.HttpApi.Host/TenantLocalizationInitializer.cs @@ -27,7 +27,7 @@ namespace Erp.Platform.Localization public async Task ApplyTenantSettingsAsync() { - // Dil ayarı + // Dil ayarı var lang = await _settingProvider.GetOrNullAsync("Abp.Localization.DefaultLanguage") ?? "en"; try {