Supply Chain Supplier
This commit is contained in:
parent
7493f5cedf
commit
d9d00102a6
108 changed files with 2258 additions and 801 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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<string> InsertedItems { get; set; } = new(); // Eklenen kayıtların isimleri
|
||||
public List<string> Warnings { get; set; } = new(); // Varsa uyarılar
|
||||
public List<string> InsertedItems { get; set; } = new(); // Eklenen kayıtların isimleri
|
||||
public List<string> Warnings { get; set; } = new(); // Varsa uyarılar
|
||||
public List<string> Errors { get; set; } = new(); // Varsa hatalar
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ using Volo.Abp.Application.Dtos;
|
|||
namespace Erp.Platform.DeveloperKit;
|
||||
|
||||
/// <summary>
|
||||
/// Dynamic AppService tanımı DTO'su
|
||||
/// Dynamic AppService tanımı DTO'su
|
||||
/// </summary>
|
||||
public class DynamicServiceDto : FullAuditedEntityDto<Guid>
|
||||
{
|
||||
|
|
@ -70,14 +70,14 @@ public class CompileResultDto
|
|||
public List<string> Warnings { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 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)
|
||||
/// </summary>
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public System.Reflection.Assembly LoadedAssembly { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Tek bir derleme hatası
|
||||
/// Tek bir derleme hatası
|
||||
/// </summary>
|
||||
public class CompilationErrorDto
|
||||
{
|
||||
|
|
@ -105,7 +105,7 @@ public class TestCompileRequestDto
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// AppService yayınlama DTO'su
|
||||
/// AppService yayınlama DTO'su
|
||||
/// </summary>
|
||||
public class PublishAppServiceRequestDto
|
||||
{
|
||||
|
|
@ -130,7 +130,7 @@ public class PublishAppServiceRequestDto
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// AppService yayınlama sonucu
|
||||
/// AppService yayınlama sonucu
|
||||
/// </summary>
|
||||
public class PublishResultDto
|
||||
{
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ public class CurrencyDto : FullAuditedEntityDto<Guid>
|
|||
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; }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,14 +11,14 @@ public class OvertimeDto : FullAuditedEntityDto<Guid>
|
|||
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ı
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,12 +11,12 @@ public class ReservationDto : FullAuditedEntityDto<Guid>
|
|||
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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,11 +7,11 @@ public class ShuttleRouteDto : FullAuditedEntityDto<Guid>
|
|||
{
|
||||
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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ public class TrainingDto : FullAuditedEntityDto<Guid>
|
|||
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<Guid>
|
|||
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ı
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
namespace Erp.Platform.ListForms;
|
||||
|
||||
/// <summary> Özel bir ölçek sonu koleksiyonu bildirir. Yalnızca eksen tipi "sürekli" veya "logaritmik" ise geçerlidir.
|
||||
/// <summary> Özel bir ölçek sonu koleksiyonu bildirir. Yalnızca eksen tipi "sürekli" veya "logaritmik" ise geçerlidir.
|
||||
/// </summary>
|
||||
public class BreakDto
|
||||
{
|
||||
/// <summary> startValue özelliği ile birlikte ölçek kırılmasını sınırlar.
|
||||
/// <summary> startValue özelliği ile birlikte ölçek kırılmasını sınırlar.
|
||||
/// </summary>
|
||||
public int EndValue { get; set; }
|
||||
|
||||
/// <summary> endValue özelliği ile birlikte, ölçek kırılmasını sınırlar.
|
||||
/// <summary> endValue özelliği ile birlikte, ölçek kırılmasını sınırlar.
|
||||
/// </summary>
|
||||
public int StartValue { get; set; }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
public class BreakStyleDto
|
||||
{
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string Color { get; set; } = "#ababab";
|
||||
/// <summary> Ölçek sonlarının çizgi stilini belirtir.
|
||||
/// <summary> Ölçek sonlarının çizgi stilini belirtir.
|
||||
/// </summary>
|
||||
public string Line { get; set; } = "waved";
|
||||
public int Width { get; set; } = 5;
|
||||
|
|
|
|||
|
|
@ -1,17 +1,17 @@
|
|||
namespace Erp.Platform.ListForms;
|
||||
|
||||
/// <summary> Uyarlanabilir düzen özelliklerini belirtir.
|
||||
/// Åu sırada gizlenir: Title, Export menu icon, Legend, Axis titles, Axis labels
|
||||
/// <summary> Uyarlanabilir düzen özelliklerini belirtir.
|
||||
/// Åu sırada gizlenir: Title, Export menu icon, Legend, Axis titles, Axis labels
|
||||
/// </summary>
|
||||
public class ChartAdaptivelayoutDto
|
||||
{
|
||||
/// <summary> Düzenin uyum sağlamaya başladığı minimum kap yüksekliğini belirtir.
|
||||
/// <summary> Düzenin uyum sağlamaya başladığı minimum kap yüksekliğini belirtir.
|
||||
/// </summary>
|
||||
public int Height { get; set; } = 80;
|
||||
/// <summary> Düzenin uyum sağlamaya başladığı minimum kapsayıcı genişliğini belirtir.
|
||||
/// <summary> Düzenin uyum sağlamaya başladığı minimum kapsayıcı genişliğini belirtir.
|
||||
/// </summary>
|
||||
public int Width { get; set; } = 80;
|
||||
/// <summary> UI bileşeni düzeni uyarladığında nokta etiketlerinin tutulması gerekip gerekmediğini belirtir.
|
||||
/// <summary> UI bileşeni düzeni uyarladığında nokta etiketlerinin tutulması gerekip gerekmediğini belirtir.
|
||||
/// </summary>
|
||||
public bool KeepLabels { get; set; } = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,27 +2,27 @@
|
|||
|
||||
namespace Erp.Platform.ListForms;
|
||||
|
||||
/// <summary> Animasyon özelliklerini belirtir.
|
||||
/// <summary> Animasyon özelliklerini belirtir.
|
||||
/// </summary>
|
||||
public class ChartAnimationDto
|
||||
{
|
||||
/// <summary> Animasyonun milisaniye cinsinden ne kadar süreceğini belirtir.
|
||||
/// <summary> Animasyonun milisaniye cinsinden ne kadar süreceğini belirtir.
|
||||
/// </summary>
|
||||
[Range(100, 2500, ErrorMessage = "Value for {0} must be between {1} and {2}.")]
|
||||
public int Duration { get; set; } = 1000;
|
||||
/// <summary> Animasyonun kolaylaştırma işlevini belirtir.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public string Easing { get; set; } = "easeOutCubic";
|
||||
/// <summary> UI bileÅŸeninde animasyonu etkinleÅŸtirir.
|
||||
/// <summary> UI bileşeninde animasyonu etkinleştirir.
|
||||
/// </summary>
|
||||
public bool Enabled { get; set; } = true;
|
||||
/// <summary> 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.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public int MaxPointCountSupported { get; set; } = 300;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,14 +10,14 @@ public class ChartAnnotationDto
|
|||
Font = new ChartFontDto();
|
||||
}
|
||||
|
||||
/// <summary> Ek açıklamayı belirli bir bağımsız değişkene göre konumlandırır.
|
||||
/// <summary> Ek açıklamayı belirli bir bağımsız değişkene göre konumlandırır.
|
||||
/// </summary>
|
||||
public string Argument { get; set; }
|
||||
/// <summary> Ek açıklamanın kenarlığının görünümünü yapılandırır.
|
||||
/// <summary> Ek açıklamanın kenarlığının görünümünü yapılandırır.
|
||||
/// </summary>
|
||||
public ChartBorderDto Border { get; set; }
|
||||
/// <summary> Ek açıklamayı dolduran rengi belirtir.
|
||||
/// Bu özellik aşağıdaki renkleri destekler:
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string Color { get; set; } = "#ffffff";
|
||||
/// <summary> Annotations'ın açıklamasını araç ipucunda belirtir.
|
||||
/// <summary> Annotations'ın açıklamasını araç ipucunda belirtir.
|
||||
/// </summary>
|
||||
public string Description { get; set; }
|
||||
public ChartFontDto Font { get; set; }
|
||||
/// <summary> Ek açıklamanın yüksekliğini piksel cinsinden belirtir.
|
||||
/// <summary> Ek açıklamanın yüksekliğini piksel cinsinden belirtir.
|
||||
/// </summary>
|
||||
public int Height { get; set; } = -1;
|
||||
/// <summary> Açıklamada görüntülenecek görüntüyü yapılandırır. Yalnızca tür "görüntü" ise geçerlidir.
|
||||
/// <summary> Açıklamada görüntülenecek görüntüyü yapılandırır. Yalnızca tür "görüntü" ise geçerlidir.
|
||||
/// </summary>
|
||||
public string Image { get; set; }
|
||||
/// <summary> Ek açıklamanın adını belirtir.
|
||||
/// <summary> Ek açıklamanın adını belirtir.
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
/// <summary> 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.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public int OffsetX { get; set; } = -1;
|
||||
/// <summary> 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.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public int OffsetY { get; set; } = -1;
|
||||
/// <summary> 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.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public int PaddingLeftRight { get; set; } = 10;
|
||||
/// <summary> paddingLeftRight ile birlikte, ek açıklama metninin veya görüntüsünün çevresinde boş bir alan oluşturur; piksel cinsinden belirtilir.
|
||||
/// <summary> paddingLeftRight ile birlikte, ek açıklama metninin veya görüntüsünün çevresinde boş bir alan oluşturur; piksel cinsinden belirtilir.
|
||||
/// </summary>
|
||||
public int PaddingTopBottom { get; set; } = 10;
|
||||
/// <summary> Ek açıklamayı bir seri noktasına tutturur. Nokta dizisinin adını kabul eder.
|
||||
/// <summary> Ek açıklamayı bir seri noktasına tutturur. Nokta dizisinin adını kabul eder.
|
||||
/// </summary>
|
||||
public string Series { get; set; }
|
||||
/// <summary>Ek açıklamanın metnini belirtir. Yalnızca tür "metin" ise geçerlidir.
|
||||
/// <summary>Ek açıklamanın metnini belirtir. Yalnızca tür "metin" ise geçerlidir.
|
||||
/// </summary>
|
||||
public string Text { get; set; }
|
||||
/// <summary> Ek açıklama araç ipucunun etkin olup olmadığını belirtir.
|
||||
/// <summary> Ek açıklama araç ipucunun etkin olup olmadığını belirtir.
|
||||
/// </summary>
|
||||
public bool TooltipEnabled { get; set; } = true;
|
||||
/// <summary> Ek açıklamanın metin mi, resim mi yoksa şablon mu görüntülediğini belirtir. Bu gerekli bir ayardır.
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string Type { get; set; }
|
||||
/// <summary> Ek açıklamayı belirtilen değer eksenindeki bir değere göre konumlandırır.
|
||||
/// <summary> Ek açıklamayı belirtilen değer eksenindeki bir değere göre konumlandırır.
|
||||
/// </summary>
|
||||
public string Value { get; set; }
|
||||
/// <summary> Ek açıklamanın genişliğini piksel cinsinden belirtir.
|
||||
/// <summary> Ek açıklamanın genişliğini piksel cinsinden belirtir.
|
||||
/// </summary>
|
||||
public int Width { get; set; }
|
||||
/// <summary> Ek açıklama metninin tek bir satıra sığmaması durumunda nasıl kaydırılacağını belirtir.
|
||||
/// <summary> 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ışı.
|
||||
/// </summary>
|
||||
public string WordWrap { get; set; } = "normal";
|
||||
/// <summary> 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.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public int X { get; set; }
|
||||
/// <summary> 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.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public int Y { get; set; }
|
||||
|
||||
|
|
|
|||
|
|
@ -8,80 +8,80 @@ public class ChartArgumentAxisDto
|
|||
Label = new ChartArgumentAxisLabelDto();
|
||||
}
|
||||
|
||||
/// <summary> ArgumentAxis için Label sınıfı
|
||||
/// <summary> ArgumentAxis için Label sınıfı
|
||||
/// https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxChart/Configuration/argumentAxis/label/
|
||||
/// </summary>
|
||||
public class ChartArgumentAxisLabelDto
|
||||
{
|
||||
public ChartArgumentAxisLabelDto() { }
|
||||
|
||||
/// <summary> Eksen etiketlerini döndürmenizi veya kademelendirmenizi sağlar. Yalnızca yatay eksen için geçerlidir.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public string DisplayMode { get; set; } = "standard";
|
||||
/// <summary> Eksen etiketlerinin dönüş açısını belirtir. Yalnızca displayMode veya overppingBehavior "rotate" ise geçerlidir.
|
||||
/// <summary> Eksen etiketlerinin dönüş açısını belirtir. Yalnızca displayMode veya overppingBehavior "rotate" ise geçerlidir.
|
||||
/// </summary>
|
||||
public int RotationAngle { get; set; } = 90;
|
||||
/// <summary> Tümünü görüntülemek için yeterli alan olmadığında eksen etiketlerinin nasıl düzenleneceğine karar verir.
|
||||
/// <summary> 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'
|
||||
/// </summary>
|
||||
public string OverlappingBehavior { get; set; } = "hide";
|
||||
}
|
||||
|
||||
/// <summary> Bağımsız değişkenleri belirtilen bir veri türüne dönüştürür.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public string ArgumentType { get; set; }
|
||||
/// <summary> Toplama aralıklarının uzunluğunu eksen birimleri cinsinden belirtir. Yalnızca sürekli ve logaritmik tipteki eksenler için geçerlidir.
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string AggregationInterval { get; set; }
|
||||
public ChartAxisGridDto Grid { get; set; }
|
||||
/// <summary> Kullanıcı bir eksen etiketini işaret ettiğinde vurgulanacak grafik öğelerini belirtir.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public string HoverMode { get; set; } = "none";
|
||||
public ChartArgumentAxisLabelDto Label { get; set; }
|
||||
/// <summary> Bağımsız değişken ekseninin yerini değiştirir.
|
||||
/// <summary> 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"
|
||||
/// </summary>
|
||||
public string Position { get; set; } = "bottom";
|
||||
/// <summary> 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
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string Title { get; set; }
|
||||
/// <summary> Eksen çizgisini görünür yapar.
|
||||
/// <summary> Eksen çizgisini görünür yapar.
|
||||
/// </summary>
|
||||
public bool Visible { get; set; } = true;
|
||||
/// <summary> Eksen çizgisinin genişliğini piksel cinsinden belirtir.
|
||||
/// <summary> Eksen çizgisinin genişliğini piksel cinsinden belirtir.
|
||||
/// </summary>
|
||||
public int Width { get; set; } = 1;
|
||||
/// <summary> 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.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
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
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
public class ChartAxisGridDto
|
||||
{
|
||||
/// <summary> Grid çizgilerinin rengini belirtir.
|
||||
/// Bu özellik aşağıdaki renkleri destekler:
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string Color { get; set; } = "#d3d3d3";
|
||||
/// <summary> Grid çizgilerini görünür yapar.
|
||||
/// <summary> Grid çizgilerini görünür yapar.
|
||||
/// </summary>
|
||||
public bool Visible { get; set; }
|
||||
/// <summary> Grid çizgilerinin genişliğini piksel cinsinden belirtir.
|
||||
/// <summary> Grid çizgilerinin genişliğini piksel cinsinden belirtir.
|
||||
/// </summary>
|
||||
public int Width { get; set; } = 1;
|
||||
|
||||
|
||||
///// <summary> Grid çizgilerinin saydamlığını belirtir.
|
||||
///// 0 - 1 aralığındadır
|
||||
///// <summary> Grid çizgilerinin saydamlığını belirtir.
|
||||
///// 0 - 1 aralığındadır
|
||||
///// </summary>
|
||||
//public double Opacity { get; set; } = 1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ namespace Erp.Platform.ListForms;
|
|||
|
||||
public class ChartBorderDto
|
||||
{
|
||||
/// <summary>Legend in kenarlığını renklendirir.
|
||||
/// Bu özellik aşağıdaki renkleri destekler:
|
||||
/// <summary>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
|
||||
/// </summary>
|
||||
public string Color { get; set; } = "#d3d3d3";
|
||||
/// <summary> Legend in tüm köşelerini yuvarlatır.
|
||||
/// <summary> Legend in tüm köşelerini yuvarlatır.
|
||||
/// </summary>
|
||||
[Range(0, 100, ErrorMessage = "Value for {0} must be between {1} and {2}.")]
|
||||
public int CornerRadius { get; set; } = 0;
|
||||
/// <summary> Açıklamanın kenarlığı için bir tire stili ayarlar
|
||||
/// <summary> 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'.
|
||||
/// </summary>
|
||||
public string DashStyle { get; set; } = "solid";
|
||||
///// <summary> 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.
|
||||
///// <summary> 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.
|
||||
///// </summary>
|
||||
//[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; }
|
||||
/// <summary> Açıklamanın kenarlığının genişliğini piksel cinsinden belirtir
|
||||
/// <summary> Açıklamanın kenarlığının genişliğini piksel cinsinden belirtir
|
||||
/// </summary>
|
||||
public int Width { get; set; } = 1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,14 +8,14 @@ public class ChartCommonAnnotationDto
|
|||
Font = new ChartFontDto();
|
||||
}
|
||||
|
||||
/// <summary> Ek açıklamayı belirli bir bağımsız değişkene göre konumlandırır.
|
||||
/// <summary> Ek açıklamayı belirli bir bağımsız değişkene göre konumlandırır.
|
||||
/// </summary>
|
||||
public string Argument { get; set; }
|
||||
/// <summary> Ek açıklamanın kenarlığının görünümünü yapılandırır.
|
||||
/// <summary> Ek açıklamanın kenarlığının görünümünü yapılandırır.
|
||||
/// </summary>
|
||||
public ChartBorderDto Border { get; set; }
|
||||
/// <summary> Ek açıklamayı dolduran rengi belirtir.
|
||||
/// Bu özellik aşağıdaki renkleri destekler:
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string Color { get; set; } = "#ffffff";
|
||||
/// <summary> Annotations'ın açıklamasını araç ipucunda belirtir.
|
||||
/// <summary> Annotations'ın açıklamasını araç ipucunda belirtir.
|
||||
/// </summary>
|
||||
public string Description { get; set; }
|
||||
public ChartFontDto Font { get; set; }
|
||||
/// <summary> Ek açıklamanın yüksekliğini piksel cinsinden belirtir.
|
||||
/// <summary> Ek açıklamanın yüksekliğini piksel cinsinden belirtir.
|
||||
/// </summary>
|
||||
public int Height { get; set; } = -1;
|
||||
/// <summary> Açıklamada görüntülenecek görüntüyü yapılandırır. Yalnızca tür "görüntü" ise geçerlidir.
|
||||
/// <summary> Açıklamada görüntülenecek görüntüyü yapılandırır. Yalnızca tür "görüntü" ise geçerlidir.
|
||||
/// </summary>
|
||||
public string Image { get; set; }
|
||||
/// <summary> 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.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public int OffsetX { get; set; } = -1;
|
||||
/// <summary> 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.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public int OffsetY { get; set; } = -1;
|
||||
/// <summary> 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.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public int PaddingLeftRight { get; set; } = 10;
|
||||
/// <summary> paddingLeftRight ile birlikte, ek açıklama metninin veya görüntüsünün çevresinde boş bir alan oluşturur; piksel cinsinden belirtilir.
|
||||
/// <summary> paddingLeftRight ile birlikte, ek açıklama metninin veya görüntüsünün çevresinde boş bir alan oluşturur; piksel cinsinden belirtilir.
|
||||
/// </summary>
|
||||
public int PaddingTopBottom { get; set; } = 10;
|
||||
/// <summary> Ek açıklamayı bir seri noktasına tutturur. Nokta dizisinin adını kabul eder.
|
||||
/// <summary> Ek açıklamayı bir seri noktasına tutturur. Nokta dizisinin adını kabul eder.
|
||||
/// </summary>
|
||||
public string Series { get; set; }
|
||||
/// <summary>Ek açıklamanın metnini belirtir. Yalnızca tür "metin" ise geçerlidir.
|
||||
/// <summary>Ek açıklamanın metnini belirtir. Yalnızca tür "metin" ise geçerlidir.
|
||||
/// </summary>
|
||||
public string Text { get; set; }
|
||||
/// <summary> Ek açıklama araç ipucunun etkin olup olmadığını belirtir.
|
||||
/// <summary> Ek açıklama araç ipucunun etkin olup olmadığını belirtir.
|
||||
/// </summary>
|
||||
public bool TooltipEnabled { get; set; } = true;
|
||||
/// <summary> Ek açıklamanın metin mi, resim mi yoksa şablon mu görüntülediğini belirtir. Bu gerekli bir ayardır.
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string Type { get; set; }
|
||||
/// <summary> Ek açıklamayı belirtilen değer eksenindeki bir değere göre konumlandırır.
|
||||
/// <summary> Ek açıklamayı belirtilen değer eksenindeki bir değere göre konumlandırır.
|
||||
/// </summary>
|
||||
public string Value { get; set; }
|
||||
/// <summary> Ek açıklamanın genişliğini piksel cinsinden belirtir.
|
||||
/// <summary> Ek açıklamanın genişliğini piksel cinsinden belirtir.
|
||||
/// </summary>
|
||||
public int Width { get; set; }
|
||||
/// <summary> Ek açıklama metninin tek bir satıra sığmaması durumunda nasıl kaydırılacağını belirtir.
|
||||
/// <summary> 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ışı.
|
||||
/// </summary>
|
||||
public string WordWrap { get; set; } = "normal";
|
||||
/// <summary> 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.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public int X { get; set; }
|
||||
/// <summary> 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.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public int Y { get; set; }
|
||||
|
||||
|
|
|
|||
|
|
@ -11,18 +11,18 @@ public class ChartCommonAxisDto
|
|||
}
|
||||
|
||||
public ChartAxisGridDto Grid { get; set; }
|
||||
/// <summary> 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
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string Title { get; set; }
|
||||
/// <summary> Eksen çizgisini görünür yapar.
|
||||
/// <summary> Eksen çizgisini görünür yapar.
|
||||
/// </summary>
|
||||
public bool Visible { get; set; } = true;
|
||||
/// <summary> Eksen çizgisinin genişliğini piksel cinsinden belirtir.
|
||||
/// <summary> Eksen çizgisinin genişliğini piksel cinsinden belirtir.
|
||||
/// </summary>
|
||||
public int Width { get; set; } = 1;
|
||||
|
||||
// ihtiyaç olunca açılacak proptert ler
|
||||
// ihtiyaç olunca açılacak proptert ler
|
||||
|
||||
// aggregatedPointsPosition
|
||||
// allowDecimals
|
||||
|
|
|
|||
|
|
@ -2,40 +2,40 @@
|
|||
|
||||
public class ChartCommonDto
|
||||
{
|
||||
/// <summary> 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.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public bool AdjustOnZoom { get; set; } = true;
|
||||
/// <summary> 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
|
||||
/// <summary> 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'
|
||||
/// </summary>
|
||||
public string ContainerBackgroundColor { get; set; } = "#FFFFFF";
|
||||
/// <summary> Serileri ve öğelerini renklendirmek için kullanılacak paleti ayarlar.
|
||||
/// <summary> 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'
|
||||
/// </summary>
|
||||
public string Palette { get; set; } = "Material";
|
||||
/// <summary> 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.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public string PaletteExtensionMode { get; set; } = "blend";
|
||||
|
||||
/// <summary> PanesDto dolu ise hangisinin default olduÄŸunu belirleyen isimdir. PanesDto[0].name ismi
|
||||
/// <summary> PanesDto dolu ise hangisinin default olduğunu belirleyen isimdir. PanesDto[0].name ismi
|
||||
/// </summary>
|
||||
public string DefaultPane { get; set; }
|
||||
/// <summary> UI bileşeninin kullanıcı etkileşimine yanıt verip vermediğini belirtir.
|
||||
/// <summary> UI bileşeninin kullanıcı etkileşimine yanıt verip vermediğini belirtir.
|
||||
/// </summary>
|
||||
public bool Disabled { get; set; }
|
||||
/// <summary> UI bileşeninin kullandığı temanın adını ayarlar.
|
||||
/// <summary> 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'
|
||||
/// </summary>
|
||||
public string Theme { get; set; } = "generic.light";
|
||||
|
||||
// diÄŸer eklenebilecek property ler
|
||||
// diğer eklenebilecek property ler
|
||||
|
||||
// autoHidePointMarkers
|
||||
// barGroupPadding
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
namespace Erp.Platform.ListForms;
|
||||
|
||||
/// <summary> Bir grafikteki tüm bölmeler için ortak ayarları tanımlar.
|
||||
/// <summary> Bir grafikteki tüm bölmeler için ortak ayarları tanımlar.
|
||||
/// </summary>
|
||||
public class ChartCommonPaneDto
|
||||
{
|
||||
/// <summary> Bölmenin arka planının rengini belirtir.
|
||||
/// Bu özellik aşağıdaki renkleri destekler:
|
||||
/// <summary> Bölmenin arka planının rengini belirtir.
|
||||
/// Bu özellik aşağıdaki renkleri destekler:
|
||||
/// Hexadecimal colors
|
||||
/// RGB colors
|
||||
/// RGBA colors
|
||||
|
|
|
|||
|
|
@ -1,31 +1,31 @@
|
|||
namespace Erp.Platform.ListForms;
|
||||
|
||||
/// <summary> Grafikteki tüm seriler için ortak olan ayarları belirtir.
|
||||
/// <summary> Grafikteki tüm seriler için ortak olan ayarları belirtir.
|
||||
/// </summary>
|
||||
public class ChartCommonSeriesSettingsDto
|
||||
{
|
||||
/// <summary> Hangi veri kaynağı alanının seri noktaları için bağımsız değişkenler sağladığını belirtir
|
||||
/// <summary> 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!
|
||||
/// </summary>
|
||||
public string ArgumentField { get; set; } = "arg";
|
||||
/// <summary> Seriyi bir deÄŸer eksenine baÄŸlar.
|
||||
/// <summary> Seriyi bir değer eksenine bağlar.
|
||||
/// </summary>
|
||||
public string Axis { get; set; }
|
||||
/// <summary> 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
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string BarOverlapGroup { get; set; }
|
||||
/// <summary> 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
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public int BarPadding { get; set; }
|
||||
/// <summary> 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
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public int BarWidth { get; set; }
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string Color { get; set; }
|
||||
/// <summary> Çubukların yuvarlak görünmesini sağlar. Yalnızca çubuk benzeri seriler için geçerlidir.
|
||||
/// <summary> Ç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
|
||||
/// </summary>
|
||||
public int CornerRadius { get; set; } = 0;
|
||||
/// <summary> Açıklamanın kenarlığı için bir tire stili ayarlar
|
||||
/// <summary> 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'.
|
||||
/// </summary>
|
||||
public string DashStyle { get; set; } = "solid";
|
||||
/// <summary> 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.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public bool IgnoreEmptyPoints { get; set; } = false;
|
||||
/// <summary> 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
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string Pane { get; set; }
|
||||
|
||||
/// <summary> 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:
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string RangeValue1Field { get; set; } = "val1";
|
||||
/// <summary> 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:
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string RangeValue2Field { get; set; } = "val2";
|
||||
/// <summary> Kullanıcı bir dizi seçtiğinde vurgulanacak dizi öğelerini belirtir.
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string SelectionMode { get; set; } = "none";
|
||||
/// <summary> Dizinin lejantta gösterilip gösterilmeyeceğini belirtir.
|
||||
/// <summary> Dizinin lejantta gösterilip gösterilmeyeceğini belirtir.
|
||||
/// </summary>
|
||||
public bool ShowInLegend { get; set; } = true;
|
||||
/// <summary> Seri türünü ayarlar
|
||||
/// <summary> 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'
|
||||
/// </summary>
|
||||
public string Type { get; set; }
|
||||
/// <summary> 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:
|
||||
/// <summary> 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,
|
||||
/// </summary>
|
||||
public string ValueField { get; set; }
|
||||
/// <summary> Serinin görünür olup olmayacağını belirtir.
|
||||
/// <summary> Serinin görünür olup olmayacağını belirtir.
|
||||
/// </summary>
|
||||
public bool Visible { get; set; } = true;
|
||||
/// <summary> Seri çizgisinin genişliğini piksel cinsinden belirtir. Yalnızca çizgi benzeri seriler için geçerlidir.
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
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 {}
|
||||
|
|
|
|||
|
|
@ -9,8 +9,8 @@ public class ChartCrosshairDto
|
|||
VerticalLine = new ChartCrosshairLineDto();
|
||||
}
|
||||
|
||||
/// <summary> Artı işareti çizgilerinin rengini belirtir.
|
||||
/// Bu özellik aşağıdaki renkleri destekler:
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string Color { get; set; } = "#f05b41";
|
||||
/// <summary> Artı işareti çizgilerinin kısa çizgi stilini belirtir.
|
||||
/// <summary> 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'.
|
||||
/// </summary>
|
||||
public string DashStyle { get; set; } = "dot";
|
||||
/// <summary> Artı işaretini etkinleştirir.
|
||||
/// <summary> Artı işaretini etkinleştirir.
|
||||
/// </summary>
|
||||
public bool Enabled { get; set; }
|
||||
///// <summary> Sürükleme kutusunun saydamlığını belirtir.
|
||||
///// 0 - 1 aralığındadır
|
||||
///// <summary> Sürükleme kutusunun saydamlığını belirtir.
|
||||
///// 0 - 1 aralığındadır
|
||||
///// </summary>
|
||||
//public double Opacity { get; set; } = 1;
|
||||
/// <summary> Artı işareti çizgilerinin genişliğini belirtir.
|
||||
/// <summary> Artı işareti çizgilerinin genişliğini belirtir.
|
||||
/// </summary>
|
||||
public int Width { get; set; } = 1;
|
||||
|
||||
/// <summary> Yatay çapraz çizgiyi ayrı ayrı yapılandırır.
|
||||
/// <summary> Yatay çapraz çizgiyi ayrı ayrı yapılandırır.
|
||||
/// </summary>
|
||||
public ChartCrosshairLineDto HorizontalLine { get; set; }
|
||||
/// <summary> Artı işareti etiketlerini yapılandırır.
|
||||
/// <summary> Artı işareti etiketlerini yapılandırır.
|
||||
/// </summary>
|
||||
public ChartLabelDto Label { get; set; }
|
||||
/// <summary> Dikey artı çizgisini ayrı ayrı yapılandırır.
|
||||
/// <summary> Dikey artı çizgisini ayrı ayrı yapılandırır.
|
||||
/// </summary>
|
||||
public ChartCrosshairLineDto VerticalLine { get; set; }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
public class ChartDragBoxStyle
|
||||
{
|
||||
/// <summary> Sürükleme kutusunun rengini belirtir.
|
||||
/// Bu özellik aşağıdaki renkleri destekler:
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string Color { get; set; }
|
||||
/// <summary> Sürükleme kutusunun saydamlığını belirtir.
|
||||
/// 0 - 1 aralığındadır
|
||||
/// <summary> Sürükleme kutusunun saydamlığını belirtir.
|
||||
/// 0 - 1 aralığındadır
|
||||
/// </summary>
|
||||
public double Opacity { get; set; }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
public class ChartExportDto
|
||||
{
|
||||
/// <summary> Ortaya çıkan dosya veya belgedeki saydam bölgeleri dolduracak rengi belirtir.
|
||||
/// Bu özellik aşağıdaki renkleri destekler:
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string BackgroundColor { get; set; } = "#ffffff";
|
||||
/// <summary> UI bileşeninde istemci tarafında dışa aktarmayı etkinleştirir.
|
||||
/// <summary> UI bileşeninde istemci tarafında dışa aktarmayı etkinleştirir.
|
||||
/// </summary>
|
||||
public bool Enabled { get; set; }
|
||||
/// <summary> UI bileşeninde istemci tarafında dışa aktarmayı etkinleştirir.
|
||||
/// <summary> UI bileşeninde istemci tarafında dışa aktarmayı etkinleştirir.
|
||||
/// </summary>
|
||||
public bool AllowExportSelectedData { get; set; }
|
||||
///// <summary> Dışa aktarma formatı belirtir.
|
||||
///// <summary> Dışa aktarma formatı belirtir.
|
||||
///// Desteklenen formatlar: 'GIF' | 'JPEG' | 'PDF' | 'PNG' | 'SVG'
|
||||
///// </summary>
|
||||
//public string Formats { get; set; } = "['PNG', 'PDF', 'JPEG', 'SVG', 'GIF']";
|
||||
|
||||
/// <summary> Dışa aktarılan UI bileşeninin etrafına boş bir alan ekler; piksel cinsinden ölçülür.
|
||||
/// <summary> Dışa aktarılan UI bileşeninin etrafına boş bir alan ekler; piksel cinsinden ölçülür.
|
||||
/// </summary>
|
||||
public int Margin { get; set; } = 10;
|
||||
/// <summary> UI bileşeninde yazdırma özelliğini etkinleştirir. Yalnızca export.enabled özelliği doğruysa geçerlidir. ///
|
||||
/// <summary> UI bileşeninde yazdırma özelliğini etkinleştirir. Yalnızca export.enabled özelliği doğruysa geçerlidir. ///
|
||||
/// </summary>
|
||||
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.
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
namespace Erp.Platform.ListForms;
|
||||
|
||||
/// <summary> Artı işareti etiketleri için yazı tipi özelliklerini belirtir.
|
||||
/// <summary> Artı işareti etiketleri için yazı tipi özelliklerini belirtir.
|
||||
/// </summary>
|
||||
public class ChartFontDto
|
||||
{
|
||||
/// <summary> Yazı tipi rengini belirtir.
|
||||
/// Bu özellik aşağıdaki renkleri destekler:
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string Color { get; set; } = "#FFFFFF";
|
||||
/// <summary> Yazı tipi ailesini belirtir.
|
||||
/// <summary> Yazı tipi ailesini belirtir.
|
||||
/// Default Value: '"Segoe UI", "Helvetica Neue", "Trebuchet MS", Verdana, sans-serif'
|
||||
/// </summary>
|
||||
public string Family { get; set; } = "\"Segoe UI\", \"Helvetica Neue\", \"Trebuchet MS\", Verdana, sans-serif";
|
||||
///// <summary> Yazı tipi saydamlığını belirtir.
|
||||
///// 0 - 1 aralığındadır
|
||||
///// <summary> Yazı tipi saydamlığını belirtir.
|
||||
///// 0 - 1 aralığındadır
|
||||
///// </summary>
|
||||
//public double Opacity { get; set; } = 1;
|
||||
/// <summary> Yazı tipi boyutunu belirtir.
|
||||
/// <summary> Yazı tipi boyutunu belirtir.
|
||||
/// </summary>
|
||||
public int Size { get; set; } = 12;
|
||||
/// <summary>
|
||||
/// 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.
|
||||
/// </summary>
|
||||
public int Weight { get; set; } = 400;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@ public class ChartLabelDto
|
|||
Font = new ChartFontDto();
|
||||
}
|
||||
|
||||
/// <summary> Etiketin arka planını boyar.
|
||||
/// Bu özellik aşağıdaki renkleri destekler:
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string BackgroundColor { get; set; } = "#f05b41";
|
||||
/// <summary> görüntülenen metni özelleştirir.
|
||||
/// Temalarda kullanılamaz.
|
||||
/// <summary> görüntülenen metni özelleştirir.
|
||||
/// Temalarda kullanılamaz.
|
||||
/// </summary>
|
||||
public string CustomizeText { get; set; }
|
||||
public ChartFontDto Font { get; set; }
|
||||
public bool Visible { get; set; }
|
||||
/// <summary> Artı işareti etiketinde görüntülenmeden önce bir nokta değerini/bağımsız değişkeni biçimlendirir. ///
|
||||
/// <summary> 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'
|
||||
/// </summary>
|
||||
public string Format { get; set; }
|
||||
|
|
|
|||
|
|
@ -7,9 +7,9 @@ public class ChartLegendDto
|
|||
Border = new ChartBorderDto();
|
||||
}
|
||||
|
||||
/// <summary> Legend in arka planını renklendirir
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string BackgroundColor { get; set; }
|
||||
/// <summary> Legend in kenarlığını yapılandırır
|
||||
/// <summary> Legend in kenarlığını yapılandırır
|
||||
/// </summary>
|
||||
public ChartBorderDto Border { get; set; }
|
||||
public int ColumnCount { get; set; }
|
||||
/// <summary>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
|
||||
/// <summary>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'
|
||||
/// </summary>
|
||||
public string Orientation { get; set; } = "vertical";
|
||||
/// <summary>Göstergenin grafiğin çiziminin dışında mı yoksa içinde mi bulunduğunu belirtir
|
||||
/// <summary>Göstergenin grafiğin çiziminin dışında mı yoksa içinde mi bulunduğunu belirtir
|
||||
/// Accepted Values: 'inside' | 'outside'
|
||||
/// </summary>
|
||||
public string Position { get; set; } = "outside";
|
||||
/// <summary>Gösterge öğelerini birkaç sıra halinde düzenler.
|
||||
/// <summary>Gösterge öğelerini birkaç sıra halinde düzenler.
|
||||
/// </summary>
|
||||
public int RowCount { get; set; } = 0;
|
||||
/// <summary>Açıklama başlığını yapılandırır
|
||||
/// ihtiyaç olması durumunda detaylandırmak için TitleDto ile değiştirilebilir
|
||||
/// <summary>Açıklama başlığını yapılandırır
|
||||
/// ihtiyaç olması durumunda detaylandırmak için TitleDto ile değiştirilebilir
|
||||
/// </summary>
|
||||
public string Title { get; set; }
|
||||
/// <summary> Göstergenin görünürlüğünü belirtir
|
||||
/// <summary> Göstergenin görünürlüğünü belirtir
|
||||
/// </summary>
|
||||
public bool Visible { get; set; } = true;
|
||||
|
||||
////İhtiyaç olması durumunda açılacak diğer property ler
|
||||
////İhtiyaç olması durumunda açılacak diğer property ler
|
||||
|
||||
///// <summary>horizontalAlignment ile birlikte göstergenin konumunu belirtir
|
||||
///// <summary>horizontalAlignment ile birlikte göstergenin konumunu belirtir
|
||||
///// Accepted Values: 'bottom' | 'top'
|
||||
///// </summary>
|
||||
//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; }
|
||||
///// <summary> Öğe sütunları arasında piksel cinsinden boş bir alan belirtir
|
||||
///// <summary> Öğe sütunları arasında piksel cinsinden boş bir alan belirtir
|
||||
///// </summary>
|
||||
//public int ColumnItemSpacing { get; set; } = 20;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,16 +1,16 @@
|
|||
namespace Erp.Platform.ListForms;
|
||||
|
||||
/// <summary> 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.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public class ChartPanesDto
|
||||
{
|
||||
/// <summary> Bölmenin arka planının rengini belirtir.
|
||||
/// <summary> Bölmenin arka planının rengini belirtir.
|
||||
/// </summary>
|
||||
public string BackgroundColor { get; set; }
|
||||
/// <summary>Çok bölmeli bir grafikte bölmenin yüksekliğini (veya grafik döndürüldüğünde genişliğini) belirtir.
|
||||
/// <summary>Çok bölmeli bir grafikte bölmenin yüksekliğini (veya grafik döndürüldüğünde genişliğini) belirtir.
|
||||
/// </summary>
|
||||
public int Height { get; set; } = 250;
|
||||
/// <summary> Bölmenin adını belirtir.
|
||||
/// <summary> Bölmenin adını belirtir.
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
public class ChartScrollBarDto
|
||||
{
|
||||
/// <summary> ScrollBar ın kenarlığını renklendirir.
|
||||
/// Bu özellik aşağıdaki renkleri destekler:
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string Color { get; set; } = "gray";
|
||||
/// <summary> Kaydırma çubuğu ile grafiğin çizimi arasındaki boşluğu piksel cinsinden belirtir.
|
||||
/// <summary> Kaydırma çubuğu ile grafiğin çizimi arasındaki boşluğu piksel cinsinden belirtir.
|
||||
/// </summary>
|
||||
public int Offset { get; set; } = 5;
|
||||
|
||||
///// <summary> Kaydırma çubuğunun opaklığını belirtir.
|
||||
///// <summary> Kaydırma çubuğunun opaklığını belirtir.
|
||||
/////
|
||||
///// </summary>
|
||||
//public double Opacity { get; set; }
|
||||
|
||||
/// <summary> Grafikteki kaydırma çubuğunun konumunu belirtir.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public string Position { get; set; } = "top";
|
||||
/// <summary> Kaydırma çubuğunun görünüp görünmeyeceğini belirtir.
|
||||
/// <summary> Kaydırma çubuğunun görünüp görünmeyeceğini belirtir.
|
||||
/// </summary>
|
||||
public bool Visible { get; set; }
|
||||
/// <summary> Kaydırma çubuğunun genişliğini piksel cinsinden belirtir.
|
||||
/// <summary> Kaydırma çubuğunun genişliğini piksel cinsinden belirtir.
|
||||
/// </summary>
|
||||
public int Width { get; set; } = 10;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,29 +2,29 @@
|
|||
|
||||
public class ChartSeriesDto
|
||||
{
|
||||
/// <summary> Hangi veri kaynağı alanının seri noktaları için bağımsız değişkenler sağladığını belirtir
|
||||
/// <summary> 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!
|
||||
/// </summary>
|
||||
public string ArgumentField { get; set; } = "arg";
|
||||
/// <summary> Seriyi bir deÄŸer eksenine baÄŸlar.
|
||||
/// <summary> Seriyi bir değer eksenine bağlar.
|
||||
/// </summary>
|
||||
public string Axis { get; set; }
|
||||
/// <summary> 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
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string BarOverlapGroup { get; set; }
|
||||
/// <summary> 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
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public int BarPadding { get; set; }
|
||||
/// <summary> 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
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public int BarWidth { get; set; }
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string Color { get; set; }
|
||||
/// <summary> Çubukların yuvarlak görünmesini sağlar. Yalnızca çubuk benzeri seriler için geçerlidir.
|
||||
/// <summary> Ç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
|
||||
/// </summary>
|
||||
public int CornerRadius { get; set; } = 0;
|
||||
/// <summary> Açıklamanın kenarlığı için bir tire stili ayarlar
|
||||
/// <summary> 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'.
|
||||
/// </summary>
|
||||
public string DashStyle { get; set; } = "solid";
|
||||
/// <summary> 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.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public bool IgnoreEmptyPoints { get; set; } = false;
|
||||
|
||||
/// <summary> Seriyi tanımlayan adı belirtir.
|
||||
/// <summary> Seriyi tanımlayan adı belirtir.
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
/// <summary> 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
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string Pane { get; set; }
|
||||
/// <summary> 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:
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string RangeValue1Field { get; set; } = "val1";
|
||||
/// <summary> 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:
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string RangeValue2Field { get; set; } = "val2";
|
||||
/// <summary> Kullanıcı bir dizi seçtiğinde vurgulanacak dizi öğelerini belirtir.
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string SelectionMode { get; set; } = "none";
|
||||
/// <summary> Dizinin lejantta gösterilip gösterilmeyeceğini belirtir.
|
||||
/// <summary> Dizinin lejantta gösterilip gösterilmeyeceğini belirtir.
|
||||
/// </summary>
|
||||
public bool ShowInLegend { get; set; } = true;
|
||||
/// <summary> Seri türünü ayarlar
|
||||
/// <summary> 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'
|
||||
/// </summary>
|
||||
public string Type { get; set; }
|
||||
/// <summary> 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:
|
||||
/// <summary> 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,
|
||||
/// </summary>
|
||||
public string ValueField { get; set; }
|
||||
/// <summary> Serinin görünür olup olmayacağını belirtir.
|
||||
/// <summary> Serinin görünür olup olmayacağını belirtir.
|
||||
/// </summary>
|
||||
public bool Visible { get; set; } = true;
|
||||
/// <summary> Seri çizgisinin genişliğini piksel cinsinden belirtir. Yalnızca çizgi benzeri seriler için geçerlidir.
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
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; }
|
||||
|
||||
/// <summary> Değer özetleme işlevini belirtir.
|
||||
/// <summary> Değer özetleme işlevini belirtir.
|
||||
/// Accepted Values: 'avg' | 'count' | 'custom' | 'max' | 'min' | 'sum'
|
||||
/// Default Value: 'sum'
|
||||
/// </summary>
|
||||
public string SummaryType { get; set; } = "sum";
|
||||
/// <example>'Kullanıcı Adı'</example>
|
||||
/// <example>'Kullanıcı Adı'</example>
|
||||
public string UserId { get; set; }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,10 +3,10 @@
|
|||
public class ChartSizeDto
|
||||
{
|
||||
public bool UseSize { get; set; } = false;
|
||||
/// <summary> UI bileÅŸeninin geniÅŸliÄŸini piksel cinsinden belirtir
|
||||
/// <summary> UI bileşeninin genişliğini piksel cinsinden belirtir
|
||||
/// </summary>
|
||||
public int Width { get; set; } = 400;
|
||||
/// <summary> UI bileşeninin yüksekliğini piksel cinsinden belirtir
|
||||
/// <summary> UI bileşeninin yüksekliğini piksel cinsinden belirtir
|
||||
/// </summary>
|
||||
public int Height { get; set; } = 200;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,33 +2,33 @@
|
|||
|
||||
public class ChartTitleDto
|
||||
{
|
||||
/// <summary> Başlığın metnini belirtir
|
||||
/// <summary> Başlığın metnini belirtir
|
||||
/// </summary>
|
||||
public string Text { get; set; }
|
||||
/// <summary> Dikey hizalamanın konumunu belirtir
|
||||
/// <summary> Dikey hizalamanın konumunu belirtir
|
||||
/// Accepted Values: 'bottom' | 'top'
|
||||
/// </summary>
|
||||
public string VerticalAlignment { get; set; } = "top";
|
||||
/// <summary> Yatay yönde hizalamanın yanaşıklık konumunu belirtir
|
||||
/// <summary> Yatay yönde hizalamanın yanaşıklık konumunu belirtir
|
||||
/// Accepted Values: 'center' | 'left' | 'right'
|
||||
/// </summary>
|
||||
public string HorizontalAlignment { get; set; } = "center";
|
||||
/// <summary> UI bileşeninin altyazısını yapılandırır
|
||||
/// İhtiyaç olması durumunda alt özellikleri ile birlikte Objeye çevrilebilir
|
||||
/// <summary> UI bileşeninin altyazısını yapılandırır
|
||||
/// İhtiyaç olması durumunda alt özellikleri ile birlikte Objeye çevrilebilir
|
||||
/// </summary>
|
||||
public string Subtitle { get; set; }
|
||||
/// <summary> 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.
|
||||
/// <summary> 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'
|
||||
/// </summary>
|
||||
public string TextOverflow { get; set; } = "ellipsis";
|
||||
/// <summary> Tek bir satıra sığmazsa başlığın nasıl kaydırılacağını belirtir.
|
||||
/// <summary> 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ışı.
|
||||
/// </summary>
|
||||
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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
namespace Erp.Platform.ListForms;
|
||||
|
||||
/// <summary> Araç ipuçlarını yapılandırır.
|
||||
/// <summary> Araç ipuçlarını yapılandırır.
|
||||
/// </summary>
|
||||
public class ChartTooltipDto
|
||||
{
|
||||
|
|
@ -10,18 +10,18 @@ public class ChartTooltipDto
|
|||
Font = new ChartFontDto() { Color = "#000000" };
|
||||
}
|
||||
|
||||
/// <summary> 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.
|
||||
/// <summary> 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'
|
||||
/// </summary>
|
||||
public string ArgumentFormat { get; set; }
|
||||
/// <summary>Bir araç ipucunun okunun uzunluğunu piksel cinsinden belirtir.
|
||||
/// <summary>Bir araç ipucunun okunun uzunluğunu piksel cinsinden belirtir.
|
||||
/// </summary>
|
||||
public int ArrowLength { get; set; } = 10;
|
||||
/// <summary> Bir araç ipucunun kenarlığını yapılandırır.
|
||||
/// <summary> Bir araç ipucunun kenarlığını yapılandırır.
|
||||
/// </summary>
|
||||
public ChartBorderDto Border { get; set; }
|
||||
/// <summary> Tüm araç ipuçlarını renklendirir.
|
||||
/// Bu özellik aşağıdaki renkleri destekler:
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string Color { get; set; } = "#ffffff";
|
||||
/// <summary> Araç ipuçlarını etkinleştirir.
|
||||
/// <summary> Araç ipuçlarını etkinleştirir.
|
||||
/// </summary>
|
||||
public bool Enabled { get; set; }
|
||||
public ChartFontDto Font { get; set; }
|
||||
/// <summary> Bir değeri araç ipucunda görüntülenmeden önce biçimlendirir.
|
||||
/// <summary> 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'
|
||||
/// </summary>
|
||||
public string Format { get; set; }
|
||||
/// <summary> 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.
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string Location { get; set; } = "center";
|
||||
/// <summary> Araç ipucunun sol/sağ kenarlığı ile metni arasında piksel cinsinden ölçülen boş bir alan oluşturur.
|
||||
/// <summary> Araç ipucunun sol/sağ kenarlığı ile metni arasında piksel cinsinden ölçülen boş bir alan oluşturur.
|
||||
/// </summary>
|
||||
public int PaddingLeftRight { get; set; } = 18;
|
||||
/// <summary> Araç ipucunun üst/alt kenarlığı ile metni arasında piksel cinsinden ölçülen boş bir alan oluşturur.
|
||||
/// <summary> Araç ipucunun üst/alt kenarlığı ile metni arasında piksel cinsinden ölçülen boş bir alan oluşturur.
|
||||
/// </summary>
|
||||
public int PaddingTopBottom { get; set; } = 15;
|
||||
/// <summary> 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.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public bool Shared { get; set; }
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
namespace Erp.Platform.ListForms;
|
||||
|
||||
/// <summary> Değer eksenini yapılandırır.
|
||||
/// <summary> Değer eksenini yapılandırır.
|
||||
/// </summary>
|
||||
public class ChartValueAxisDto
|
||||
{
|
||||
|
|
@ -16,47 +16,47 @@ public class ChartValueAxisDto
|
|||
}
|
||||
|
||||
public ChartAxisGridDto Grid { get; set; }
|
||||
/// <summary> Değer ekseninin adını belirtir.
|
||||
/// <summary> Değer ekseninin adını belirtir.
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
/// <summary> Bağımsız değişken ekseninin yerini değiştirir.
|
||||
/// <summary> 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"
|
||||
/// </summary>
|
||||
public string Position { get; set; } = "left";
|
||||
/// <summary> 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
|
||||
/// <summary> 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
|
||||
/// </summary>
|
||||
public string Title { get; set; }
|
||||
/// <summary> Değerleri belirtilen bir veri türüne dönüştürür.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public string ValueType { get; set; } = "numeric";
|
||||
/// <summary> Eksen çizgisini görünür yapar.
|
||||
/// <summary> Eksen çizgisini görünür yapar.
|
||||
/// </summary>
|
||||
public bool Visible { get; set; } = true;
|
||||
/// <summary> Eksen çizgisinin genişliğini piksel cinsinden belirtir.
|
||||
/// <summary> Eksen çizgisinin genişliğini piksel cinsinden belirtir.
|
||||
/// </summary>
|
||||
public int Width { get; set; } = 1;
|
||||
|
||||
public List<BreakDto> Breaks { get; set; }
|
||||
public BreakStyleDto BreakStyle { get; set; }
|
||||
/// <summary> Değer ekseninin türünü belirtir.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
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
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
namespace Erp.Platform.ListForms;
|
||||
|
||||
/// <summary> 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.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public class ChartZoomAndPanDto
|
||||
{
|
||||
|
|
@ -10,28 +10,28 @@ public class ChartZoomAndPanDto
|
|||
DragBoxStyle = new ChartDragBoxStyle();
|
||||
}
|
||||
|
||||
/// <summary> 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.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public bool AllowMouseWheel { get; set; } = true;
|
||||
/// <summary> 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.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public bool AllowTouchGestures { get; set; } = true;
|
||||
/// <summary> 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.
|
||||
/// <summary> 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'
|
||||
/// </summary>
|
||||
public string ArgumentAxis { get; set; } = "none";
|
||||
/// <summary> 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.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public bool DragToZoom { get; set; } = false;
|
||||
/// <summary> dragToZoom true olduğunda kaydırmayı etkinleştiren anahtarı belirtir. Yalnızca fare kullanan cihazlarda geçerlidir.
|
||||
/// <summary> dragToZoom true olduğunda kaydırmayı etkinleştiren anahtarı belirtir. Yalnızca fare kullanan cihazlarda geçerlidir.
|
||||
/// Accepted Values: 'alt' | 'ctrl' | 'meta' | 'shift'
|
||||
/// </summary>
|
||||
public string PanKey { get; set; } = "shift";
|
||||
/// <summary> Kullanıcıların değer eksenini yakınlaştırmasına ve/veya kaydırmasına izin verilip verilmediğini belirtir.
|
||||
/// <summary> 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'
|
||||
/// </summary>
|
||||
public string ValueAxis { get; set; } = "none";
|
||||
/// <summary> 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.
|
||||
/// <summary> 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.
|
||||
/// </summary>
|
||||
public ChartDragBoxStyle DragBoxStyle { get; set; }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,41 +1,41 @@
|
|||
namespace Erp.Platform.ListForms;
|
||||
|
||||
/// <summary>
|
||||
/// TreeList için özel ayarları içerir
|
||||
/// TreeList için özel ayarları içerir
|
||||
/// </summary>
|
||||
public class TreeOptionDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Parent kaydı belirten field adı (örn: "Id")
|
||||
/// Parent kaydı belirten field adı (örn: "Id")
|
||||
/// </summary>
|
||||
public string KeyExpr { get; set; }
|
||||
/// <summary>
|
||||
/// Parent kaydı belirten field adı (örn: "parentId")
|
||||
/// Parent kaydı belirten field adı (örn: "parentId")
|
||||
/// </summary>
|
||||
public string ParentIdExpr { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Alt kayıtların olup olmadığını belirten field adı (opsiyonel)
|
||||
/// Alt kayıtların olup olmadığını belirten field adı (opsiyonel)
|
||||
/// </summary>
|
||||
public string HasItemsExpr { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 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)
|
||||
/// </summary>
|
||||
public object RootValue { get; set; } = null;
|
||||
|
||||
/// <summary>
|
||||
/// Başlangıçta açık olacak node'ların ID'leri
|
||||
/// Başlangıçta açık olacak node'ların ID'leri
|
||||
/// </summary>
|
||||
public object[] ExpandedRowKeys { get; set; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// Tüm node'ları başlangıçta açık göster
|
||||
/// Tüm node'ları başlangıçta açık göster
|
||||
/// </summary>
|
||||
public bool AutoExpandAll { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// 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)
|
||||
/// </summary>
|
||||
public bool RecursiveSelection { get; set; } = false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ public class ImportPreviewDataDto
|
|||
{
|
||||
public Guid SessionId { get; set; }
|
||||
public List<string> Headers { get; set; } = new();
|
||||
public List<List<string>> Rows { get; set; } = new(); // raw string olarak dönen veri hücreleri
|
||||
public List<List<string>> Rows { get; set; } = new(); // raw string olarak dönen veri hücreleri
|
||||
public int TotalRows { get; set; }
|
||||
public int SampleSize { get; set; }
|
||||
|
||||
|
|
|
|||
|
|
@ -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\";";
|
||||
|
||||
|
|
|
|||
|
|
@ -12,5 +12,5 @@ public class UomDto : AuditedEntityDto<Guid>
|
|||
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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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<CrudEndpoint>();
|
||||
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);
|
||||
|
||||
|
|
|
|||
|
|
@ -189,7 +189,7 @@ public class CustomEntityAppService : CrudAppService<
|
|||
|
||||
public override async Task<CustomEntityDto> 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())
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -22,13 +22,13 @@ public class DynamicServiceCompiler : ITransientDependency
|
|||
{
|
||||
private readonly ILogger<DynamicServiceCompiler> _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<Guid, List<Assembly>> _tenantAssemblies = new();
|
||||
|
||||
// Assembly kaydı için delegate
|
||||
// Assembly kaydı için delegate
|
||||
public static Action<Guid, Assembly, string>? 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
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Kodu derler ve validate eder, ancak assembly yüklemez
|
||||
/// Kodu derler ve validate eder, ancak assembly yüklemez
|
||||
/// </summary>
|
||||
public async Task<CompileResultDto> 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<string>()
|
||||
};
|
||||
|
||||
// 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<CompilationErrorDto>()
|
||||
};
|
||||
|
|
@ -146,20 +146,20 @@ public class DynamicServiceCompiler : ITransientDependency
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Kodu derler ve belirtilen tenant için assembly yükler
|
||||
/// Kodu derler ve belirtilen tenant için assembly yükler
|
||||
/// </summary>
|
||||
public async Task<CompileResultDto> 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<CompilationErrorDto>()
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Kod güvenlik kontrolü
|
||||
/// Kod güvenlik kontrolü
|
||||
/// </summary>
|
||||
private CompileResultDto ValidateCodeSecurity(string code)
|
||||
{
|
||||
var errors = new List<CompilationErrorDto>();
|
||||
|
||||
// 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
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Roslyn compilation oluÅŸturur
|
||||
/// Roslyn compilation oluşturur
|
||||
/// </summary>
|
||||
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ğı
|
||||
));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Varsayılan assembly referanslarını döner
|
||||
/// Varsayılan assembly referanslarını döner
|
||||
/// </summary>
|
||||
private List<MetadataReference> 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
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Bir tipin ApplicationService olup olmadığını kontrol eder
|
||||
/// Bir tipin ApplicationService olup olmadığını kontrol eder
|
||||
/// </summary>
|
||||
private bool IsApplicationServiceType(Type type)
|
||||
{
|
||||
|
|
@ -350,7 +350,7 @@ public class DynamicServiceCompiler : ITransientDependency
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Tipin ApplicationService base class'ından türediğini kontrol eder
|
||||
/// Tipin ApplicationService base class'ından türediğini kontrol eder
|
||||
/// </summary>
|
||||
private bool HasApplicationServiceBase(Type type)
|
||||
{
|
||||
|
|
@ -367,7 +367,7 @@ public class DynamicServiceCompiler : ITransientDependency
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Kod içinde belirli bir string'in satır numarasını bulur
|
||||
/// Kod içinde belirli bir string'in satır numarasını bulur
|
||||
/// </summary>
|
||||
private int GetLineNumber(string code, string searchText)
|
||||
{
|
||||
|
|
@ -383,7 +383,7 @@ public class DynamicServiceCompiler : ITransientDependency
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Assembly içindeki ApplicationService'lerden endpoint listesini çıkarır
|
||||
/// Assembly içindeki ApplicationService'lerden endpoint listesini çıkarır
|
||||
/// </summary>
|
||||
public List<string> 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;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// PascalCase'i kebab-case'e çevirir (DynamicCustomer -> dynamic-customer)
|
||||
/// PascalCase'i kebab-case'e çevirir (DynamicCustomer -> dynamic-customer)
|
||||
/// </summary>
|
||||
private string ToKebabCase(string value)
|
||||
{
|
||||
|
|
@ -461,7 +461,7 @@ public class DynamicServiceCompiler : ITransientDependency
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method'un HTTP verb'ünü belirler (ABP convention'a göre)
|
||||
/// Method'un HTTP verb'ünü belirler (ABP convention'a göre)
|
||||
/// </summary>
|
||||
private string DetermineHttpVerb(MethodInfo method)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
|
|
|
|||
|
|
@ -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ı
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -147,14 +147,14 @@ public class IntranetAppService : PlatformAppService, IIntranetAppService
|
|||
|
||||
private async Task<List<MealDto>> 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, ShuttleRouteDto>(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<AnnouncementDto>();
|
||||
|
||||
// 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, AnnouncementDto>(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<string>();
|
||||
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<Expense>, List<ExpenseDto>>(last5Expenses);
|
||||
|
||||
// Dönüş DTO'su
|
||||
// Dönüş DTO'su
|
||||
return new ExpensesDto
|
||||
{
|
||||
TotalRequested = totalRequested,
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<PlatformPermissionGroupDto> Groups { get; set; } = new();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ public class ReportAppService : PlatformAppService, IReportAppService
|
|||
|
||||
public async Task<PagedResultDto<ReportTemplateDto>> 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<ReportTemplateDto>(
|
||||
|
|
@ -134,7 +134,7 @@ public class ReportAppService : PlatformAppService, IReportAppService
|
|||
|
||||
public async Task<ReportTemplateDto> 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<UpdateReportParameterDto>();
|
||||
|
||||
// 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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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<CountryGroup>()
|
||||
.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<CountryGroup>(capacity: 1000);
|
||||
var seenCodes = new HashSet<string>(); // JSON içindeki duplicate’leri yakalamak için
|
||||
var seenCodes = new HashSet<string>(); // JSON içindeki duplicate’leri yakalamak için
|
||||
|
||||
await foreach (var item in JsonSerializer.DeserializeAsyncEnumerable<CountryGroupDto>(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<Country>()
|
||||
.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<Country>(capacity: 1000);
|
||||
var seenCodes = new HashSet<string>(); // JSON içindeki duplicate’leri yakalamak için
|
||||
var seenCodes = new HashSet<string>(); // JSON içindeki duplicate’leri yakalamak için
|
||||
|
||||
await foreach (var item in JsonSerializer.DeserializeAsyncEnumerable<CountryDto>(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<City>()
|
||||
.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<District>()
|
||||
.Select(d => new { d.Country, d.City, d.Name, d.Township, d.Street, d.ZipCode })
|
||||
.ToListAsync();
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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" }
|
||||
}),
|
||||
}),
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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" },
|
||||
}),
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
},
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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; }
|
||||
|
|
|
|||
|
|
@ -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<string, (Func<MenuPrefix, TableNameEnum, string> Method, MenuPrefix PrefixGroup)>
|
||||
_map = new(StringComparer.OrdinalIgnoreCase)
|
||||
{
|
||||
|
|
@ -185,10 +185,10 @@ public static class TableNameResolver
|
|||
public static string GetFullTableName(string tableName)
|
||||
{
|
||||
if (!Enum.TryParse<TableNameEnum>(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<TableNameEnum>(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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ public class Level : FullAuditedEntity<Guid>, 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
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ public class Schedule : FullAuditedEntity<Guid>, 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; }
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ public class Currency : FullAuditedEntity<Guid>
|
|||
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; }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ public class CustomEntity : FullAuditedEntity<Guid>, 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<Guid>
|
|||
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ using Volo.Abp.MultiTenancy;
|
|||
namespace Erp.Platform.Entities;
|
||||
|
||||
/// <summary>
|
||||
/// 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
|
||||
/// </summary>
|
||||
public class DynamicService : FullAuditedEntity<Guid>, IMultiTenant
|
||||
{
|
||||
|
|
@ -17,26 +17,26 @@ public class DynamicService : FullAuditedEntity<Guid>, IMultiTenant
|
|||
public Guid? TenantId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// AppService'in benzersiz adı (örn: "DynamicCustomerService")
|
||||
/// AppService'in benzersiz adı (örn: "DynamicCustomerService")
|
||||
/// </summary>
|
||||
[Required]
|
||||
[StringLength(256)]
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// AppService'in kullanıcı dostu başlığı
|
||||
/// AppService'in kullanıcı dostu başlığı
|
||||
/// </summary>
|
||||
[StringLength(512)]
|
||||
public string? DisplayName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// AppService açıklaması
|
||||
/// AppService açıklaması
|
||||
/// </summary>
|
||||
[StringLength(2000)]
|
||||
public string? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Tam C# sınıf kodu (using'ler ve namespace dahil)
|
||||
/// Tam C# sınıf kodu (using'ler ve namespace dahil)
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string Code { get; set; }
|
||||
|
|
@ -52,34 +52,34 @@ public class DynamicService : FullAuditedEntity<Guid>, IMultiTenant
|
|||
public CompilationStatus CompilationStatus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Son derleme hatası (varsa)
|
||||
/// Son derleme hatası (varsa)
|
||||
/// </summary>
|
||||
public string? LastCompilationError { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Son başarılı derleme zamanı
|
||||
/// Son başarılı derleme zamanı
|
||||
/// </summary>
|
||||
public DateTime? LastSuccessfulCompilation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Kod versiyonu (her güncelleme ile artan numara)
|
||||
/// Kod versiyonu (her güncelleme ile artan numara)
|
||||
/// </summary>
|
||||
public int Version { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Kod hash'i (değişiklik kontrolü için)
|
||||
/// Kod hash'i (değişiklik kontrolü için)
|
||||
/// </summary>
|
||||
[StringLength(64)]
|
||||
public string? CodeHash { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// AppService'in kullandığı ana entity türü (opsiyonel)
|
||||
/// AppService'in kullandığı ana entity türü (opsiyonel)
|
||||
/// </summary>
|
||||
[StringLength(256)]
|
||||
public string? PrimaryEntityType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Swagger'da görünecek controller adı
|
||||
/// Swagger'da görünecek controller adı
|
||||
/// </summary>
|
||||
[StringLength(256)]
|
||||
public string? ControllerName { get; set; }
|
||||
|
|
@ -104,7 +104,7 @@ public class DynamicService : FullAuditedEntity<Guid>, IMultiTenant
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Kodu günceller ve versiyonu artırır
|
||||
/// Kodu günceller ve versiyonu artırır
|
||||
/// </summary>
|
||||
public void UpdateCode(string newCode)
|
||||
{
|
||||
|
|
@ -121,7 +121,7 @@ public class DynamicService : FullAuditedEntity<Guid>, IMultiTenant
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Derleme başarısını işaretler
|
||||
/// Derleme başarısını işaretler
|
||||
/// </summary>
|
||||
public void MarkCompilationSuccess()
|
||||
{
|
||||
|
|
@ -131,7 +131,7 @@ public class DynamicService : FullAuditedEntity<Guid>, IMultiTenant
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Derleme hatasını işaretler
|
||||
/// Derleme hatasını işaretler
|
||||
/// </summary>
|
||||
public void MarkCompilationError(string error)
|
||||
{
|
||||
|
|
@ -153,22 +153,22 @@ public class DynamicService : FullAuditedEntity<Guid>, IMultiTenant
|
|||
public enum CompilationStatus
|
||||
{
|
||||
/// <summary>
|
||||
/// Henüz derlenmedi
|
||||
/// Henüz derlenmedi
|
||||
/// </summary>
|
||||
Pending = 0,
|
||||
|
||||
/// <summary>
|
||||
/// Derleme başarılı
|
||||
/// Derleme başarılı
|
||||
/// </summary>
|
||||
Success = 1,
|
||||
|
||||
/// <summary>
|
||||
/// Derleme başarısız
|
||||
/// Derleme başarısız
|
||||
/// </summary>
|
||||
Failed = 2,
|
||||
|
||||
/// <summary>
|
||||
/// Derleme iÅŸlemi devam ediyor
|
||||
/// Derleme işlemi devam ediyor
|
||||
/// </summary>
|
||||
InProgress = 3
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ public class QuestionPool : FullAuditedEntity<Guid>, 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<Question> Questions { get; set; } = new List<Question>();
|
||||
|
||||
|
|
|
|||
|
|
@ -8,10 +8,10 @@ public class QuestionTag : FullAuditedEntity<Guid>, 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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,16 +5,16 @@ using Volo.Abp.MultiTenancy;
|
|||
|
||||
namespace Erp.Platform.Entities
|
||||
{
|
||||
// İnsan Kaynakları Fazla Mesai
|
||||
// İnsan Kaynakları Fazla Mesai
|
||||
public class Overtime : FullAuditedEntity<Guid>, 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; }
|
||||
|
|
|
|||
|
|
@ -12,14 +12,14 @@ public class Announcement : FullAuditedEntity<Guid>, 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}]
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@ public class Reservation : FullAuditedEntity<Guid>, 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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ public class Partner : FullAuditedEntity<Guid>, 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<Guid>, IMultiTenant
|
|||
public decimal CreditLimit { get; set; }
|
||||
public DateTime? LastOrderDate { get; set; }
|
||||
|
||||
public PartnerStatus Status { get; set; }
|
||||
public string Status { get; set; }
|
||||
|
||||
public ICollection<PartnerBank> Banks { get; set; }
|
||||
public ICollection<PartnerCertificate> Certificates { get; set; }
|
||||
|
|
@ -63,8 +63,8 @@ public class Partner : FullAuditedEntity<Guid>, 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; }
|
||||
|
|
|
|||
|
|
@ -11,12 +11,12 @@ public class PartnerBank : FullAuditedEntity<Guid>, 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; }
|
||||
|
|
|
|||
|
|
@ -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ÅŸ
|
||||
}
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
@ -9,6 +9,9 @@ public class PaymentTerm : FullAuditedEntity<Guid>, IMultiTenant
|
|||
public Guid? TenantId { get; set; }
|
||||
|
||||
public string Name { get; set; }
|
||||
public string Description { get; set; }
|
||||
|
||||
public bool IsActive { get; set; }
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ using Volo.Abp.Domain.Values;
|
|||
namespace Erp.Platform.Queries;
|
||||
|
||||
/// <summary>
|
||||
/// Break tanımı
|
||||
/// Break tanımı
|
||||
/// </summary>
|
||||
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<object> GetAtomicValues()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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<object> GetAtomicValues()
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ using Volo.Abp.Domain.Values;
|
|||
namespace Erp.Platform.Queries;
|
||||
|
||||
/// <summary>
|
||||
/// Grid tanımı
|
||||
/// Grid tanımı
|
||||
/// </summary>
|
||||
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<object> GetAtomicValues()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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<object> GetAtomicValues()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -203,15 +203,15 @@ public class PlatformDbContext :
|
|||
public DbSet<PaymentTerm> PaymentTerms { get; set; }
|
||||
|
||||
public DbSet<Partner> Partners { get; set; }
|
||||
public DbSet<PartnerBank> PartnerBanks { get; set; }
|
||||
public DbSet<PartnerCertificate> PartnerCertificates { get; set; }
|
||||
public DbSet<PartnerContact> PartnerContacts { get; set; }
|
||||
|
||||
public DbSet<SupplyType> SupplyTypes { get; set; }
|
||||
public DbSet<SupplyCardType> SupplyCardTypes { get; set; }
|
||||
|
||||
public DbSet<CustomerType> CustomerTypes { get; set; }
|
||||
public DbSet<CustomerSegment> CustomerSegments { get; set; }
|
||||
|
||||
public DbSet<PartnerBank> PartnerBanks { get; set; }
|
||||
public DbSet<PartnerCertificate> PartnerCertificates { get; set; }
|
||||
public DbSet<PartnerContact> 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<SupplyType>(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);
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore;
|
|||
namespace Erp.Platform.Migrations
|
||||
{
|
||||
[DbContext(typeof(PlatformDbContext))]
|
||||
[Migration("20251111192837_Initial")]
|
||||
[Migration("20251112124138_Initial")]
|
||||
partial class Initial
|
||||
{
|
||||
/// <inheritdoc />
|
||||
|
|
@ -6615,7 +6615,7 @@ namespace Erp.Platform.Migrations
|
|||
.HasColumnType("decimal(18,2)")
|
||||
.HasDefaultValue(0m);
|
||||
|
||||
b.Property<Guid?>("CurrencyId")
|
||||
b.Property<Guid>("CurrencyId")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<decimal>("CurrentBalance")
|
||||
|
|
@ -6649,6 +6649,7 @@ namespace Erp.Platform.Migrations
|
|||
.HasColumnType("nvarchar(64)");
|
||||
|
||||
b.Property<string>("Email")
|
||||
.IsRequired()
|
||||
.HasMaxLength(128)
|
||||
.HasColumnType("nvarchar(128)");
|
||||
|
||||
|
|
@ -6691,16 +6692,19 @@ namespace Erp.Platform.Migrations
|
|||
.HasMaxLength(256)
|
||||
.HasColumnType("nvarchar(256)");
|
||||
|
||||
b.Property<int>("PartyType")
|
||||
.HasColumnType("int");
|
||||
b.Property<string>("PartyType")
|
||||
.IsRequired()
|
||||
.HasMaxLength(32)
|
||||
.HasColumnType("nvarchar(32)");
|
||||
|
||||
b.Property<Guid?>("PaymentTermId")
|
||||
b.Property<Guid>("PaymentTermId")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<string>("PerformanceMetricsJson")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("PhoneNumber")
|
||||
.IsRequired()
|
||||
.HasMaxLength(20)
|
||||
.HasColumnType("nvarchar(20)");
|
||||
|
||||
|
|
@ -6708,11 +6712,13 @@ namespace Erp.Platform.Migrations
|
|||
.HasMaxLength(16)
|
||||
.HasColumnType("nvarchar(16)");
|
||||
|
||||
b.Property<Guid?>("SectorId")
|
||||
b.Property<Guid>("SectorId")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<int>("Status")
|
||||
.HasColumnType("int");
|
||||
b.Property<string>("Status")
|
||||
.IsRequired()
|
||||
.HasMaxLength(10)
|
||||
.HasColumnType("nvarchar(10)");
|
||||
|
||||
b.Property<string>("Street")
|
||||
.HasMaxLength(128)
|
||||
|
|
@ -7118,6 +7124,16 @@ namespace Erp.Platform.Migrations
|
|||
.HasColumnType("datetime2")
|
||||
.HasColumnName("DeletionTime");
|
||||
|
||||
b.Property<string>("Description")
|
||||
.IsRequired()
|
||||
.HasMaxLength(500)
|
||||
.HasColumnType("nvarchar(500)");
|
||||
|
||||
b.Property<bool>("IsActive")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("bit")
|
||||
.HasDefaultValue(true);
|
||||
|
||||
b.Property<bool>("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")
|
||||
|
|
@ -2330,6 +2330,8 @@ namespace Erp.Platform.Migrations
|
|||
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
|
||||
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||
Name = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: false),
|
||||
Description = table.Column<string>(type: "nvarchar(500)", maxLength: 500, nullable: false),
|
||||
IsActive = table.Column<bool>(type: "bit", nullable: false, defaultValue: true),
|
||||
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
|
||||
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||
|
|
@ -4090,8 +4092,8 @@ namespace Erp.Platform.Migrations
|
|||
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||
Code = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
|
||||
Name = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: false),
|
||||
PartyType = table.Column<int>(type: "int", nullable: false),
|
||||
SectorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||
PartyType = table.Column<string>(type: "nvarchar(32)", maxLength: 32, nullable: false),
|
||||
SectorId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
|
||||
TaxNumber = table.Column<long>(type: "bigint", nullable: false),
|
||||
TaxOffice = table.Column<string>(type: "nvarchar(128)", maxLength: 128, nullable: true),
|
||||
Country = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
|
||||
|
|
@ -4102,15 +4104,15 @@ namespace Erp.Platform.Migrations
|
|||
Address2 = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: true),
|
||||
PostalCode = table.Column<string>(type: "nvarchar(16)", maxLength: 16, nullable: true),
|
||||
MobileNumber = table.Column<string>(type: "nvarchar(20)", maxLength: 20, nullable: true),
|
||||
PhoneNumber = table.Column<string>(type: "nvarchar(20)", maxLength: 20, nullable: true),
|
||||
PhoneNumber = table.Column<string>(type: "nvarchar(20)", maxLength: 20, nullable: false),
|
||||
FaxNumber = table.Column<string>(type: "nvarchar(20)", maxLength: 20, nullable: true),
|
||||
Email = table.Column<string>(type: "nvarchar(128)", maxLength: 128, nullable: true),
|
||||
Email = table.Column<string>(type: "nvarchar(128)", maxLength: 128, nullable: false),
|
||||
Website = table.Column<string>(type: "nvarchar(128)", maxLength: 128, nullable: true),
|
||||
CurrencyId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||
PaymentTermId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||
CurrencyId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
|
||||
PaymentTermId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
|
||||
CreditLimit = table.Column<decimal>(type: "decimal(18,2)", precision: 18, scale: 2, nullable: false, defaultValue: 0m),
|
||||
LastOrderDate = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||
Status = table.Column<int>(type: "int", nullable: false),
|
||||
Status = table.Column<string>(type: "nvarchar(10)", maxLength: 10, nullable: false),
|
||||
CustomerTypeId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||
CustomerSegmentId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||
AssignedEmployeeId = table.Column<Guid>(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,
|
||||
|
|
@ -6612,7 +6612,7 @@ namespace Erp.Platform.Migrations
|
|||
.HasColumnType("decimal(18,2)")
|
||||
.HasDefaultValue(0m);
|
||||
|
||||
b.Property<Guid?>("CurrencyId")
|
||||
b.Property<Guid>("CurrencyId")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<decimal>("CurrentBalance")
|
||||
|
|
@ -6646,6 +6646,7 @@ namespace Erp.Platform.Migrations
|
|||
.HasColumnType("nvarchar(64)");
|
||||
|
||||
b.Property<string>("Email")
|
||||
.IsRequired()
|
||||
.HasMaxLength(128)
|
||||
.HasColumnType("nvarchar(128)");
|
||||
|
||||
|
|
@ -6688,16 +6689,19 @@ namespace Erp.Platform.Migrations
|
|||
.HasMaxLength(256)
|
||||
.HasColumnType("nvarchar(256)");
|
||||
|
||||
b.Property<int>("PartyType")
|
||||
.HasColumnType("int");
|
||||
b.Property<string>("PartyType")
|
||||
.IsRequired()
|
||||
.HasMaxLength(32)
|
||||
.HasColumnType("nvarchar(32)");
|
||||
|
||||
b.Property<Guid?>("PaymentTermId")
|
||||
b.Property<Guid>("PaymentTermId")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<string>("PerformanceMetricsJson")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("PhoneNumber")
|
||||
.IsRequired()
|
||||
.HasMaxLength(20)
|
||||
.HasColumnType("nvarchar(20)");
|
||||
|
||||
|
|
@ -6705,11 +6709,13 @@ namespace Erp.Platform.Migrations
|
|||
.HasMaxLength(16)
|
||||
.HasColumnType("nvarchar(16)");
|
||||
|
||||
b.Property<Guid?>("SectorId")
|
||||
b.Property<Guid>("SectorId")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<int>("Status")
|
||||
.HasColumnType("int");
|
||||
b.Property<string>("Status")
|
||||
.IsRequired()
|
||||
.HasMaxLength(10)
|
||||
.HasColumnType("nvarchar(10)");
|
||||
|
||||
b.Property<string>("Street")
|
||||
.HasMaxLength(128)
|
||||
|
|
@ -7115,6 +7121,16 @@ namespace Erp.Platform.Migrations
|
|||
.HasColumnType("datetime2")
|
||||
.HasColumnName("DeletionTime");
|
||||
|
||||
b.Property<string>("Description")
|
||||
.IsRequired()
|
||||
.HasMaxLength(500)
|
||||
.HasColumnType("nvarchar(500)");
|
||||
|
||||
b.Property<bool>("IsActive")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("bit")
|
||||
.HasDefaultValue(true);
|
||||
|
||||
b.Property<bool>("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")
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue