diff --git a/.github/instructions/lowcode-reference.instructions.md b/.github/instructions/lowcode-reference.instructions.md index 5084239d..f6711706 100644 --- a/.github/instructions/lowcode-reference.instructions.md +++ b/.github/instructions/lowcode-reference.instructions.md @@ -253,7 +253,9 @@ metnini biçimlendirmek için — sözlükte tipi yoktur, olduğu gibi bileşene | `SelectTextOnEditStart` | `false` | Düzenlemeye girince metni seç | | `EditColumnName` | — | Aksiyon sütununun başlığı | | `SendOnlyChangedFormValuesUpdate` | `false` | Update'te yalnızca değişen alanları gönder | -| `AddPageUrl` | — | Yeni kayıt popup yerine bu adreste açılır | +| `AddPageUrl` | — | Yeni kayıt popup yerine bu adreste açılır (`window.open`; PWA'da aynı sekme) | +| `AddDialogName` | — | Yeni kayıt kayıtlı bir diyalogda açılır (`CommandColumnDto.DialogName` ile aynı liste). `AddPageUrl` ile birlikte verilirse **diyalog önceliklidir**; diyalog kapanınca liste yenilenir | +| `AddDialogParameters` | — | `AddDialogName` diyaloguna geçilen sabit parametreler (JSON nesnesi). Toolbar'da satır bağlamı olmadığı için `@Kolon` token'i kullanılmaz | | `Popup` | — | Aşağıdaki alt nesne | `Popup` (`GridEditingPopupDto`): `Title`, `ShowTitle` (`true`), `Width` (`700`), `Height` (`500`), @@ -379,7 +381,7 @@ Ekranın üstündeki KPI şeridi. **Sözleşmesi sezgisel değildir, dikkatle ok | Anahtar | Ne yazılır | | --- | --- | | `SqlQuery` | Kartları besleyen sorgu. **Zorunludur** — boş olan widget hiç çizilmez | -| `Title` · `SubTitle` · `Value` · `Color` · `Icon` · `OnClick` | **Sorgu sonucundaki kolon adları** — sabit metin değil. Sunucu her satırda bu adlı kolonu okur; kolon yoksa boş string döner | +| `Title` · `SubTitle` · `Value` · `Color` · `Icon` · `OnClick` | **Sorgu sonucundaki kolon adları** — sabit metin değil. Sunucu her satırda bu adlı kolonu okur; kolon yoksa boş string döner. `Title`/`SubTitle` kolonunun **değeri** ekranda dil anahtarı olarak çözülür (`WidgetGroup`, `::` öneki eklenerek); karşılığı olmayan metin aynen basılır, bu yüzden sorguya dil anahtarı yazılır | | `ColSpan` · `ColGap` · `ClassName` | Şeritteki yerleşim (widget başına, karta değil) | | `ValueClassName` | Değerin CSS sınıfı, varsayılan `text-3xl` | | `IsActive` | `false` ise sorgu hiç çalıştırılmaz | @@ -1180,7 +1182,7 @@ soneklerini alır. | **Menus › Routes / Module / Menu / Manager** | `App.Menus.Routes` · `.Module` · `.Menu` · `.Manager` (`/admin/menuManager`) | `Sas_H_Route` · `Sas_H_Module` · `Sas_H_Menu` | host | Menü ve route veritabanından gelir; üretilen ekranın menü kaydı buradan açılır. `Menu` ekranı ağaç düzeninin referansıdır, `Routes` yalnızca özel React sayfası eklenirken kullanılır. | | **Developer Kit › SQL Query Manager** | `App.SqlQueryManager` · `/admin/sqlQueryManager` | — | — | View/procedure/function yazma ve çalıştırma; karar sırasının 2. adımı buradan başlar. | | **Developer Kit › Custom Endpoints** | `App.DeveloperKit.CustomEndpoints` | `Sas_H_CustomEndpoint` | tenant | `Name`, `Url`, `Method`, `DataSourceCode`, `Sql`, `ParametersJson`, `PermissionsJson` — parametreli SQL'i yetkili bir HTTP ucuna çevirir. | -| **Developer Kit › Dynamic Services** | `App.DeveloperKit.DynamicServices` · `/admin/developerkit/dynamic-services` | `Sas_H_DynamicService` | host | Monaco editöründe yazılan, derlenip yayınlanan C# servisi; SQL'in yetmediği iş kuralı için 3. adım. | +| **Developer Kit › Dynamic Services** | `App.DeveloperKit.DynamicServices` · `/admin/list/App.DeveloperKit.DynamicServices` | `Sas_H_DynamicService` | host | Liste ListForm ekranıdır; kod, listenin toolbar/satır butonlarından açılan `DynamicServiceEditor` diyalogunda (Monaco) yazılıp derlenir ve yayınlanır. SQL'in yetmediği iş kuralı için 3. adım. | | **Developer Kit › Components** | `App.DeveloperKit.Components` · `/admin/developerkit/components` | `Sas_H_CustomComponent` | host | Custom component listesi ve **Visual Designer** girişi (§10). | | **Developer Kit › ListForm** | `App.Listforms.Listform` | `Sas_H_ListForm` · `Sas_H_ListFormField` · `Sas_H_ListFormWorkflow` · `Sas_H_ListFormCustomization` · `Sas_H_ListFormImport` | host | Ekran tanımlarının kendisi. Bu dosyada anlatılan bütün JSON kolonlarının canlı hâli; düzenleyicisi `/admin/listform/edit/{kod}`. | | **Developer Kit › Wizard Manager** | menü kodu `App.Listforms.WizardManager` · yetki `App.Listforms.Wizard` · `/admin/listform/wizardManager` | — | host | Wizard seed dosyalarının listesi, düzenlemesi, silinmesi, export/import'u. Sihirbazın kendisi ayrı bir rotadadır: `/admin/listform/wizard`. | @@ -1270,7 +1272,6 @@ görünürlük `checkPermission` ile bileşen içinde kurulur (`lowcode` §7.5). | `/admin/listform/wizardManager` | `listForm/wizard/WizardFileManager` | `App.Listforms.Wizard` | | `/admin/listform/edit/:listFormCode` | `listForm/edit/FormEdit` | `[]` — yetki ListForm tarafında | | `/admin/sqlQueryManager` | `developerKit/SqlQueryManager` | `App.SqlQueryManager` | -| `/admin/developerkit/dynamic-services{,/new,/edit/:id}` | `DynamicServiceManager` · `DynamicServiceEditor` | `App.DeveloperKit.DynamicServices` | | `/admin/developerkit/components{,/edit/:id}` | `ComponentManagerPage` · `ComponentCodeLayout` | `App.DeveloperKit.Components` | | `/admin/reports/:report/{view,design}/:id?/:listFormCode?` | `DevexpressReportViewer` · `DevexpressReportDesigner` | — | | `/admin/public/{home,about,services,contact}/designer` | ilgili public sayfa (tasarım modu) | `App.Home` · `App.About` · `App.Services` · `App.Contact` | @@ -1339,7 +1340,7 @@ içinde ilgili `#region` altındadır. | Onay akışı | `Sales Orders` — `WorkflowJson` (`ApprovalUserFieldName`, `ApprovalStatusFieldName`, `ApprovalDateFieldName`, `ApprovalDescriptionFieldName`) + `ListFormWorkflow` düğümleri (Start → Approval → End/End) | | Alt form (master-detail) | `Tenant → Branches`, `Sales Orders → Sales Order Item`, `Survey → Question → Option` | | KPI widget | `User` — `WidgetsJson`; sorgu `Title`, `Value`, `Color`, `SubTitle`, `Icon` kolonlarını döndürür | -| Toolbar'dan diyalog açma | `Tenant` (`TenantsConnectionString`), `Role` (`RolesPermission`), `User` (`UsersPermission`), `Audit Logs` (`AuditLogDetail`), `Notification Rule` (`CreateNotification`), `Branches` (`BranchSeed`), `Sales Orders` (`CreateTenantFromOrderDialog`) | +| Toolbar'dan diyalog açma | `Tenant` (`TenantsConnectionString`), `Role` (`RolesPermission`), `User` (`UsersPermission`), `Audit Logs` (`AuditLogDetail`), `Notification Rule` (`CreateNotification`), `Branches` (`BranchSeed`), `Sales Orders` (`CreateTenantFromOrderDialog`), `Dynamic Services` (`DynamicServiceEditor` — hem toolbar hem satır) | | Yazmayı servise devretme | `Tenant`, `Role`, `User` — `*ServiceAddress = "list-form-dynamic-api/{tenant\|role\|user}-{insert\|update}"` | | Toplam satırı | `Sales Order Item`, `Licence Item` (`TotalSummaryJson`) | | View üzerinden okuma | `Background Worker Jobs`, `Licence Item` (`SelectCommandType = View`) | diff --git a/.github/instructions/lowcode.instructions.md b/.github/instructions/lowcode.instructions.md index 0173464f..f122cff1 100644 --- a/.github/instructions/lowcode.instructions.md +++ b/.github/instructions/lowcode.instructions.md @@ -1264,6 +1264,8 @@ widget, sorgunun döndürdüğü **her satır için bir kart** çizer: ``` - `SqlQuery` **boşsa widget hiç çizilmez**; `IsActive: false` olan da çalıştırılmaz. +- `Title`/`SubTitle` kolonunun döndürdüğü **değer dil anahtarıdır**; ekran `::` öneki ekleyip + çevirir, karşılığı yoksa metni aynen basar. Sorguya düz metin değil anahtar yaz. - Tek sorguyla birden çok kart üretmek için `UNION ALL` kullan — üç durum için üç widget kaydı açmana gerek yok. - Widget sorgusu ekranın otomatik tenant/şube filtresine tabi değildir ve `@TENANTID`/`@USERID` @@ -1497,12 +1499,16 @@ Kurallar: - URL token'ları: satır butonunda `@LISTFORMCODE` ve **grid sütunu olarak tanımlı** her alan için `@FieldName`; toolbar butonunda seçili ilk satırın tüm kolonları. Sütun listesinde olmayan bir alan adı satır butonunda değiştirilmez. -- **Diyalog modu satır butonu içindir.** `@` ile başlayan parametreler satır verisinden okunur; - toolbar'da satır bağlamı olmadığı için yalnızca sabit parametrelerle çalışır. Satır butonunda - diyalog kapanınca grid otomatik yenilenir. `DialogParameters` boşsa diyalog hiç açılmaz. +- **Diyalog modunda `@` parametreleri satır butonuna aittir**: değerleri satır verisinden okunur, + toolbar'da satır bağlamı olmadığı için orada yalnızca sabit parametreler çalışır (yeni kayıt + diyalogu için `{"id":""}` gibi). **`DialogParameters` boşsa diyalog hiç açılmaz** — bu yüzden + parametresiz diyaloglarda da en az bir sabit anahtar yazılır. Her iki konumda da diyalog + kapanınca grid otomatik yenilenir. - `DialogName` **kayıtlı bir custom component adı değildir**; platformda tanımlı şu diyalogları açar: `RolesPermission`, `UsersPermission`, `TenantsConnectionString`, - `CreateTenantFromOrderDialog`, `CreateNotification`, `AuditLogDetail`, `BranchSeed`. + `CreateTenantFromOrderDialog`, `CreateNotification`, `AuditLogDetail`, `BranchSeed`, + `DynamicServiceEditor`. Kayıt yeri `views/shared/DialogContext/DialogShowComponent.tsx`'tir; + her diyalog `open` + `onDialogClose` prop'larını alır. Kendi ekranını açmak istiyorsan **Adres** modunu kullan (custom component route'u ya da `/admin/list/{ListFormCode}`). - Onay akışının kendi butonları (Onayla/Reddet) `WorkflowJson` üzerinden **otomatik** gelir; @@ -1512,6 +1518,28 @@ Tipik süreç kalıbı: `Url` modunda bir Custom Endpoint'i ya da Dynamic Servic verilir, dönüşte liste yenilenir. İş mantığı SQL/serviste kalır; ekranda yalnızca buton tanımı durur. +**Kalıp — yazma tarafı ayrı bir sayfada olan liste.** Kayıt grid'in popup formuyla değil, var +olan bir React sayfasıyla (Monaco editörü, sihirbaz, tasarımcı) düzenleniyorsa liste yine bir +ListForm'dur; üç aksiyon şöyle bağlanır: + +| Aksiyon | Nereye yazılır | +| --- | --- | +| Ekle | `EditingOptionJson`: `AllowAdding: true` + `AddDialogName` (+ sabit `AddDialogParameters`) — toolbar'ın **hazır Add butonu** grid popup'i yerine diyaloğu açar. Ayrı sayfaya gidilecekse `AddDialogName` yerine `AddPageUrl`. Her iki durumda da ayrı bir toolbar butonu **tanımlama**: hazır buton doğru konumda (ilk aksiyon) ve doğru görünümdedir, yetkisi `PermissionJson.C`'den gelir | +| Düzenle | Satır butonu (`ButtonPosition: 0`), `DialogName` + `{"id":"@Id"}`; ayrı sayfa yolunda `Url` modu (`/admin/list/{Kod}/edit/@Id`) | +| Sil | Kayıt yalnızca tablodan silinmiyorsa (assembly/dosya/dış kayıt da düşecekse) satır butonu + `OnClick` ile `UiEvalService` aksiyonu; düz tabloda `AllowDeleting` + `DeleteCommand` yeterlidir | + +`AllowUpdating`/`AllowDeleting` `false` bırakılır, böylece grid içinde ikinci bir düzenleme yolu +açılmaz; `AllowAdding` yalnızca hazır Add butonunun çizilmesi için `true`'dur ve `AddDialogName` +olduğu sürece popup form açmaz. Diyalog kapanışı listeyi yenilediği için kaydettikten sonra ayrıca bir +yenileme çağrısı gerekmez. Canlı örnek: **Dynamic Services** (`App.DeveloperKit.DynamicServices`) — +liste, KPI şeridi ve Swagger butonu ListForm'da; kod yazma `DynamicServiceEditor` diyalogunda (§9.3). + +> **Adres değişiminde veritabanı uyarısı:** `MenusData.json`'daki `Menus` ve `Routes` kayıtları +> **yalnızca yoksa** eklenir (`MenuDataSeeder`). Var olan bir menünün `Url`'ini ya da bir route'un +> `Path`'ini değiştirdiğinde kurulu veritabanları eski adreste kalır; düzeltme +> `{sql|postgres}/execute/` altında bir prosedürle (§8.3) ya da elle yapılır. Yeni kurulumda +> sorun çıkmadığı için bu adım kolayca atlanır. + ### 4.10 Wizard adım haritası — ekrandaki her adımın seed karşılığı `/admin/listform/wizard` sihirbazı (kaynak: `wizard/Wizard.tsx` + `WizardStep*.tsx`) aşağıdaki @@ -2858,7 +2886,8 @@ source'ları için de tercih edilen hedef budur. ### 9.3 Dynamic Service — çalışma zamanında derlenen C# servisi -Ekran: `/admin/developerkit/dynamic-services` (Monaco editörü). Entity: `DynamicService` +Ekran: liste `/admin/list/App.DeveloperKit.DynamicServices` (ListForm); kod editörü aynı listenin +toolbar/satır butonlarından açılan `DynamicServiceEditor` diyalogu (Monaco). Entity: `DynamicService` (`FullAuditedEntity` + `IMultiTenant`). Karar sırasının **3. adımıdır**: konfigürasyon ve SQL yetmediğinde gelir, çekirdek kod değişikliğinden önce denenir. @@ -2999,7 +3028,7 @@ bağlıdır; hiçbiri "kod yaz" adımının yerine geçmez, hepsi ondan öncedir | --- | --- | --- | --- | --- | | **SQL Query Manager** | `/admin/sqlQueryManager` | `App.SqlQueryManager` | SQL nesneleri, CRUD endpoint'ler | 9.5 | | **Custom Endpoints** | `/admin/list/App.DeveloperKit.CustomEndpoints` | `App.DeveloperKit.CustomEndpoints` | Elle yazılmış SQL'den REST endpoint | 9.2 | -| **Dynamic Services** | `/admin/developerkit/dynamic-services` | `App.DeveloperKit.DynamicServices` | Runtime derlenen C# AppService | 9.3 | +| **Dynamic Services** | `/admin/list/App.DeveloperKit.DynamicServices` | `App.DeveloperKit.DynamicServices` | Runtime derlenen C# AppService | 9.3 | | **Components** | `/admin/developerkit/components` | `App.DeveloperKit.Components` | Custom Component + Visual Designer | 7 | | **ListForm** | `/admin/list/App.Listforms.Listform` | `App.Listforms.Listform` | Var olan ekranların ham tanımı | 9.6 | | **Wizard Manager** | `/admin/listform/wizardManager` | `App.Listforms.Wizard` | Wizard seed dosyalarının yönetimi, export/import | 4, 7.7 | @@ -3358,6 +3387,7 @@ platformun hazır aksiyonları buradan çağrılır. Uydurma metot yazma; kullan | `UiEvalService.ApiGenerateBackgroundWorkers()` | Zamanlanmış iş tanımlarını yeniden üretir | — | | `UiEvalService.ApiClearRedisCache()` | Dağıtık önbelleği temizler | — | | `UiEvalService.ApiKickUser(userId, gridRef)` | Kullanıcının oturumunu düşürür, grid'i yeniler | — | +| `UiEvalService.ApiDeleteDynamicService(id, gridRef)` | Dynamic Service kaydını onay alarak siler (yüklü assembly de düşer), grid'i yeniler | `App.DeveloperKit.DynamicServices.Delete` | | `UiEvalService.ApiDbMigrate()` | Migration + seed akışını başlatır, log panelini açar | `App.Setup.Migrate` | ### 9.14 Platformun hazır gelen diğer konfigürasyon ekranları diff --git a/README.md b/README.md index 0568e4ae..7849f8c2 100644 --- a/README.md +++ b/README.md @@ -605,7 +605,7 @@ Teknik kullanıcılar için `/admin/developerkit` altında toplanan araçlar: | **SQL Query Manager** | `/admin/sqlQueryManager` | Nesne gezgini, Monaco tabanlı SQL editörü, sonuç grid'i, **tablo tasarımcısı**, **view tasarımcısı** ve **CRUD endpoint yönetimi**. | | **Custom Endpoint** | `/admin/list/App.DeveloperKit.CustomEndpoints` | SQL veya servis tanımından REST endpoint üretimi; GET/POST/PUT/DELETE için ayrı yetki kapıları (`App.DeveloperKit.CustomEndpoints.*`) ve kullanıcı/rol/global erişim kuralları. | | **CRUD Endpoint** | SQL Query Manager içinde | Tablo tanımından tam CRUD endpoint kümesi üretimi. Ayrı ekranı yoktur; bkz. aşağıdaki not. | -| **Dynamic Service** | `/admin/developerkit/dynamic-services` | C# kodunu tarayıcıda yazıp Roslyn ile derleme (`TestCompile`), yayınlama (`Publish`) ve çalışan uygulamaya controller olarak kaydetme. Yetkiler: Create/Edit/Delete/Manage/TestCompile/Publish/ViewCode. | +| **Dynamic Service** | `/admin/list/App.DeveloperKit.DynamicServices` | Liste bir ListForm ekranıdır (KPI şeridi, Swagger butonu, kart/ızgara görünümü); kod yazma listeden açılan `DynamicServiceEditor` diyalogundadır: Monaco editörü, Roslyn ile derleme (`TestCompile`), yayınlama (`Publish`) ve çalışan uygulamaya controller olarak kaydetme. Yetkiler: Create/Edit/Delete/Manage/TestCompile/Publish/ViewCode. | | **Custom Component** | `/admin/developerkit/components` | React bileşenini veritabanında saklama; `@babel/standalone` ile tarayıcıda derleyip route'a bağlama. Liste/kart görünümü, arama; yetkiler `App.DeveloperKit.Components{,.Create,.Update,.Delete}`. | | **Visual Designer** | Component editörü içinde | Sürükle-bırak kanvas ile bileşen üretimi ve kod üretimi (`visualDesigner/codeGenerator.ts`). | | **ListForm** | `/admin/list/App.Listforms.Listform` | Var olan ekranların ham tanım listesi; buradan `/admin/listform/edit/{kod}` sekmeli editörüne geçilir. | diff --git a/api/src/Sozsoft.Platform.Application.Contracts/ListForms/GridOptionsDto/GridEditingDto.cs b/api/src/Sozsoft.Platform.Application.Contracts/ListForms/GridOptionsDto/GridEditingDto.cs index 991645f0..44a0fd84 100644 --- a/api/src/Sozsoft.Platform.Application.Contracts/ListForms/GridOptionsDto/GridEditingDto.cs +++ b/api/src/Sozsoft.Platform.Application.Contracts/ListForms/GridOptionsDto/GridEditingDto.cs @@ -44,5 +44,18 @@ public class GridEditingDto /// Popup olarak açılmadan yeni kayıt ekleme işlemi yapılacaksa, yeni kaydın ekleneceği sayfanın url'si /// public string AddPageUrl { get; set; } + + /// + /// Yeni kayıt grid popup'i yerine kayıtlı bir diyalogda açılacaksa diyalogun adı + /// (CommandColumnDto.DialogName ile aynı liste). ile birlikte + /// verilirse diyalog önceliklidir. + /// + public string AddDialogName { get; set; } + + /// + /// diyaloguna geçilecek sabit parametreler (JSON nesnesi). + /// Toolbar'da satır bağlamı olmadığı için @Kolon token'i kullanılmaz. + /// + public string AddDialogParameters { get; set; } } diff --git a/api/src/Sozsoft.Platform.DbMigrator/Migrations/LanguagesData.json b/api/src/Sozsoft.Platform.DbMigrator/Migrations/LanguagesData.json index 75bd8f44..a4414d2d 100644 --- a/api/src/Sozsoft.Platform.DbMigrator/Migrations/LanguagesData.json +++ b/api/src/Sozsoft.Platform.DbMigrator/Migrations/LanguagesData.json @@ -4986,6 +4986,18 @@ "en": "Add Page Url", "tr": "Ek Sayfa Url'si" }, + { + "resourceName": "Platform", + "key": "App.ListFormEdit.EditingAddDialogName", + "en": "Add Dialog Name", + "tr": "Ekleme Diyalog Adı" + }, + { + "resourceName": "Platform", + "key": "App.ListFormEdit.EditingAddDialogParameters", + "en": "Add Dialog Parameters", + "tr": "Ekleme Diyalog Parametreleri" + }, { "resourceName": "Platform", "key": "App.ListFormEdit.EditingAllowDetail", @@ -17919,9 +17931,57 @@ { "resourceName": "Platform", "key": "App.DeveloperKitDynamicServices.TotalDescription", + "en": "Number of defined services", + "tr": "Tanımlı servislerin sayısı" + }, + { + "resourceName": "Platform", + "key": "App.DeveloperKitDynamicServices.Total", + "en": "Total", + "tr": "Toplam" + }, + { + "resourceName": "Platform", + "key": "App.DeveloperKitDynamicServices.FailedDescription", "en": "Number of failed services", "tr": "Başarısız servislerin sayısı" }, + { + "resourceName": "Platform", + "key": "App.DeveloperKit.DynamicServices.Description", + "en": "Dynamic services compiled and published at runtime", + "tr": "Çalışma zamanında derlenip yayınlanan dinamik servisler" + }, + { + "resourceName": "Platform", + "key": "App.Listform.ListformField.CompilationStatus", + "en": "Compilation Status", + "tr": "Derleme Durumu" + }, + { + "resourceName": "Platform", + "key": "App.Listform.ListformField.ControllerName", + "en": "Controller Name", + "tr": "Controller Adı" + }, + { + "resourceName": "Platform", + "key": "App.Listform.ListformField.PrimaryEntityType", + "en": "Primary Entity Type", + "tr": "Ana Entity Türü" + }, + { + "resourceName": "Platform", + "key": "App.Listform.ListformField.LastCompilationError", + "en": "Last Compilation Error", + "tr": "Son Derleme Hatası" + }, + { + "resourceName": "Platform", + "key": "App.Listform.ListformField.LastSuccessfulCompilation", + "en": "Last Successful Compilation", + "tr": "Son Başarılı Derleme" + }, { "resourceName": "Platform", "key": "App.DeveloperKitDynamicServices.ActiveDescription", @@ -17934,12 +17994,6 @@ "en": "Number of passive services", "tr": "Pasif servislerin sayısı" }, - { - "resourceName": "Platform", - "key": "App.DeveloperKitDynamicServices.SearchPlaceholder", - "en": "Search service...", - "tr": "Servis ara..." - }, { "resourceName": "Platform", "key": "App.DeveloperKitDynamicServices.FilterPending", @@ -17952,30 +18006,6 @@ "en": "New Service", "tr": "Yeni Servis" }, - { - "resourceName": "Platform", - "key": "App.DeveloperKitDynamicServices.NoServicesYet", - "en": "No services yet", - "tr": "Henüz servis yok" - }, - { - "resourceName": "Platform", - "key": "App.DeveloperKitDynamicServices.TryChangingFilter", - "en": "Try changing filter or search criteria.", - "tr": "Filtre veya arama kriterlerini değiştirmeyi deneyin." - }, - { - "resourceName": "Platform", - "key": "App.DeveloperKitDynamicServices.GetStarted", - "en": "Start by creating your first dynamic service.", - "tr": "İlk dinamik servisinizi oluşturmak için başlayın." - }, - { - "resourceName": "Platform", - "key": "App.DeveloperKitDynamicServices.CreateNewService", - "en": "Create New Service", - "tr": "Yeni Servis Oluştur" - }, { "resourceName": "Platform", "key": "App.DeveloperKitDynamicServices.DeleteConfirm", diff --git a/api/src/Sozsoft.Platform.DbMigrator/Migrations/ListFormSeeder_Saas.cs b/api/src/Sozsoft.Platform.DbMigrator/Migrations/ListFormSeeder_Saas.cs index 77b7d1eb..5ead59b3 100644 --- a/api/src/Sozsoft.Platform.DbMigrator/Migrations/ListFormSeeder_Saas.cs +++ b/api/src/Sozsoft.Platform.DbMigrator/Migrations/ListFormSeeder_Saas.cs @@ -1,11335 +1,12249 @@ -using System; -using System.Collections.Generic; -using System.Data; -using System.Text.Json; -using System.Threading.Tasks; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Localization; -using Sozsoft.Languages.Languages; -using Sozsoft.Platform.Editors; -using Sozsoft.Platform.Entities; -using Sozsoft.Platform.Enums; -using Sozsoft.Platform.ListForms; -using Sozsoft.Platform.Localization; -using Sozsoft.Platform.Queries; -using Volo.Abp.Data; -using Volo.Abp.DependencyInjection; -using Volo.Abp.Domain.Repositories; -using Volo.Abp.TenantManagement; -using static Sozsoft.Platform.PlatformConsts; -using static Sozsoft.Platform.PlatformSeeder.ListFormSeeder_DefaultJsons; -using AppCodes = Sozsoft.Platform.Data.Seeds.SeedConsts.AppCodes; - -namespace Sozsoft.Platform.Data.Seeds; - -public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency -{ - private readonly IRepository _listFormRepository; - private readonly IRepository _listFormFieldRepository; - private readonly IRepository _listFormWorkflowRepository; - private readonly IConfiguration _configuration; - protected IStringLocalizer _localizer { get; } - - public ListFormSeeder_Saas( - IRepository listFormRepository, - IRepository listFormFieldRepository, - IRepository listFormWorkflowRepository, - IConfiguration configuration, - IStringLocalizer localizer - ) - { - _listFormRepository = listFormRepository; - _listFormFieldRepository = listFormFieldRepository; - _listFormWorkflowRepository = listFormWorkflowRepository; - _configuration = configuration; - _localizer = localizer; - } - - public async Task SeedAsync(DataSeedContext context) - { - var configurationSection = _configuration.GetSection("OpenIddict:Applications"); - var swaggerRootUrl = configurationSection["Platform_Swagger:RootUrl"]?.TrimEnd('/'); - var utils = new ListFormSeeder_Utils(_listFormRepository, _listFormFieldRepository); - var listFormName = String.Empty; - - #region Tenant - listFormName = TenantManagementPermissions.Tenants.Default; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = true, - LayoutJson = DefaultLayoutJson("todo"), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = "AbpTenants", - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, TenantManagementPermissions.Tenants.Delete, TenantManagementPermissions.Tenants.Default + ".Export", TenantManagementPermissions.Tenants.Default + ".Import", TenantManagementPermissions.Tenants.Default + ".Note"), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(TenantManagementPermissions.Tenants.Default, 950, 750, true, true, true, true, false, true), - EditingFormJson = JsonSerializer.Serialize(new List() - { - new() { Order=1, ColCount=4, ColSpan=1, ItemType="group" }, - }), - CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { - new() { - Hint = "Seed", - Text = "Seed", - AuthName = TenantManagementPermissions.Tenants.ManageConnectionStrings, - DialogName = "TenantsConnectionString", - DialogParameters = JsonSerializer.Serialize(new { name = "@Name", id = "@Id" }), - IsVisible = true, - }, - }), - InsertServiceAddress = "list-form-dynamic-api/tenant-insert", - UpdateServiceAddress = "list-form-dynamic-api/tenant-update", - DeleteCommand = "DELETE FROM \"AbpTenants\" WHERE \"Id\"=@Id", - DeleteFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "Id", FieldDbType = DbType.Guid, Value = "@ID", CustomValueType = FieldCustomValueTypeEnum.CustomKey } - }), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "Country", FieldDbType = DbType.String, Value = "Türkiye", CustomValueType = FieldCustomValueTypeEnum.Value } - }), - SubFormsJson = JsonSerializer.Serialize(new List() { - new { - TabType = ListFormTabTypeEnum.List, - TabTitle = AppCodes.Branches, - Code = AppCodes.Branches, - Relation = new List() { - new { - ParentFieldName = "Id", - DbType = DbType.Guid, - ChildFieldName = "TenantId" - } - } - }} - ) - }, autoSave: true - ); - - #region Tenants Fields - await _listFormFieldRepository.InsertManyAsync([ - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "OrganizationName", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 4, - CaptionName = "App.Listform.ListformField.OrganizationName", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Founder", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Founder", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int64, - FieldName = "VknTckn", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.VknTckn", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "TaxOffice", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.TaxOffice", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Country", - EditGroupOrderNo = 1, - EditOrderNo = 13, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Country", - Width = 0, - ListOrderNo = 7, - Visible = true, - IsActive = true, - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.CountryValues, - CascadeEmptyFields = "City,District,Township" - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "City", - EditGroupOrderNo = 1, - EditOrderNo = 14, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.City", - Width = 0, - ListOrderNo = 8, - Visible = true, - IsActive = true, - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.CityValues, - CascadeRelationField = "Country", - CascadeFilterOperator="=", - CascadeParentFields = "Country", - CascadeEmptyFields = "District,Township" - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "District", - EditGroupOrderNo = 1, - EditOrderNo = 15, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.District", - Width = 0, - ListOrderNo = 9, - Visible = true, - IsActive = true, - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.DistrictValues, - CascadeRelationField = "City", - CascadeFilterOperator="=", - CascadeParentFields = "Country,City", - CascadeEmptyFields = "Township", - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Township", - EditGroupOrderNo = 1, - EditOrderNo = 16, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - EditorScript = EditorScript.Copy("Group", "PostalCode").OnChange(), - CaptionName = "App.Listform.ListformField.Township", - Width = 0, - ListOrderNo = 10, - Visible = true, - IsActive = true, - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.TownshipValues, - CascadeRelationField = "District", - CascadeFilterOperator="=", - CascadeParentFields = "Country,City,District" - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Address1", - EditGroupOrderNo = 1, - EditOrderNo = 18, - EditorType2 = EditorTypes.dxTextArea, - ColSpan = 4, - CaptionName = "App.Listform.ListformField.Address1", - Width = 0, - ListOrderNo = 11, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Address2", - EditGroupOrderNo = 1, - EditOrderNo = 19, - EditorType2 = EditorTypes.dxTextArea, - ColSpan = 4, - CaptionName = "App.Listform.ListformField.Address2", - Width = 0, - ListOrderNo = 12, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "PostalCode", - EditGroupOrderNo = 1, - EditOrderNo = 17, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.PostalCode", - Width = 0, - ListOrderNo = 13, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Email", - EditGroupOrderNo = 1, - EditOrderNo = 10, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Email", - Width = 0, - ListOrderNo = 14, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleEmailRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Website", - EditGroupOrderNo = 1, - EditOrderNo = 11, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Website", - Width = 0, - ListOrderNo = 15, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "PhoneNumber", - EditGroupOrderNo = 1, - EditOrderNo = 7, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - EditorOptions = EditorOptions.Phone(), - CaptionName = "Abp.Identity.User.UserInformation.PhoneNumber", - Width = 0, - ListOrderNo = 16, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "MobileNumber", - EditGroupOrderNo = 1, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - EditorOptions = EditorOptions.Phone(), - CaptionName = "App.Listform.ListformField.MobileNumber", - Width = 0, - ListOrderNo = 17, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int64, - FieldName = "FaxNumber", - EditGroupOrderNo = 1, - EditOrderNo = 8, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - EditorOptions = EditorOptions.Phone(), - CaptionName = "App.Listform.ListformField.FaxNumber", - Width = 0, - ListOrderNo = 18, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsActive", - EditGroupOrderNo = 1, - EditOrderNo = 12, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsActive", - Width = 0, - ListOrderNo = 19, - Visible = true, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Modules", - EditGroupOrderNo = 1, - EditOrderNo = 9, - EditorType2 = EditorTypes.dxTagBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Modules", - Width = 0, - ListOrderNo = 20, - Visible = true, - IsActive = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.ModuleValues, - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), - PivotSettingsJson = DefaultPivotSettingsJson - }, - ], autoSave: true); - #endregion - } - #endregion - - #region Branches - listFormName = AppCodes.Branches; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = true, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Branch)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 950, 750, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List() - { - new() { Order=1, ColCount=3, ColSpan=1, ItemType="group" }, - new() { Order=2, ColCount=3, ColSpan=1, ItemType="group" }, - }), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Branch)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "Country", FieldDbType = DbType.String, Value = "Türkiye", CustomValueType = FieldCustomValueTypeEnum.Value } - }), - CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { - new() { - Hint = "Seed", - Text = "Seed", - AuthName = listFormName + ".Update", - DialogName = "BranchSeed", - DialogParameters = JsonSerializer.Serialize( new { id = "@Id", name = "@Name"} ), - IsVisible = true, - }, - }), - }, autoSave: true - ); - - #region Branches Fields - await _listFormFieldRepository.InsertManyAsync([ - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 0, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "TenantId", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 3, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.TenantId", - Width = 0, - ListOrderNo = 1, - Visible = true, - IsActive = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.TenantValues(), - }), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Code", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Platform.Code", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - AllowSearch = true, - - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int64, - FieldName = "VknTckn", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.VknTckn", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "TaxOffice", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.TaxOffice", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Country", - EditGroupOrderNo = 2, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Country", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.CountryValues, - CascadeEmptyFields = "City,District,Township" - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "City", - EditGroupOrderNo = 2, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.City", - Width = 0, - ListOrderNo = 7, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.CityValues, - CascadeRelationField = "Country", - CascadeFilterOperator="=", - CascadeParentFields = "Country", - CascadeEmptyFields = "District,Township" - }), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "District", - EditGroupOrderNo = 2, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.District", - Width = 0, - ListOrderNo = 8, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.DistrictValues, - CascadeRelationField = "City", - CascadeFilterOperator="=", - CascadeParentFields = "Country,City", - CascadeEmptyFields = "Township", - }), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Township", - EditGroupOrderNo = 2, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Township", - Width = 0, - ListOrderNo = 9, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.TownshipValues, - CascadeRelationField = "District", - CascadeFilterOperator="=", - CascadeParentFields = "Country,City,District" - }), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Address1", - EditGroupOrderNo = 2, - EditOrderNo = 7, - EditorType2 = EditorTypes.dxTextArea, - ColSpan = 3, - CaptionName = "App.Listform.ListformField.Address1", - Width = 0, - ListOrderNo = 10, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Address2", - EditGroupOrderNo = 2, - EditOrderNo = 8, - EditorType2 = EditorTypes.dxTextArea, - ColSpan = 3, - CaptionName = "App.Listform.ListformField.Address2", - Width = 0, - ListOrderNo = 11, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "PostalCode", - EditGroupOrderNo = 1, - EditOrderNo = 9, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.PostalCode", - Width = 0, - ListOrderNo = 12, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Email", - EditGroupOrderNo = 2, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Email", - Width = 0, - ListOrderNo = 13, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleEmailRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Website", - EditGroupOrderNo = 2, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Website", - Width = 0, - ListOrderNo = 14, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "PhoneNumber", - EditGroupOrderNo = 1, - EditOrderNo = 7, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - EditorOptions = EditorOptions.Phone(), - CaptionName = "Abp.Identity.User.UserInformation.PhoneNumber", - Width = 0, - ListOrderNo = 15, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "MobileNumber", - EditGroupOrderNo = 1, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - EditorOptions = EditorOptions.Phone(), - CaptionName = "App.Listform.ListformField.MobileNumber", - Width = 0, - ListOrderNo = 16, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int64, - FieldName = "FaxNumber", - EditGroupOrderNo = 1, - EditOrderNo = 8, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - EditorOptions = EditorOptions.Phone(), - CaptionName = "App.Listform.ListformField.FaxNumber", - Width = 0, - ListOrderNo = 17, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsActive", - EditGroupOrderNo = 1, - EditOrderNo = 10, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsActive", - Width = 0, - ListOrderNo = 18, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - ], autoSave: true); - #endregion - } - #endregion - - #region Global Search - listFormName = AppCodes.Definitions.GlobalSearch; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = true, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.GlobalSearch)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Int32, - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - PagerOptionJson = DefaultPagerOptionJson, - InsertFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "Id", FieldDbType = DbType.Guid, Value = "@NEWID", CustomValueType = FieldCustomValueTypeEnum.CustomKey } - }), - DeleteCommand = $"DELETE FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.GlobalSearch))}\" WHERE \"Id\"=@Id", - DeleteFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "Id", FieldDbType = DbType.Int32, Value = "@ID", CustomValueType = FieldCustomValueTypeEnum.CustomKey } - }), - EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 450, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List() - { - new() { Order=1, ColCount=1, ColSpan=1, ItemType="group" }, - }), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "System", FieldDbType = DbType.String, Value = "Platform", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "Weight", FieldDbType = DbType.Single, Value = "1.0", CustomValueType = FieldCustomValueTypeEnum.Value }, - }) - } - ); - - #region Global Search Fields - await _listFormFieldRepository.InsertManyAsync( - [ - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "System", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.System", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Group", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Group", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Term", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Term", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.LanguageKeyValues - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Url", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Sender.Rocket.Url", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Single, - FieldName = "Weight", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - EditorOptions = EditorOptions.Number(), - CaptionName = "App.Listform.ListformField.Weight", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - ]); - #endregion - } - #endregion - - #region AiBot - listFormName = AppCodes.Definitions.AiBot; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.AiBot)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - PagerOptionJson = DefaultPagerOptionJson, - DeleteCommand = $"DELETE FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.AiBot))}\" WHERE \"Id\"=@Id", - DeleteFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "Id", FieldDbType = DbType.Guid, Value = "@ID", CustomValueType = FieldCustomValueTypeEnum.CustomKey } - }), - InsertFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "Id", FieldDbType = DbType.Guid, Value = "@NEWID", CustomValueType = FieldCustomValueTypeEnum.CustomKey } - }), - EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 650, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List() - { - new() { Order=1, ColCount=2, ColSpan=1, ItemType="group" }, - }), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] - { - new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value } - }) - } - ); - - #region AiBot Fields - await _listFormFieldRepository.InsertManyAsync( - [ - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsActive", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsActive", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "ApiUrl", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 2, - CaptionName = "App.Listform.ListformField.ApiUrl", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Description", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxHtmlEditor, - ColSpan = 2, - EditorOptions = EditorOptions.Html(), - CaptionName = "App.Listform.ListformField.Description", - Width = 0, - ListOrderNo = 5, - Visible = false, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Tenants", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxTagBox, - ColSpan = 2, - CaptionName = "App.Listform.ListformField.Tenants", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.TenantValues(true), - }), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - ]); - #endregion - } - #endregion - - #region ContactTitle - listFormName = AppCodes.Definitions.ContactTitle; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.ContactTitle)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.ContactTitle)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 400, 400, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { - Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, - }), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - }); - - #region ContactTitle Fields - await _listFormFieldRepository.InsertManyAsync([ - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Title", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Title", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Abbreviation", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Abbreviation", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - } - ]); - #endregion - } - #endregion - - #region Currency - listFormName = AppCodes.Definitions.Currency; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Currency)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.String, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Currency)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(DbType.String, "Name"), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 450, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { - Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, - }), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] - { - new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value } - }) - }); - - #region Currency Fields - await _listFormFieldRepository.InsertManyAsync([ - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Symbol", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Symbol", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = false, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Decimal, - FieldName = "Rate", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Rate", - Alignment = "right", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - - AllowSearch = false, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - EditorOptions=EditorOptions.Number() - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsActive", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsActive", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - - AllowSearch = false, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - } - ]); - #endregion - } - #endregion - - #region CountryGroup - listFormName = AppCodes.Definitions.CountryGroup; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.CountryGroup)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.String, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.CountryGroup)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(DbType.String, "Name"), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 400, 200, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { - Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, - }), - }); - - #region CountryGroup Fields - await _listFormFieldRepository.InsertManyAsync([ - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - } - ]); - #endregion - } - #endregion - - #region Country - listFormName = AppCodes.Definitions.Country; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Country)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.String, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Country)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(DbType.String, "Name"), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 600, 550, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { - Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, - }), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "Currency", FieldDbType = DbType.String, Value = "TRY", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "ZipRequired", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "StateRequired", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value } - }) - }); - - #region Country Fields - await _listFormFieldRepository.InsertManyAsync([ - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "GroupName", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.GroupName", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - - AllowSearch = false, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.CountryGroup), "Name", "Name"), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Currency", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Currency", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - - AllowSearch = false, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Currency), "Id", "Name"), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "PhoneCode", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.PhoneCode", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - - AllowSearch = false, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "PhoneNumberMinLength", - EditGroupOrderNo = 1, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.PhoneNumberMinLength", - Width = 0, - ListOrderNo = 7, - Visible = true, - IsActive = true, - - AllowSearch = false, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "PhoneNumberMaxLength", - EditGroupOrderNo = 1, - EditOrderNo = 7, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.PhoneNumberMaxLength", - Width = 0, - ListOrderNo = 8, - Visible = true, - IsActive = true, - - AllowSearch = false, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "PhoneNumberFormat", - EditGroupOrderNo = 1, - EditOrderNo = 8, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.PhoneNumberFormat", - Width = 0, - ListOrderNo = 9, - Visible = true, - IsActive = true, - - AllowSearch = false, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "TaxLabel", - EditGroupOrderNo = 1, - EditOrderNo = 9, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.TaxLabel", - Width = 0, - ListOrderNo = 10, - Visible = true, - IsActive = true, - - AllowSearch = false, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "ZipRequired", - EditGroupOrderNo = 1, - EditOrderNo = 10, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.ZipRequired", - Width = 0, - ListOrderNo = 11, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "StateRequired", - EditGroupOrderNo = 1, - EditOrderNo = 11, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.StateRequired", - Width = 0, - ListOrderNo = 12, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - } - ]); - #endregion - - } - #endregion - - #region City - listFormName = AppCodes.Definitions.City; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.City)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.City)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 350, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { - Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, - }), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "Country", FieldDbType = DbType.String, Value = "Türkiye", CustomValueType = FieldCustomValueTypeEnum.Value } - }) - }); - - #region City Fields - await _listFormFieldRepository.InsertManyAsync([ - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Country", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Country", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - AllowSearch = false, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.CountryValues - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "PlateCode", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.PlateCode", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - - AllowSearch = false, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - ]); - #endregion - } - #endregion - - #region District - listFormName = AppCodes.Definitions.District; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.District)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.District)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 450, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { - Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, - }), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "Country", FieldDbType = DbType.String, Value = "Türkiye", CustomValueType = FieldCustomValueTypeEnum.Value } - }) - }); - - #region City Fields - await _listFormFieldRepository.InsertManyAsync([ - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Country", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Country", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.CountryValues, - CascadeEmptyFields = "City" - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "City", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.City", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.CityValues, - CascadeRelationField = "Country", - CascadeFilterOperator="=", - CascadeParentFields = "Country" - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Township", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Township", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - - AllowSearch = false, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "PostalCode", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.PostalCode", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - - AllowSearch = false, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - ]); - #endregion - } - #endregion - - #region UomCategory - listFormName = AppCodes.Definitions.UomCategory; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = true, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.UomCategory)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.String, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.UomCategory)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 400, 200, true, true, true, false, false, true), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { - Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, - }), - SubFormsJson = JsonSerializer.Serialize(new List() { - new { - TabType = ListFormTabTypeEnum.List, - TabTitle = AppCodes.Definitions.Uom, - Code = AppCodes.Definitions.Uom, - Relation = new List() { - new { - ParentFieldName = "Id", - DbType = DbType.String, - ChildFieldName = "UomCategoryId" - } - } - }, - }) - }, autoSave: true); - - #region UomCategory Fields - await _listFormFieldRepository.InsertManyAsync([ - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - } - ], autoSave: true); - #endregion - } - #endregion - - #region Uom - listFormName = AppCodes.Definitions.Uom; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = true, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Uom)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.String, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Uom)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(DbType.String, "Name"), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 600, 500, true, true, true, false, false), - EditingFormJson = JsonSerializer.Serialize(new List() { - new() { - Order=1, ColCount=1, ColSpan=1, ItemType="group" }, - }), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value } - }), - }, autoSave: true - ); - - #region Uom Fields - await _listFormFieldRepository.InsertManyAsync([ - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - SortIndex = 1, - SortDirection = GridColumnOptions.SortOrderAsc, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Type", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Type", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key="Reference", Name="App.StaticLookup.Reference" }, - new () { Key="SmallerThanReference", Name="App.StaticLookup.SmallerThanReference" }, - new () { Key="BiggerThanReference", Name="App.StaticLookup.BiggerThanReference" }, - }), - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Decimal, - FieldName = "Ratio", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Ratio", - Alignment = "right", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - EditorOptions=EditorOptions.Number() - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Decimal, - FieldName = "Rounding", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Rounding", - Alignment = "right", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - EditorOptions=EditorOptions.Number() - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsActive", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsActive", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "UomCategoryId", - CaptionName = "App.Listform.ListformField.UomCategoryId", - Width = 0, - ListOrderNo = 7, - Visible = false, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - ], autoSave: true); - #endregion - } - #endregion - - #region Sequence - listFormName = AppCodes.Definitions.Sequence; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Sequence)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Sequence)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 700, 500, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { - Order = 1, ColCount = 2, ColSpan = 1, ItemType = "group" }, - }), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "PaddingSize", FieldDbType = DbType.Int16, Value = "5", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "IncrementStep", FieldDbType = DbType.Int16, Value = "1", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "StartNumber", FieldDbType = DbType.Int16, Value = "1", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "FormatTemplate", FieldDbType = DbType.String, Value = "{Prefix}{Number}{Suffix}", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "ResetPeriod", FieldDbType = DbType.Int16, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, - }), - }); - - #region Sequence Fields - await _listFormFieldRepository.InsertManyAsync([ - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - SortIndex = 1, - SortDirection = GridColumnOptions.SortOrderAsc, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Prefix", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Prefix", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Suffix", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Suffix", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsActive", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsActive", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - Alignment = "center", - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "PaddingSize", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.PaddingSize", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "IncrementStep", - EditGroupOrderNo = 1, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IncrementStep", - Width = 0, - ListOrderNo = 7, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "NextNumber", - CaptionName = "App.Listform.ListformField.NextNumber", - Width = 0, - ListOrderNo = 8, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "ResetPeriod", - EditGroupOrderNo = 1, - EditOrderNo = 7, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.ResetPeriod", - Width = 0, - ListOrderNo = 9, - Visible = true, - IsActive = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new() { Key=0, Name="App.StaticLookup.None" }, - new() { Key=1, Name="App.StaticLookup.Yearly"}, - new() { Key=2, Name="App.StaticLookup.Monthly"}, - new() { Key=3, Name="App.StaticLookup.Daily"}, - new() { Key=4, Name="App.StaticLookup.Hourly"}, - new() { Key=5, Name="App.StaticLookup.Minutely"}, - }), - }), - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "StartNumber", - EditGroupOrderNo = 1, - EditOrderNo = 8, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.StartNumber", - Width = 0, - ListOrderNo = 10, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "LastPeriodKey", - CaptionName = "App.Listform.ListformField.LastPeriodKey", - Width = 0, - ListOrderNo = 11, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "FormatTemplate", - EditGroupOrderNo = 1, - EditOrderNo = 9, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 2, - CaptionName = "App.Listform.ListformField.FormatTemplate", - Width = 0, - ListOrderNo = 12, - Visible = true, - IsActive = true, - PlaceHolder="{Prefix}-{yyyy}{MM}{dd}-{Number}-{Suffix}", - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - ]); - #endregion - } - #endregion - - #region SkillType - listFormName = AppCodes.Definitions.SkillType; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = true, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.SkillType)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.String, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.SkillType)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(DbType.String), - PagerOptionJson = DefaultPagerOptionJson, - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(DbType.String, "Name"), - EditingOptionJson = DefaultEditingOptionJson(listFormName, 400, 200, true, true, true, true, false, true), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { - Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, - }), - SubFormsJson = JsonSerializer.Serialize(new List() { - new { - TabType = ListFormTabTypeEnum.List, - TabTitle = AppCodes.Definitions.SkillLevel, - Code = AppCodes.Definitions.SkillLevel, - Relation = new List() { - new { - ParentFieldName = "Id", - DbType = DbType.String, - ChildFieldName = "SkillTypeId" - } - } - }, - new { - TabType = ListFormTabTypeEnum.List, - TabTitle = AppCodes.Definitions.Skill, - Code = AppCodes.Definitions.Skill, - Relation = new List() { - new { - ParentFieldName = "Id", - DbType = DbType.String, - ChildFieldName = "SkillTypeId" - } - } - } - }) - }, autoSave: true); - - #region SkillType Fields - await _listFormFieldRepository.InsertManyAsync([ - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - } - ], autoSave: true); - #endregion - } - #endregion - - #region Skill Level - listFormName = AppCodes.Definitions.SkillLevel; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = true, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.SkillLevel)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.String, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.SkillLevel)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(DbType.String), - PagerOptionJson = DefaultPagerOptionJson, - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(DbType.String, "Name"), - EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 450, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List() { - new() { Order=1, ColCount=1, ColSpan=1, ItemType="group" }, - }), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "IsDefault", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value } - }), - }, autoSave: true - ); - - #region Skill Level Fields - await _listFormFieldRepository.InsertManyAsync([ - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - SortIndex = 0, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - SortIndex = 1, - SortDirection = GridColumnOptions.SortOrderAsc, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "Progress", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxSlider, - ColSpan = 1, - EditorOptions = EditorOptions.Slider(), - CaptionName = "App.Listform.ListformField.Progress", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsDefault", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "Abp.Mailing.Default", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "SkillTypeId", - CaptionName = "App.Listform.ListformField.SkillTypeId", - Width = 0, - ListOrderNo = 5, - Visible = false, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - ], autoSave: true); - #endregion - } - #endregion - - #region Skill - listFormName = AppCodes.Definitions.Skill; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = true, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Skill)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.String, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Skill)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(DbType.String), - PagerOptionJson = DefaultPagerOptionJson, - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(DbType.String, "Name"), - EditingOptionJson = DefaultEditingOptionJson(AppCodes.Definitions.SkillLevel, 500, 250, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List() { - new() { Order=1, ColCount=1, ColSpan=1, ItemType="group" }, - }), - }, autoSave: true - ); - - #region Skill Fields - await _listFormFieldRepository.InsertManyAsync([ - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - SortIndex = 0, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - SortIndex = 1, - SortDirection = GridColumnOptions.SortOrderAsc, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "SkillTypeId", - CaptionName = "App.Listform.ListformField.SkillTypeId", - Width = 0, - ListOrderNo = 3, - Visible = false, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - ], autoSave: true); - #endregion - } - #endregion - - #region SettingDefinition - listFormName = AppCodes.SettingDefinitions; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.SettingDefinition)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = $"UPDATE \"{FullNameTable(TableNameEnum.SettingDefinition)}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 800, 600, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List() { - new() { Order=1, ColCount=2, ColSpan=1, ItemType="group" }, - }), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "IsVisibleToClients", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "IsInherited", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "IsEncrypted", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, - }), - } - ); - - #region SettingDefinition Fields - await _listFormFieldRepository.InsertManyAsync([ - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Code", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Platform.Code", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - - SortIndex = 1, - SortDirection = GridColumnOptions.SortOrderAsc, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "MainGroupKey", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxAutocomplete, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.MainGroupKey", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - AllowSearch = false, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.LanguageKeyValues - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - GroupingJson = DefaultGroupingJson(1) - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "SubGroupKey", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxAutocomplete, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.SubGroupKey", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = false, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.LanguageKeyValues - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - GroupingJson = DefaultGroupingJson(2) - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "Order", - EditGroupOrderNo = 1, - EditOrderNo = 14, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Order", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "NameKey", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxAutocomplete, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.NameKey", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - - AllowSearch = false, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.LanguageKeyValues - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "DescriptionKey", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxAutocomplete, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.DescriptionKey", - Width = 0, - ListOrderNo = 7, - Visible = true, - IsActive = true, - - AllowSearch = false, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.LanguageKeyValues - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "RequiredPermissionName", - EditGroupOrderNo = 1, - EditOrderNo = 11, - EditorType2 = EditorTypes.dxAutocomplete, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.RequiredPermissionName", - Width = 0, - ListOrderNo = 8, - Visible = true, - IsActive = true, - - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.PermissionNameValues - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Providers", - EditGroupOrderNo = 1, - EditOrderNo = 8, - EditorType2 = EditorTypes.dxTagBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Providers", - Width = 0, - ListOrderNo = 9, - Visible = true, - IsActive = true, - - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new() { Key="U", Name="App.Platform.User" }, - new() { Key="T", Name="App.StaticLookup.Tenant"}, - new() { Key="G", Name="App.StaticLookup.Global"}, - new() { Key="C", Name="App.StaticLookup.Configuration"}, - new() { Key="D", Name="Abp.Mailing.Default"}, - }), - }), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "DefaultValue", - EditGroupOrderNo = 1, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.DefaultValue", - Width = 0, - ListOrderNo = 10, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "DataType", - EditGroupOrderNo = 1, - EditOrderNo = 12, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.DataType", - Width = 0, - ListOrderNo = 11, - Visible = true, - IsActive = true, - - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new() { Key="Bool", Name="App.StaticLookup.Boolean" }, - new() { Key="Number", Name="App.StaticLookup.Number"}, - new() { Key="Text", Name="App.Listform.ListformField.Text"}, - new() { Key="Memo", Name="App.StaticLookup.Memo"}, - new() { Key="List", Name="App.StaticLookup.List"}, - }) - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "SelectOptions", - EditGroupOrderNo = 1, - EditOrderNo = 13, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.SelectOptions", - Width = 0, - ListOrderNo = 12, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsVisibleToClients", - EditGroupOrderNo = 1, - EditOrderNo = 7, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsVisibleToClients", - Width = 0, - ListOrderNo = 13, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsInherited", - EditGroupOrderNo = 1, - EditOrderNo = 9, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsInherited", - Width = 0, - ListOrderNo = 14, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsEncrypted", - EditGroupOrderNo = 1, - EditOrderNo = 10, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsEncrypted", - Width = 0, - ListOrderNo = 15, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - ]); - #endregion - } - #endregion - - #region Language - listFormName = AppCodes.Languages.Language; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = true, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Language)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - PagerOptionJson = DefaultPagerOptionJson, - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - EditingOptionJson = DefaultEditingOptionJson(listFormName, 600, 450, true, true, true, true, false, true), - EditingFormJson = JsonSerializer.Serialize(new List() { - new() { - Order=1, ColCount=2, ColSpan=1, ItemType="group" }, - }), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "IsEnabled", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value } - }), - SubFormsJson = JsonSerializer.Serialize(new List() { - new { - TabType = ListFormTabTypeEnum.List, - TabTitle = AppCodes.Languages.LanguageText, - Code = AppCodes.Languages.LanguageText, - Relation = new List() { - new { - ParentFieldName = "CultureName", - DbType = DbType.String, - ChildFieldName = "CultureName" - } - } - } - }) - }, autoSave: true - ); - - #region Language Fields - await _listFormFieldRepository.InsertManyAsync([ - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - SortIndex = 0, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "CultureName", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.CultureName", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - SortIndex = 1, - SortDirection = GridColumnOptions.SortOrderAsc, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "UiCultureName", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.UiCultureName", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "DisplayName", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.DisplayName", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsEnabled", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsEnabled", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - ], autoSave: true); - #endregion - } - #endregion - - #region LanguageText - listFormName = AppCodes.Languages.LanguageText; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = true, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.LanguageText)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 600, 400, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List() { - new() { Order=1, ColCount=1, ColSpan=1, ItemType="group" },}), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { - new() { - ButtonPosition= UiCommandButtonPositionTypeEnum.Toolbar, - Hint = "App.ListForm.ClearRedisCache", - Text = "App.ListForm.ClearRedisCache", - AuthName = listFormName, - OnClick = "UiEvalService.ApiClearRedisCache();", - IsVisible = true, - Icon="home" - }, - }), - }, autoSave: true - ); - - #region LanguageText Fields - await _listFormFieldRepository.InsertManyAsync([ - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - SortIndex = 0, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "CultureName", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.CultureName", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - AllowSearch = true, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Language), "CultureName", "DisplayName"), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "ResourceName", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.ResourceName", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new() { Key="AbpAccount",Name="App.StaticLookup.AbpAccount" }, - new() { Key="Platform",Name="App.StaticLookup.Platform" }, - }), - }), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Key", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxAutocomplete, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Key", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - - AllowSearch = false, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.LanguageKeyValues - }), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Value", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Value", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - ], autoSave: true); - - #endregion - } - #endregion - - #region Data Source - listFormName = AppCodes.DataSource; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.DataSource)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = $"UPDATE \"{FullNameTable(TableNameEnum.DataSource)}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 600, 500, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List() { - new() { Order=1, ColCount=1, ColSpan=1, ItemType="group" }, - }), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - } - ); - - #region Data Source Fields - await _listFormFieldRepository.InsertManyAsync([ - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Code", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Platform.Code", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - SortIndex = 1, - SortDirection = GridColumnOptions.SortOrderAsc, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "DataSourceType", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.DataSourceType", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new() { Key = 1, Name = "App.StaticLookup.Mssql" }, - new() { Key = 2, Name = "App.StaticLookup.Postgresql" }, - }), - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "ConnectionString", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxTextArea, - ColSpan = 1, - EditorOptions = EditorOptions.Multiline(200), - CaptionName = "App.Listform.ListformField.ConnectionString", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - ]); - #endregion - } - #endregion - - #region ListForm - listFormName = AppCodes.Listforms.Listform; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.ListForm)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - SortMode = GridOptions.SortModeMultiple, - FilterRowJson = JsonSerializer.Serialize(new GridFilterRowDto { Visible = true, ApplyFilter = GridOptions.FilterRowApplyFilterAuto }), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 950, 650, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List() { - new() { Order=1, ColCount=3, ColSpan=1, ItemType="group" }, - new() { Order=2, ColCount=3, ColSpan=1, ItemType="group" }, - new() { Order=3, ColCount=2, ColSpan=1, ItemType="group" }, - }), - InsertFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] - { - new() { FieldName = "Id", FieldDbType = DbType.Guid, Value = "@NEWID", CustomValueType = FieldCustomValueTypeEnum.CustomKey } - }), - CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { - new() { - Hint = "App.Platform.Manage2", - Text ="App.Platform.Manage2", - UrlTarget = "_blank", - AuthName = listFormName + ".Update", - Url = "/admin/listform/edit/@ListFormCode", - IsVisible = true, - }, - new() { - Hint = "App.Platform.Show", - Text = "App.Platform.Show", - UrlTarget = "_blank", - AuthName = listFormName, - Url = "/admin/list/@ListFormCode", - IsVisible = true, - } - }), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "CultureName", FieldDbType = DbType.String, Value = "en", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "DataSourceCode", FieldDbType = DbType.String, Value = "Default", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "SelectCommandType", FieldDbType = DbType.Int32, Value = ((int)SelectCommandTypeEnum.Table).ToString(), CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "KeyFieldName", FieldDbType = DbType.String, Value = "Id", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "KeyFieldDbSourceType", FieldDbType = DbType.Int32, Value = ((int)DbType.Guid).ToString(), CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "ListFormType", FieldDbType = DbType.String, Value = ListFormTypeEnum.List, CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "InsertServiceAddress", FieldDbType = DbType.String, Value = "list-form-data/insert", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "DeleteServiceAddress", FieldDbType = DbType.String, Value = "list-form-data/delete", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "UpdateServiceAddress", FieldDbType = DbType.String, Value = "list-form-data/update", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "IsDisabled", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "IsTenant", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "IsBranch", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "IsOrganizationUnit", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "IsSubForm", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "ShowNote", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "SortMode", FieldDbType = DbType.String, Value = GridOptions.SortModeNone, CustomValueType = FieldCustomValueTypeEnum.Value }, - }), - } - ); - - #region ListForms Fields - await _listFormFieldRepository.InsertManyAsync( - [ - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "CultureName", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.CultureName", - Width = 0, - ListOrderNo = 1, - Visible = true, - IsActive = true, - - AllowSearch = true, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Language), "CultureName", "DisplayName"), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - EditorScript = EditorScript.Build( - EditorScript.SetValue("ListFormCode", "{Name}").OnChange(), - EditorScript.SetValue("Title", "{Name}").OnChange(), - EditorScript.SetValue("Description", "{Name}").OnChange() - ) - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "ListFormCode", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.ListFormCode", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - SortIndex = 1, - SortDirection = GridColumnOptions.SortOrderAsc, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "ListFormType", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.ListFormType", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - - LookupJson = JsonSerializer.Serialize(new LookupDto{ - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new() { Key = ListFormTypeEnum.Form, Name = "App.StaticLookup.Form" }, - new() { Key = ListFormTypeEnum.List, Name = "App.StaticLookup.List" }, - }), - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "DataSourceCode", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.DataSourceCode", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.DataSource), "Code", "Code"), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "SelectCommandType", - EditGroupOrderNo = 1, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.SelectCommandType", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new() { Key = SelectCommandTypeEnum.Table, Name="App.StaticLookup.Table" }, - new() { Key = SelectCommandTypeEnum.View, Name="App.StaticLookup.View" }, - new() { Key = SelectCommandTypeEnum.TableValuedFunction, Name="App.StaticLookup.TableValuedFunction" }, - new() { Key = SelectCommandTypeEnum.Query, Name="App.StaticLookup.Query" }, - new() { Key = SelectCommandTypeEnum.StoredProcedure, Name="App.StaticLookup.StoredProcedure" }, - }), - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "SelectCommand", - EditGroupOrderNo = 1, - EditOrderNo = 7, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.SelectCommand", - Width = 0, - ListOrderNo = 7, - Visible = true, - IsActive = true, - - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "TableName", - EditGroupOrderNo = 1, - EditOrderNo = 8, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.TableName", - Width = 0, - ListOrderNo = 8, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "KeyFieldName", - EditGroupOrderNo = 1, - EditOrderNo = 9, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.KeyFieldName", - Width = 0, - ListOrderNo = 9, - Visible = true, - IsActive = true, - - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "KeyFieldDbSourceType", - EditGroupOrderNo = 1, - EditOrderNo = 10, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.KeyFieldDbSourceType", - Width = 0, - ListOrderNo = 10, - Visible = true, - IsActive = true, - - ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new() { Key = DbType.AnsiString, Name="App.StaticLookup.AnsiString" }, - new() { Key = DbType.Binary, Name="App.StaticLookup.Binary" }, - new() { Key = DbType.Byte, Name="App.StaticLookup.Byte" }, - new() { Key = DbType.Boolean, Name="App.StaticLookup.Boolean" }, - new() { Key = DbType.Currency, Name="App.Listform.ListformField.Currency" }, - new() { Key = DbType.Date, Name="App.Listform.ListformField.Date" }, - new() { Key = DbType.DateTime, Name="App.StaticLookup.DateTime" }, - new() { Key = DbType.Decimal, Name="App.StaticLookup.Decimal" }, - new() { Key = DbType.Double, Name="App.StaticLookup.Double" }, - new() { Key = DbType.Guid, Name="App.StaticLookup.Guid" }, - new() { Key = DbType.Int16, Name="App.StaticLookup.Int16" }, - new() { Key = DbType.Int32, Name="App.StaticLookup.Int32" }, - new() { Key = DbType.Int64, Name="App.StaticLookup.Int64" }, - new() { Key = DbType.Object, Name="App.StaticLookup.Object" }, - new() { Key = DbType.SByte, Name="App.StaticLookup.SByte" }, - new() { Key = DbType.Single, Name="App.StaticLookup.Single" }, - new() { Key = DbType.String, Name="App.StaticLookup.String" }, - new() { Key = DbType.Time, Name="App.StaticLookup.Time" }, - new() { Key = DbType.UInt16, Name="App.StaticLookup.UInt16" }, - new() { Key = DbType.UInt32, Name="App.StaticLookup.UInt32" }, - new() { Key = DbType.UInt64, Name="App.StaticLookup.UInt64" }, - new() { Key = DbType.VarNumeric, Name="App.StaticLookup.VarNumeric" }, - new() { Key = DbType.AnsiStringFixedLength, Name="App.StaticLookup.AnsiStringFixedLength" }, - new() { Key = DbType.StringFixedLength, Name="App.StaticLookup.StringFixedLength" }, - new() { Key = DbType.Xml, Name="App.StaticLookup.Xml" }, - new() { Key = DbType.DateTime2, Name="App.StaticLookup.DateTime2" }, - new() { Key = DbType.DateTimeOffset, Name="App.StaticLookup.DateTimeOffset" }, - }), - }), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Title", - EditGroupOrderNo = 1, - EditOrderNo = 11, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Title", - Width = 0, - ListOrderNo = 11, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Description", - EditGroupOrderNo = 1, - EditOrderNo = 12, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Description", - Width = 0, - ListOrderNo = 12, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "SortMode", - EditGroupOrderNo = 1, - EditOrderNo = 13, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.SortMode", - Width = 0, - ListOrderNo = 13, - Visible = true, - IsActive = true, - - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new() { Key=GridOptions.SortModeNone, Name="App.StaticLookup.None" }, - new() { Key=GridOptions.SortModeSingle, Name="App.StaticLookup.SortSingle" }, - new() { Key=GridOptions.SortModeMultiple, Name="App.StaticLookup.SortMultiple" }, - }), - }), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsTenant", - EditGroupOrderNo = 1, - EditOrderNo = 14, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsTenant", - Width = 0, - ListOrderNo = 14, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsBranch", - EditGroupOrderNo = 1, - EditOrderNo = 15, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsBranch", - Width = 0, - ListOrderNo = 15, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsOrganizationUnit", - EditGroupOrderNo = 1, - EditOrderNo = 16, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsOrganizationUnit", - Width = 0, - ListOrderNo = 16, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsSubForm", - EditGroupOrderNo = 1, - EditOrderNo = 17, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsSubForm", - Width = 0, - ListOrderNo = 17, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "ShowNote", - EditGroupOrderNo = 1, - EditOrderNo = 18, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.ShowNote", - Width = 0, - ListOrderNo = 18, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "PermissionJson", - CaptionName = "App.Listform.ListformField.PermissionJson", - Width = 0, - ListOrderNo = 19, - Visible = false, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "DeleteServiceAddress", - EditGroupOrderNo = 2, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.DeleteServiceAddress", - Width = 0, - ListOrderNo = 20, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "InsertServiceAddress", - EditGroupOrderNo = 2, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.InsertServiceAddress", - Width = 0, - ListOrderNo = 21, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "UpdateServiceAddress", - EditGroupOrderNo = 2, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.UpdateServiceAddress", - Width = 0, - ListOrderNo = 22, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "PermissionJson:C", - CaptionName = "PermissionJson:C", - EditGroupOrderNo = 3, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - Visible = false, - IsActive = false, - ListOrderNo = 23, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "PermissionJson:R", - CaptionName = "PermissionJson:R", - EditGroupOrderNo = 3, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - Visible = false, - IsActive = false, - ListOrderNo = 24, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "PermissionJson:U", - CaptionName = "PermissionJson:U", - EditGroupOrderNo = 3, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - Visible = false, - IsActive = false, - ListOrderNo = 25, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "PermissionJson:D", - CaptionName = "PermissionJson:D", - EditGroupOrderNo = 3, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - Visible = false, - IsActive = false, - ListOrderNo = 26, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - ]); - #endregion - } - #endregion - - #region Notification Type - listFormName = AppCodes.Notifications.NotificationTypes; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.NotificationType)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.NotificationType)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 400, 200, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { - Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, - }), - }); - - #region Notification Type Fields - await _listFormFieldRepository.InsertManyAsync([ - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - } - ]); - #endregion - } - #endregion - - #region Notification Rule - listFormName = AppCodes.Notifications.NotificationRules; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.NotificationRule)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = $"UPDATE \"{FullNameTable(TableNameEnum.NotificationRule)}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 550, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List() { - new() { Order=1, ColCount=1, ColSpan=1, ItemType="group" }, - new() { Order=2, ColCount=1, ColSpan=1, ItemType="group" }, - }), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "IsFixed", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "IsCustomized", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value } - }), - CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { - new CommandColumnDto() { - Hint = "Create", - Text = "Create", - AuthName = listFormName, - DialogName = "CreateNotification", - DialogParameters = JsonSerializer.Serialize(new { name = "id", id = "@Id" }), - IsVisible = true, - }, - }), - } - ); - - #region Notification Rule Fields - await _listFormFieldRepository.InsertManyAsync([ - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "NotificationTypeId", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.NotificationTypeId", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - AllowSearch = true, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.NotificationType), "Id", "Name"), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "RecipientType", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.RecipientType", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key="All", Name="App.StaticLookup.All" }, - new () { Key="User", Name="App.Platform.User" }, - new () { Key="Role", Name="App.StaticLookup.Role" }, - new () { Key="OrganizationUnit", Name="App.Listform.ListformField.IsOrganizationUnit" }, - new () { Key="Custom", Name="App.StaticLookup.Custom" }, - }), - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "RecipientId", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.RecipientId", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Channel", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Channel", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key="Sms", Name="App.Sender.Sms" }, - new () { Key="Mail", Name="App.StaticLookup.Mail" }, - new () { Key="WhatsApp", Name="App.Sender.WhatsApp" }, - new () { Key="Telegram", Name="App.Sender.Telegram" }, - new () { Key="Rocket", Name="App.StaticLookup.Rocket" }, - new () { Key="UiActivity", Name="App.StaticLookup.UiActivity" }, - new () { Key="UiToast", Name="App.StaticLookup.UiToast" }, - new () { Key="Desktop", Name="App.StaticLookup.Desktop" }, - }), - }), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsActive", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsActive", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsFixed", - EditGroupOrderNo = 1, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsFixed", - Width = 0, - ListOrderNo = 7, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsCustomized", - EditGroupOrderNo = 1, - EditOrderNo = 7, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsCustomized", - Width = 0, - ListOrderNo = 8, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Options:MailType", - CaptionName = "Options:MailType", - EditGroupOrderNo = 2, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - Visible = false, - IsActive = false, - ListOrderNo = 9, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Options:MailSubject", - CaptionName = "Options:MailSubject", - EditGroupOrderNo = 2, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - Visible = false, - IsActive = false, - ListOrderNo = 10, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Options:MailTemplate", - CaptionName = "Options:MailTemplate", - EditGroupOrderNo = 2, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxHtmlEditor, - ColSpan = 2, - EditorOptions = EditorOptions.Html(), - Visible = false, - IsActive = false, - ListOrderNo = 11, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Options:TableName", - CaptionName = "Options:TableName", - EditGroupOrderNo = 2, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 2, - Visible = false, - IsActive = false, - ListOrderNo = 12, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - ]); - #endregion - } - #endregion - - #region Notification - listFormName = AppCodes.Notifications.Notification; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Notification)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = $"UPDATE \"{FullNameTable(TableNameEnum.Notification)}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 500, false, false, false, false, false, false), - } - ); - - #region Notification Fields - await _listFormFieldRepository.InsertManyAsync([ - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "NotificationChannel", - CaptionName = "App.Listform.ListformField.NotificationChannel", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key="Sms", Name="App.Sender.Sms" }, - new () { Key="Mail", Name="App.StaticLookup.Mail" }, - new () { Key="Rocket", Name="App.StaticLookup.Rocket" }, - new () { Key="Desktop", Name="App.StaticLookup.Desktop" }, - new () { Key="UiActivity", Name="App.StaticLookup.UiActivity" }, - new () { Key="UiToast", Name="App.StaticLookup.UiToast" }, - new () { Key="WhatsApp", Name="App.Sender.WhatsApp" }, - new () { Key="Telegram", Name="App.Sender.Telegram" }, - }), - }), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "NotificationTypeId", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.NotificationTypeId", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - AllowSearch = true, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.NotificationType), "Id", "Name"), - - // LookupJson = JsonSerializer.Serialize(new LookupDto { - // DataSourceType = UiLookupDataSourceTypeEnum.WebService, - // DisplayExpr = "Name", - // ValueExpr = "Key", - // LookupQuery = "GET;notification-rule/notification-types;{};a;a;null", - // }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Identifier", - CaptionName = "App.Listform.ListformField.Identifier", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.NotificationIdentityValues - }), - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Message", - CaptionName = "App.Listform.ListformField.Message", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsSent", - CaptionName = "App.Listform.ListformField.IsSent", - Width = 0, - ListOrderNo = 7, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsRead", - CaptionName = "App.Listform.ListformField.IsRead", - Width = 0, - ListOrderNo = 8, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.DateTime, - FieldName = "ReadTime", - CaptionName = "App.Listform.ListformField.ReadTime", - Width = 0, - ListOrderNo = 9, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - ]); - #endregion - } - #endregion - - #region Background Worker Recurring Jobs - listFormName = AppCodes.BackgroundWorkers.RecurringJobs; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.BackgroundWorker)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { - new() { - ButtonPosition= UiCommandButtonPositionTypeEnum.Toolbar, - Hint = "App.Platform.HangfireLogin", - Text = "App.Platform.HangfireLogin", - AuthName=listFormName, - Url= swaggerRootUrl + "/Account/Login", - Icon = "login", - IsVisible = true, - }, - new() { - ButtonPosition= UiCommandButtonPositionTypeEnum.Toolbar, - Hint = "App.Platform.HangfireOpen", - Text = "App.Platform.HangfireOpen", - AuthName=listFormName, - Url= swaggerRootUrl + "/hangfire", - Icon = "runner", - IsVisible = true, - }, - new() { - ButtonPosition= UiCommandButtonPositionTypeEnum.Toolbar, - Hint = "App.Platform.HangfireRefresh", - Text = "App.Platform.HangfireRefresh", - AuthName=listFormName, - OnClick="UiEvalService.ApiGenerateBackgroundWorkers();", - Icon = "refresh", - IsVisible = true, - }, - }), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = $"UPDATE \"{FullNameTable(TableNameEnum.BackgroundWorker)}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 800, 700, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List() { - new() { Order=1, ColCount=2, ColSpan=1, ItemType="group" }, - new() { Order=2, ColCount=2, ColSpan=1, ItemType="group" }, - }), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value } - }) - } - ); - - #region Background Worker Fields - await _listFormFieldRepository.InsertManyAsync([ - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - SortIndex = 1, - SortDirection = GridColumnOptions.SortOrderAsc, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Cron", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Cron", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "WorkerType", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.WorkerType", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new() { Key=1, Name="App.StaticLookup.MailQueueWorker" }, - new() { Key=2, Name="App.StaticLookup.SqlWorker" }, - new() { Key=3, Name="App.StaticLookup.NotificationWorker" }, - new() { Key=4, Name="App.StaticLookup.SessionCleanupWorker" }, - new() { Key=5, Name="App.StaticLookup.BackupWorker" }, - }), - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "BeforeSp", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.BeforeSp", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "AfterSp", - EditGroupOrderNo = 1, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.AfterSp", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Options", - CaptionName = "App.Listform.ListformField.Options", - Width = 0, - ListOrderNo = 7, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsActive", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsActive", - Width = 0, - ListOrderNo = 8, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - ]); - #endregion - } - #endregion - - #region Background Worker Jobs - listFormName = AppCodes.BackgroundWorkers.Jobs; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.View, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.BackgroundWorker_JobFlow)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - PagerOptionJson = DefaultPagerOptionJson - } - ); - - #region Background Worker Job Flow Fields - await _listFormFieldRepository.InsertManyAsync([ - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "JobName", - CaptionName = "App.Listform.ListformField.JobName", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - SortIndex = 1, - SortDirection = GridColumnOptions.SortOrderAsc, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.DateTime, - FieldName = "ExecutionDate", - CaptionName = "App.Listform.ListformField.ExecutionDate", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "Duration", - CaptionName = "App.Listform.ListformField.Duration", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Status", - CaptionName = "App.Listform.ListformField.Status", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "FailureReason", - CaptionName = "App.Listform.ListformField.FailureReason", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "ExceptionType", - CaptionName = "App.Listform.ListformField.ExceptionType", - Width = 0, - ListOrderNo = 7, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "ExceptionDetails", - CaptionName = "App.Listform.ListformField.ExceptionDetails", - Width = 0, - ListOrderNo = 8, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - ]); - #endregion - } - #endregion - - #region Route - listFormName = AppCodes.Menus.Routes; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Route)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = $"UPDATE \"{FullNameTable(TableNameEnum.Route)}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 600, 550, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { - Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, - }), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "RouteType", FieldDbType = DbType.String, Value = "public", CustomValueType = FieldCustomValueTypeEnum.Value } - }) - }); - - #region Route Fields - await _listFormFieldRepository.InsertManyAsync([ - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Key", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Key", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Path", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Path", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "ComponentType", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.ComponentType", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - - AllowSearch = false, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key="normal",Name="App.StaticLookup.Normal" }, - // new () { Key="dynamic",Name="App.StaticLookup.Dynamic" }, - }), - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "ComponentPath", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.ComponentPath", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "RouteType", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.RouteType", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - - AllowSearch = false, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key="public",Name="App.Listform.ListformField.IsPublic" }, - new () { Key="protected",Name="App.StaticLookup.Protected" }, - new () { Key="authenticated",Name="App.StaticLookup.Authenticated" }, - }), - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Authority", - EditGroupOrderNo = 1, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Authority", - Width = 0, - ListOrderNo = 7, - Visible = true, - IsActive = true, - - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.PermissionNameValues, - }), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - } - ]); - #endregion - } - #endregion - - #region Module - listFormName = AppCodes.Menus.Module; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Module)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.String, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 250, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, - }) - }); - - #region Module Fields - await _listFormFieldRepository.InsertManyAsync([ - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Id", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = true, - IsActive = true, - - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - ]); - #endregion - } - #endregion - - #region Menu - listFormName = AppCodes.Menus.Menu; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson("tree"), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Menu)), - KeyFieldName = "Code", - KeyFieldDbSourceType = DbType.String, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - PagerOptionJson = DefaultPagerOptionJson, - TreeOptionJson = DefaultTreeOptionJson("Code", "ParentCode", true), - EditingOptionJson = DefaultEditingOptionJson(listFormName, 800, 550, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List() { - new() { Order=1, ColCount=2, ColSpan=1, ItemType="group" }, - }), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(DbType.String, "Code"), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "IsDisabled", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value } - }) - } - ); - - #region Menu Fields - await _listFormFieldRepository.InsertManyAsync([ - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Code", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Platform.Code", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - SortIndex = 1, - SortDirection = GridColumnOptions.SortOrderAsc, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "DisplayName", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxAutocomplete, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.DisplayName", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = false, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.LanguageKeyValues - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "Order", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Order", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Url", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Path", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.RouteKeyValues - }), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Icon", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Icon", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "ParentCode", - EditGroupOrderNo = 1, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.ParentCode", - Width = 0, - ListOrderNo = 7, - Visible = true, - IsActive = true, - - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.MenuCodeValues - }), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "CssClass", - EditGroupOrderNo = 1, - EditOrderNo = 7, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.CssClass", - Width = 0, - ListOrderNo = 9, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "RequiredPermissionName", - EditGroupOrderNo = 1, - EditOrderNo = 8, - EditorType2 = EditorTypes.dxAutocomplete, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.RequiredPermissionName", - Width = 0, - ListOrderNo = 8, - Visible = true, - IsActive = true, - - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.PermissionNameValues - }), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Target", - EditGroupOrderNo = 1, - EditOrderNo = 9, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Target", - Width = 0, - ListOrderNo = 10, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsDisabled", - EditGroupOrderNo = 1, - EditOrderNo = 10, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsDisabled", - Width = 0, - ListOrderNo = 11, - Visible = true, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "ElementId", - EditGroupOrderNo = 1, - EditOrderNo = 11, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.ElementId", - Width = 0, - ListOrderNo = 12, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "ModuleId", - EditGroupOrderNo = 1, - EditOrderNo = 12, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.ModuleId", - Width = 0, - ListOrderNo = 13, - Visible = true, - IsActive = true, - - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.ModuleValues, - }), - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - ]); - - #endregion - } - #endregion - - #region Custom Endpoint - listFormName = AppCodes.DeveloperKits.CustomEndpoints; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.CustomEndpoint)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = $"UPDATE \"{FullNameTable(TableNameEnum.CustomEndpoint)}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 900, 700, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List() { - new() { Order=1, ColCount=2, ColSpan=1, ItemType="group" }, - }), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { - new() { - ButtonPosition= UiCommandButtonPositionTypeEnum.Toolbar, - Hint = "Swagger", - Text = "Swagger", - AuthName = listFormName, - Url= swaggerRootUrl + "/swagger/index.html", - Icon = "doc", - IsVisible = true - }, - }), - } - ); - - #region Custom Endpoint Fields - await _listFormFieldRepository.InsertManyAsync([ - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Description", - EditGroupOrderNo = 1, - EditOrderNo = 8, - EditorType2 = EditorTypes.dxTextArea, - ColSpan = 2, - EditorOptions = EditorOptions.Multiline(100), - CaptionName = "App.Listform.ListformField.Description", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Url", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Sender.Rocket.Url", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Method", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Method", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - - SortIndex = 1, - SortDirection = GridColumnOptions.SortOrderAsc, - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key="GET", Name="App.StaticLookup.Get" }, - new () { Key="POST", Name="App.StaticLookup.Post" }, - new () { Key="PUT", Name="App.StaticLookup.Put" }, - new () { Key="DELETE", Name="App.StaticLookup.Delete" }, - }), - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "DataSourceCode", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.DataSourceCode", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.DataSource), "Code", "Code"), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Sql", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxTextArea, - ColSpan = 2, - EditorOptions = EditorOptions.Multiline(60), - CaptionName = "App.Listform.ListformField.Sql", - Width = 0, - ListOrderNo = 7, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "ParametersJson", - EditGroupOrderNo = 1, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxTextArea, - ColSpan = 2, - EditorOptions = EditorOptions.Multiline(60), - CaptionName = "App.Listform.ListformField.ParametersJson", - Width = 0, - ListOrderNo = 8, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "PermissionsJson", - EditGroupOrderNo = 1, - EditOrderNo = 7, - EditorType2 = EditorTypes.dxTextArea, - ColSpan = 2, - EditorOptions = EditorOptions.Multiline(60), - CaptionName = "App.Listform.ListformField.PermissionsJson", - Width = 0, - ListOrderNo = 9, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - ]); - #endregion - } - #endregion - - #region Products - listFormName = AppCodes.Orders.Products; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Product)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Product)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 700, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, - }), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "VatRate", FieldDbType = DbType.Decimal, Value = "0.20", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "IsQuantityBased", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value } - }) - }); - - #region Product Fields - await _listFormFieldRepository.InsertManyAsync([ - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxAutocomplete, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - AllowSearch = false, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.LanguageKeyValues - }), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Description", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxAutocomplete, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Description", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = false, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.LanguageKeyValues - }), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Category", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Category", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key="App.ProductsCategories.Uyelik",Name="App.ProductsCategories.Uyelik" }, - new () { Key="App.ProductsCategories.Lisans",Name="App.ProductsCategories.Lisans" }, - new () { Key="App.ProductsCategories.EkHizmetler",Name="App.ProductsCategories.EkHizmetler" }, - }), - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "Order", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Order", - Alignment = "center", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - EditorOptions=EditorOptions.Number() - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Decimal, - FieldName = "MonthlyPrice", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - EditorOptions = EditorOptions.Number(), - CaptionName = "App.Listform.ListformField.MonthlyPrice", - Alignment = "right", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Decimal, - FieldName = "YearlyPrice", - EditGroupOrderNo = 1, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - EditorOptions = EditorOptions.Number(), - CaptionName = "App.Listform.ListformField.YearlyPrice", - Alignment = "right", - Width = 0, - ListOrderNo = 7, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Decimal, - FieldName = "VatRate", - EditGroupOrderNo = 1, - EditOrderNo = 7, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - EditorOptions = EditorOptions.Number(), - CaptionName = "App.Listform.ListformField.VatRate", - Alignment = "right", - Width = 0, - ListOrderNo = 8, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsQuantityBased", - EditGroupOrderNo = 1, - EditOrderNo = 8, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsQuantityBased", - Width = 0, - ListOrderNo = 9, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "ImageUrl", - EditGroupOrderNo = 1, - EditOrderNo = 9, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.ImageUrl", - Width = 0, - ListOrderNo = 10, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - ]); - #endregion - } - #endregion - - #region PaymentMethods - listFormName = AppCodes.Orders.PaymentMethods; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.PaymentMethod)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.String, - SortMode = GridOptions.SortModeSingle, - DefaultFilter = DefaultFilterJson, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 350, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, - }), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.PaymentMethod)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(DbType.String, "Name"), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "Commission", FieldDbType = DbType.Decimal, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value } - }), - }); - - #region PaymentMethod Fields - await _listFormFieldRepository.InsertManyAsync([ - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Decimal, - FieldName = "Commission", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - EditorOptions = EditorOptions.Number(), - CaptionName = "App.Listform.ListformField.Commission", - Alignment = "right", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Logo", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Logo", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - ]); - #endregion - } - #endregion - - #region InstallmentOptions - listFormName = AppCodes.Orders.InstallmentOptions; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.InstallmentOption)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - SortMode = GridOptions.SortModeSingle, - DefaultFilter = DefaultFilterJson, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 350, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, - }), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.InstallmentOption)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "Commission", FieldDbType = DbType.Decimal, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value } - }), - }); - - #region PaymentMethod Fields - await _listFormFieldRepository.InsertManyAsync([ - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Installment", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Installment", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Decimal, - FieldName = "Commission", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - EditorOptions = EditorOptions.Number(), - CaptionName = "App.Listform.ListformField.Commission", - Alignment = "right", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - ]); - #endregion - } - #endregion - - #region Sales Orders - listFormName = AppCodes.Orders.SalesOrders; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = true, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Order)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Order)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 1200, 700, true, true, true, true, false, true), - CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { - new() { - Hint = "Tenant", - Text = "Tenant", - AuthName = TenantManagementPermissions.Tenants.Create, - DialogName = "CreateTenantFromOrderDialog", - DialogParameters = JsonSerializer.Serialize(new { - orderId = "@Id" - }), - IsVisible = true, - VisibleExpression = "(e) => !e.row?.data?.TenantId && e.row?.data?.ApprovalStatus === 'Approved'", - }, - }), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { Order=1, ColCount=4, ColSpan=1, ItemType="group" }, - new() { Order=2, ColCount=4, ColSpan=1, ItemType="group" }, - }), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "Country", FieldDbType = DbType.String, Value = "Türkiye", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "BillingCycle", FieldDbType = DbType.String, Value = "yearly", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "Period", FieldDbType = DbType.Int32, Value = "1", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "IsExisting", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "VatTotal", FieldDbType = DbType.Decimal, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "Commission", FieldDbType = DbType.Decimal, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value } - }), - SubFormsJson = JsonSerializer.Serialize(new List() { - new { - TabType = ListFormTabTypeEnum.List, - TabTitle = AppCodes.Orders.SalesOrderItem, - Code = AppCodes.Orders.SalesOrderItem, - Relation = new List() { - new { - ParentFieldName = "Id", - DbType = DbType.Guid, - ChildFieldName = "OrderId" - } - } - }, - }), - WorkflowJson = JsonSerializer.Serialize(new WorkflowDto - { - ApprovalUserFieldName = "ApprovalUserName", - ApprovalStatusFieldName = "ApprovalStatus", - ApprovalDateFieldName = "ApprovalDate", - ApprovalDescriptionFieldName = "ApprovalDescription", - Criteria = [] - }), - }, autoSave: true); - - #region Sales Order Workflow - await _listFormWorkflowRepository.InsertManyAsync([ - new ListFormWorkflow($"{listFormName}-N001") { ListFormCode = listFormName, Kind = "Start", Title = "İş Akışı Başlat1", CompareColumn="Price", CompareOperator=">", CompareValue=5000, Approver= "", NextOnStart = $"{listFormName}-N002", NextOnTrue = "", NextOnFalse = "", NextOnApprove= "", NextOnReject = "", PositionX = 47, PositionY = 76 }, - new ListFormWorkflow($"{listFormName}-N002") { ListFormCode = listFormName, Kind = "Approval", Title = "Onay1", CompareColumn="Price", CompareOperator=">", CompareValue=5000, Approver = "system@sozsoft.com", NextOnStart = "", NextOnTrue = "", NextOnFalse = "", NextOnApprove = $"{listFormName}-N003", NextOnReject = $"{listFormName}-N004", PositionX = 391, PositionY = 76 }, - new ListFormWorkflow($"{listFormName}-N003") { ListFormCode = listFormName, Kind = "End", Title = "Approved", CompareColumn="Price", CompareOperator=">", CompareValue=5000, Approver= "", NextOnStart = "", NextOnTrue = "", NextOnFalse = "", NextOnApprove = "", NextOnReject = "", PositionX = 843, PositionY = 61 }, - new ListFormWorkflow($"{listFormName}-N004") { ListFormCode = listFormName, Kind = "End", Title = "Rejected", CompareColumn="Price", CompareOperator=">", CompareValue=5000, Approver= "", NextOnStart = "", NextOnTrue = "", NextOnFalse = "", NextOnApprove = "", NextOnReject = "", PositionX = 845, PositionY = 263 }, - ]); - #endregion - - #region Sales Order Fields - await _listFormFieldRepository.InsertManyAsync([ - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "TenantId", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.TenantId", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.TenantValues(), - }), - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "OrganizationName", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.OrganizationName", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Founder", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Founder", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsExisting", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsExisting", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "BillingCycle", - EditGroupOrderNo = 2, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.BillingCycle", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key="yearly", Name="App.StaticLookup.Yearly" }, - new () { Key="monthly", Name="App.StaticLookup.Monthly" }, - }), - }), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "Period", - EditGroupOrderNo = 2, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Period", - Width = 0, - ListOrderNo = 7, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.DateTime, - FieldName = "LicenseStartTime", - EditGroupOrderNo = 2, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxDateBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.LicenseStartTime", - Width = 0, - ListOrderNo = 8, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.DateTime, - FieldName = "LicenseEndTime", - EditGroupOrderNo = 2, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxDateBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.LicenseEndTime", - Width = 0, - ListOrderNo = 9, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int64, - FieldName = "VknTckn", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.VknTckn", - Width = 0, - ListOrderNo = 10, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "TaxOffice", - EditGroupOrderNo = 1, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.TaxOffice", - Width = 0, - ListOrderNo = 11, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Address1", - EditGroupOrderNo = 1, - EditOrderNo = 7, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Address1", - Width = 0, - ListOrderNo = 12, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Address2", - EditGroupOrderNo = 1, - EditOrderNo = 8, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Address2", - Width = 0, - ListOrderNo = 13, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Country", - EditGroupOrderNo = 1, - EditOrderNo = 9, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Country", - Width = 0, - ListOrderNo = 14, - Visible = true, - IsActive = true, - - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.CountryValues, - CascadeEmptyFields = "City,District" - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "City", - EditGroupOrderNo = 1, - EditOrderNo = 10, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.City", - Width = 0, - ListOrderNo = 15, - Visible = true, - IsActive = true, - - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.CityValues, - CascadeRelationField = "Country", - CascadeFilterOperator="=", - CascadeParentFields = "Country", - CascadeEmptyFields = "District" - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "District", - EditGroupOrderNo = 1, - EditOrderNo = 11, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.District", - Width = 0, - ListOrderNo = 16, - Visible = true, - IsActive = true, - - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.DistrictValues, - CascadeRelationField = "City", - CascadeFilterOperator="=", - CascadeParentFields = "Country,City", - CascadeEmptyFields = "Township" - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Township", - EditGroupOrderNo = 1, - EditOrderNo = 12, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - EditorScript = EditorScript.Copy("Group", "PostalCode").OnChange(), - CaptionName = "App.Listform.ListformField.Township", - Width = 0, - ListOrderNo = 17, - Visible = true, - IsActive = true, - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.TownshipValues, - CascadeRelationField = "District", - CascadeFilterOperator="=", - CascadeParentFields = "Country,City,District" - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "PhoneNumber", - EditGroupOrderNo = 1, - EditOrderNo = 14, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - EditorOptions = EditorOptions.Phone(), - CaptionName = "Abp.Identity.User.UserInformation.PhoneNumber", - Width = 0, - ListOrderNo = 18, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "MobileNumber", - EditGroupOrderNo = 1, - EditOrderNo = 15, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - EditorOptions = EditorOptions.Phone(), - CaptionName = "App.Listform.ListformField.MobileNumber", - Width = 0, - ListOrderNo = 19, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int64, - FieldName = "FaxNumber", - EditGroupOrderNo = 1, - EditOrderNo = 16, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - EditorOptions = EditorOptions.Phone(), - CaptionName = "App.Listform.ListformField.FaxNumber", - Width = 0, - ListOrderNo = 20, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Website", - EditGroupOrderNo = 2, - EditOrderNo = 8, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Website", - Width = 0, - ListOrderNo = 21, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Decimal, - FieldName = "Subtotal", - EditGroupOrderNo = 2, - EditOrderNo = 9, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - EditorOptions = EditorOptions.Number(), - CaptionName = "App.Listform.ListformField.Subtotal", - Alignment = "right", - Width = 0, - ListOrderNo = 22, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Decimal, - FieldName = "VatTotal", - EditGroupOrderNo = 2, - EditOrderNo = 10, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - EditorOptions = EditorOptions.Number(), - CaptionName = "App.Listform.ListformField.VatTotal", - Alignment = "right", - Width = 0, - ListOrderNo = 23, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Decimal, - FieldName = "Commission", - EditGroupOrderNo = 2, - EditOrderNo = 11, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - EditorOptions = EditorOptions.Number(), - CaptionName = "App.Listform.ListformField.Commission", - Alignment = "right", - Width = 0, - ListOrderNo = 24, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Decimal, - FieldName = "Total", - EditGroupOrderNo = 2, - EditOrderNo = 12, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - EditorOptions = EditorOptions.Number(), - CaptionName = "App.Listform.ListformField.Total", - Alignment = "right", - Width = 0, - ListOrderNo = 25, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "PaymentMethodId", - EditGroupOrderNo = 2, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.PaymentMethodId", - Width = 0, - ListOrderNo = 26, - Visible = true, - IsActive = true, - - AllowSearch = true, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.PaymentMethod), "Id", "Name"), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "Installment", - EditGroupOrderNo = 2, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Installment", - Width = 0, - ListOrderNo = 27, - Visible = true, - IsActive = true, - - AllowSearch = true, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.InstallmentOption), "Installment", "Name"), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsActive", - CaptionName = "App.Listform.ListformField.IsActive", - Width = 0, - ListOrderNo = 28, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - AllowAdding = false, - AllowEditing = false, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "PostalCode", - EditGroupOrderNo = 1, - EditOrderNo = 13, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.PostalCode", - Width = 0, - ListOrderNo = 29, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Email", - EditGroupOrderNo = 2, - EditOrderNo = 7, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Email", - Width = 0, - ListOrderNo = 30, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleEmailRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "ApprovalUserName", - CaptionName = "App.Listform.ListformField.ApprovalUserName", - Width = 0, - ListOrderNo = 31, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "ApprovalStatus", - CaptionName = "App.Listform.ListformField.ApprovalStatus", - Width = 0, - ListOrderNo = 32, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.DateTime, - FieldName = "ApprovalDate", - CaptionName = "App.Listform.ListformField.ApprovalDate", - Width = 0, - ListOrderNo = 33, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "ApprovalDescription", - CaptionName = "App.Listform.ListformField.ApprovalDescription", - Width = 0, - ListOrderNo = 34, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - } - ]); - #endregion - } - #endregion - - #region Sales Order Item - listFormName = AppCodes.Orders.SalesOrderItem; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = true, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.OrderItem)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.OrderItem)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 600, 450, true, true, true, false, false), - EditingFormJson = JsonSerializer.Serialize(new List() { - new() { - Order=1, ColCount=1, ColSpan=1, ItemType="group" }, - }), - }, autoSave: true - ); - - #region Sales Order Item Fields - await _listFormFieldRepository.InsertManyAsync([ - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - SortIndex = 0, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "ProductId", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.ProductId", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.ProductValues, - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "BillingCycle", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.BillingCycle", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key="yearly", Name="App.StaticLookup.Yearly" }, - new () { Key="monthly", Name="App.StaticLookup.Monthly" }, - }), - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "Quantity", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Quantity", - Alignment = "right", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - EditorOptions=EditorOptions.Number() - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Decimal, - FieldName = "Price", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Price", - Alignment = "right", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - EditorOptions=EditorOptions.Number() - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "Period", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Period", - Alignment = "right", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - EditorOptions=EditorOptions.Number() - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Decimal, - FieldName = "VatRate", - EditGroupOrderNo = 1, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.VatRate", - Alignment = "right", - Width = 0, - ListOrderNo = 7, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - EditorOptions=EditorOptions.Number() - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Decimal, - FieldName = "VatAmount", - EditGroupOrderNo = 1, - EditOrderNo = 7, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.VatAmount", - Alignment = "right", - Width = 0, - ListOrderNo = 8, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - EditorOptions = EditorOptions.Number(), - TotalSummaryJson = DefaultColumnTotalSummaryJson("VatAmount") - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Decimal, - FieldName = "TotalPrice", - EditGroupOrderNo = 1, - EditOrderNo = 8, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.TotalPrice", - Alignment = "right", - Width = 0, - ListOrderNo = 9, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - EditorOptions=EditorOptions.Number(), - TotalSummaryJson = DefaultColumnTotalSummaryJson("TotalPrice") - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "OrderId", - CaptionName = "App.Listform.ListformField.OrderId", - Width = 0, - ListOrderNo = 10, - Visible = false, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - } - ], autoSave: true); - #endregion - } - #endregion - - #region ForumCategory - listFormName = AppCodes.ForumManagement.Categories; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = true, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.ForumCategory)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.ForumCategory)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 600, 550, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, - }), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "IsLocked", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "DisplayOrder", FieldDbType = DbType.Int32, Value = "1", CustomValueType = FieldCustomValueTypeEnum.Value } - }) - }); - - #region ForumCategory Fields - await _listFormFieldRepository.InsertManyAsync([ - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Slug", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Slug", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Description", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxTextArea, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Description", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Icon", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Icon", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "DisplayOrder", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.DisplayOrder", - Alignment = "right", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsActive", - EditGroupOrderNo = 1, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsActive", - Width = 0, - ListOrderNo = 7, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsLocked", - EditGroupOrderNo = 1, - EditOrderNo = 7, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsLocked", - Width = 0, - ListOrderNo = 8, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - ]); - #endregion - } - #endregion - - #region ForumTopic - listFormName = AppCodes.ForumManagement.Topics; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = true, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.ForumTopic)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.ForumTopic)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 800, 650, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, - }), - InsertFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "CreationTime", FieldDbType = DbType.DateTimeOffset, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, - new() { FieldName = "CreatorId", FieldDbType = DbType.Guid, Value = "@USERID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, - new() { FieldName = "Id", FieldDbType = DbType.Guid, Value = "@NEWID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, - new() { FieldName = "AuthorId", FieldDbType = DbType.Guid, Value = "@USERID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, - new() { FieldName = "ViewCount", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "ReplyCount", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "LikeCount", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "IsPinned", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "IsLocked", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "IsSolved", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value } - }) - }); - - #region ForumTopic Fields - await _listFormFieldRepository.InsertManyAsync([ - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Title", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Title", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "CategoryId", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Category", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.ForumCategory), "Id", "Name"), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Content", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxTextArea, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Content", - Width = 0, - ListOrderNo = 4, - Visible = false, - IsActive = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "AuthorId", - CaptionName = "App.Listform.ListformField.Author", - Width = 0, - ListOrderNo = 5, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "AuthorName", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.AuthorName", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "AuthorTitle", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.AuthorTitle", - Width = 0, - ListOrderNo = 7, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "AuthorEmail", - EditGroupOrderNo = 1, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Email", - Width = 0, - ListOrderNo = 8, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "AuthorPhoneNumber", - EditGroupOrderNo = 1, - EditOrderNo = 7, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.PhoneNumber", - Width = 0, - ListOrderNo = 9, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "AuthorDepartment", - EditGroupOrderNo = 1, - EditOrderNo = 8, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Department", - Width = 0, - ListOrderNo = 10, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "ViewCount", - CaptionName = "App.Listform.ListformField.ViewCount", - Alignment = "right", - Width = 0, - ListOrderNo = 11, - Visible = true, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "ReplyCount", - CaptionName = "App.Listform.ListformField.ReplyCount", - Alignment = "right", - Width = 0, - ListOrderNo = 12, - Visible = true, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "LikeCount", - CaptionName = "App.Listform.ListformField.LikeCount", - Alignment = "right", - Width = 0, - ListOrderNo = 13, - Visible = true, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsPinned", - EditGroupOrderNo = 1, - EditOrderNo = 9, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsPinned", - Width = 0, - ListOrderNo = 14, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsLocked", - EditGroupOrderNo = 1, - EditOrderNo = 10, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsLocked", - Width = 0, - ListOrderNo = 15, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsSolved", - EditGroupOrderNo = 1, - EditOrderNo = 11, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsSolved", - Width = 0, - ListOrderNo = 16, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - ]); - #endregion - } - #endregion - - #region ForumPost - listFormName = AppCodes.ForumManagement.Posts; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = true, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.ForumPost)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.ForumPost)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 800, 600, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, - }), - InsertFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "CreationTime", FieldDbType = DbType.DateTimeOffset, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, - new() { FieldName = "CreatorId", FieldDbType = DbType.Guid, Value = "@USERID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, - new() { FieldName = "Id", FieldDbType = DbType.Guid, Value = "@NEWID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, - new() { FieldName = "AuthorId", FieldDbType = DbType.Guid, Value = "@USERID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, - new() { FieldName = "LikeCount", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "IsAcceptedAnswer", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value } - }) - }); - - #region ForumPost Fields - await _listFormFieldRepository.InsertManyAsync([ - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "TopicId", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Topic", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.ForumTopic), "Id", "Title"), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Content", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextArea, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Content", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "AuthorId", - CaptionName = "App.Listform.ListformField.Author", - Width = 0, - ListOrderNo = 4, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "AuthorName", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.AuthorName", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "AuthorTitle", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.AuthorTitle", - Width = 0, - ListOrderNo = 6, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "AuthorEmail", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Email", - Width = 0, - ListOrderNo = 7, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "AuthorPhoneNumber", - EditGroupOrderNo = 1, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.PhoneNumber", - Width = 0, - ListOrderNo = 8, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "AuthorDepartment", - EditGroupOrderNo = 1, - EditOrderNo = 7, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Department", - Width = 0, - ListOrderNo = 9, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "LikeCount", - CaptionName = "App.Listform.ListformField.LikeCount", - Alignment = "right", - Width = 0, - ListOrderNo = 10, - Visible = true, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsAcceptedAnswer", - EditGroupOrderNo = 1, - EditOrderNo = 8, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsAcceptedAnswer", - Width = 0, - ListOrderNo = 11, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "ParentPostId", - CaptionName = "App.Listform.ListformField.ParentPost", - Width = 0, - ListOrderNo = 12, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - ]); - #endregion - } - #endregion - - #region BlogCategory - listFormName = AppCodes.BlogManagement.BlogCategory; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.BlogCategory)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.BlogCategory)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 600, 550, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, - }), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value } - }) - }); - - #region BlogCategory Fields - await _listFormFieldRepository.InsertManyAsync([ - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxAutocomplete, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - AllowSearch = false, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.LanguageKeyValues - }), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Slug", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Slug", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Description", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxAutocomplete, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Description", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - - AllowSearch = false, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.LanguageKeyValues - }), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Icon", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Icon", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "DisplayOrder", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.DisplayOrder", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsActive", - EditGroupOrderNo = 1, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsActive", - Width = 0, - ListOrderNo = 7, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - } - ]); - #endregion - } - #endregion - - #region BlogPost - listFormName = AppCodes.BlogManagement.BlogPosts; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.BlogPost)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.BlogPost)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 1000, 700, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { Order = 1, ColCount = 2, ColSpan = 1, ItemType = "group" }, - }), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "IsPublished", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "PublishedAt", FieldDbType = DbType.DateTime, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, - new() { FieldName = "ViewCount", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "LikeCount", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "CommentCount", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value } - }) - }); - - #region BlogPosts Fields - await _listFormFieldRepository.InsertManyAsync([ - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Title", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxAutocomplete, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Title", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - AllowSearch = false, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.LanguageKeyValues - }), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Slug", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Slug", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Summary", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxAutocomplete, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Summary", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - - AllowSearch = false, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.LanguageKeyValues - }), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "CoverImage", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.CoverImage", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.DateTime, - FieldName = "ReadTime", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.ReadTime", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "CategoryId", - EditGroupOrderNo = 1, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Category", - Width = 0, - ListOrderNo = 7, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.BlogCategory), "Id", "Name"), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Author", - EditGroupOrderNo = 1, - EditOrderNo = 7, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Author", - Width = 0, - ListOrderNo = 8, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "ViewCount", - EditGroupOrderNo = 1, - EditOrderNo = 8, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - EditorOptions = EditorOptions.Number(), - CaptionName = "App.Listform.ListformField.ViewCount", - Width = 0, - ListOrderNo = 9, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "LikeCount", - EditGroupOrderNo = 1, - EditOrderNo = 9, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - EditorOptions = EditorOptions.Number(), - CaptionName = "App.Listform.ListformField.LikeCount", - Width = 0, - ListOrderNo = 10, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "CommentCount", - EditGroupOrderNo = 1, - EditOrderNo = 10, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - EditorOptions = EditorOptions.Number(), - CaptionName = "App.Listform.ListformField.CommentCount", - Width = 0, - ListOrderNo = 11, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsPublished", - EditGroupOrderNo = 1, - EditOrderNo = 11, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsPublished", - Width = 0, - ListOrderNo = 12, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.DateTime, - FieldName = "PublishedAt", - EditGroupOrderNo = 1, - EditOrderNo = 12, - EditorType2 = EditorTypes.dxDateBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.PublishedAt", - Width = 0, - ListOrderNo = 13, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "ContentTr", - EditGroupOrderNo = 1, - EditOrderNo = 13, - EditorType2 = EditorTypes.dxHtmlEditor, - ColSpan = 2, - EditorOptions = EditorOptions.Html(), - CaptionName = "App.Listform.ListformField.ContentTr", - Width = 0, - ListOrderNo = 14, - Visible = false, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "ContentEn", - EditGroupOrderNo = 1, - EditOrderNo = 14, - EditorType2 = EditorTypes.dxHtmlEditor, - ColSpan = 2, - EditorOptions = EditorOptions.Html(), - CaptionName = "App.Listform.ListformField.ContentEn", - Width = 0, - ListOrderNo = 15, - Visible = false, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - } - ]); - #endregion - } - #endregion - - #region Demos - listFormName = AppCodes.Demos; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Demo)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 750, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { - Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, - }), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Demo)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "NumberOfBranches", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "NumberOfUsers", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, - }) - }); - - #region Demos Fields - await _listFormFieldRepository.InsertManyAsync([ - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "OrganizationName", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.OrganizationName", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Email", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Email", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleEmailRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "PhoneNumber", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - EditorOptions = EditorOptions.Phone(), - CaptionName = "Abp.Identity.User.UserInformation.PhoneNumber", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Address", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxTextArea, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Address", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "NumberOfBranches", - EditGroupOrderNo = 1, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.NumberOfBranches", - Width = 0, - ListOrderNo = 7, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "NumberOfUsers", - EditGroupOrderNo = 1, - EditOrderNo = 7, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.NumberOfUsers", - Width = 0, - ListOrderNo = 8, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Message", - EditGroupOrderNo = 1, - EditOrderNo = 8, - EditorType2 = EditorTypes.dxTextArea, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Message", - Width = 0, - ListOrderNo = 9, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - ]); - #endregion - - } - #endregion - - #region DevRequests - listFormName = AppCodes.DevRequests; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson("todo"), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.DevRequest)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.DevRequest)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - EditingOptionJson = DefaultEditingOptionJson(listFormName, 800, 800, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { Order = 1, ColCount = 2, ColSpan = 1, ItemType = "group" }, - }), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "TenantId", FieldDbType = DbType.String, Value = "@TENANTID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, - new() { FieldName = "UserName", FieldDbType = DbType.String, Value = "@USERNAME", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, - new() { FieldName = "RequestDate", FieldDbType = DbType.Date, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, - new() { FieldName = "Importance", FieldDbType = DbType.String, Value = "Low", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "Urgency", FieldDbType = DbType.String, Value = "Low", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "Status", FieldDbType = DbType.String, Value = "Backlog", CustomValueType = FieldCustomValueTypeEnum.Value }, - }), - TodoOptionJson = DefaultTodoOptionJson() - }); - - #region DevRequest Fields - await _listFormFieldRepository.InsertManyAsync([ - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 0, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "TenantId", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.TenantId", - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.TenantValues(), - }), - Width = 0, - ListOrderNo = 1, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - EditorOptions = EditorOptions.Disabled() - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "UserName", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "Abp.Mailing.Smtp.UserName", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - EditorOptions = EditorOptions.Disabled() - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Date, - FieldName = "RequestDate", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxDateBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.RequestDate", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Status", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxSelectBox, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key="Backlog", Name="App.StaticLookup.Backlog" }, - new () { Key="Ready to Start", Name="App.StaticLookup.ReadyToStart" }, - new () { Key="In Progress", Name="App.StaticLookup.InProgress" }, - new () { Key="Code Review", Name="App.StaticLookup.CodeReview" }, - new () { Key="Testing", Name="App.StaticLookup.Testing" }, - new () { Key="Staging", Name="App.StaticLookup.Staging" } - }), - }), - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Status", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - EditorOptions = EditorOptions.Disabled() - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Title", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 2, - CaptionName = "App.Listform.ListformField.Title", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Description", - EditGroupOrderNo = 1, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxHtmlEditor, - ColSpan = 2, - CaptionName = "App.Listform.ListformField.Description", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - EditorOptions = EditorOptions.Html() - }, - - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.DateTime, - FieldName = "DueDate", - ColSpan = 1, - CaptionName = "App.Listform.ListformField.DueDate", - Width = 0, - ListOrderNo = 7, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Tags", - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Tags", - Width = 0, - ListOrderNo = 8, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Assignees", - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Assignees", - Width = 0, - ListOrderNo = 9, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - EditorOptions = EditorOptions.Disabled() - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Priority", - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Priority", - Width = 0, - ListOrderNo = 10, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "Completed", - CaptionName = "App.Listform.ListformField.Completed", - Width = 0, - ListOrderNo = 11, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "SortOrder", - CaptionName = "App.Listform.ListformField.SortOrder", - Width = 0, - ListOrderNo = 12, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Timesheets", - CaptionName = "App.Listform.ListformField.Timesheets", - Width = 0, - ListOrderNo = 13, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "SubTasks", - CaptionName = "App.Listform.ListformField.SubTasks", - Width = 0, - ListOrderNo = 14, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - ]); - #endregion - } - #endregion - - #region IntranetWidget - listFormName = AppCodes.DeveloperKits.IntranetWidgets; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = true, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.IntranetWidget)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeMultiple, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.IntranetWidget)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = true, - SeedSyncUpdate = true, - SeedSyncDelete = true, - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - EditingOptionJson = DefaultEditingOptionJson(listFormName, 850, 560, true, true, true, true, false), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value } - }), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { Order = 1, ColCount = 2, ColSpan = 2, ItemType = "group" }, - }), - }); - - #region IntranetWidget Fields - await _listFormFieldRepository.InsertManyAsync([ - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Code", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Code", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "SourceType", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.SourceType", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key = (int)IntranetWidgetSourceType.Builtin, Name = "App.StaticLookup.Builtin" }, - new () { Key = (int)IntranetWidgetSourceType.Custom, Name = "App.StaticLookup.Custom" }, - }), - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "ComponentName", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.ComponentName", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.CustomComponentValues, - }), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "Column", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Column", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - AllowSearch = true, - SortIndex = 1, - SortDirection = GridColumnOptions.SortOrderAsc, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key = (int)IntranetWidgetColumn.Left, Name = "App.StaticLookup.Left" }, - new () { Key = (int)IntranetWidgetColumn.Center, Name = "App.StaticLookup.Center" }, - new () { Key = (int)IntranetWidgetColumn.Right, Name = "App.StaticLookup.Right" }, - }), - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "Order", - EditGroupOrderNo = 1, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - EditorOptions = EditorOptions.Number(0), - CaptionName = "App.Listform.ListformField.Order", - Width = 0, - ListOrderNo = 7, - Visible = true, - IsActive = true, - AllowSearch = true, - SortIndex = 2, - SortDirection = GridColumnOptions.SortOrderAsc, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "LabelKey", - EditGroupOrderNo = 1, - EditOrderNo = 7, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.LabelKey", - Width = 0, - ListOrderNo = 8, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "PermissionName", - EditGroupOrderNo = 1, - EditOrderNo = 8, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.PermissionName", - Width = 0, - ListOrderNo = 9, - Visible = true, - IsActive = true, - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.PermissionNameValues, - }), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsActive", - EditGroupOrderNo = 1, - EditOrderNo = 9, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsActive", - Width = 0, - ListOrderNo = 10, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Props", - EditGroupOrderNo = 1, - EditOrderNo = 10, - EditorType2 = EditorTypes.dxTextArea, - ColSpan = 2, - EditorOptions = EditorOptions.Multiline(120), - CaptionName = "App.Listform.ListformField.Props", - Width = 0, - ListOrderNo = 11, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - } - ]); - #endregion - } - #endregion - } -} +using System; +using System.Collections.Generic; +using System.Data; +using System.Text.Json; +using System.Threading.Tasks; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Localization; +using Sozsoft.Languages.Languages; +using Sozsoft.Platform.Editors; +using Sozsoft.Platform.Entities; +using Sozsoft.Platform.Enums; +using Sozsoft.Platform.ListForms; +using Sozsoft.Platform.Localization; +using Sozsoft.Platform.Queries; +using Volo.Abp.Data; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.TenantManagement; +using static Sozsoft.Platform.PlatformConsts; +using static Sozsoft.Platform.PlatformSeeder.ListFormSeeder_DefaultJsons; +using AppCodes = Sozsoft.Platform.Data.Seeds.SeedConsts.AppCodes; + +namespace Sozsoft.Platform.Data.Seeds; + +public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency +{ + private readonly IRepository _listFormRepository; + private readonly IRepository _listFormFieldRepository; + private readonly IRepository _listFormWorkflowRepository; + private readonly IConfiguration _configuration; + protected IStringLocalizer _localizer { get; } + + public ListFormSeeder_Saas( + IRepository listFormRepository, + IRepository listFormFieldRepository, + IRepository listFormWorkflowRepository, + IConfiguration configuration, + IStringLocalizer localizer + ) + { + _listFormRepository = listFormRepository; + _listFormFieldRepository = listFormFieldRepository; + _listFormWorkflowRepository = listFormWorkflowRepository; + _configuration = configuration; + _localizer = localizer; + } + + public async Task SeedAsync(DataSeedContext context) + { + var configurationSection = _configuration.GetSection("OpenIddict:Applications"); + var swaggerRootUrl = configurationSection["Platform_Swagger:RootUrl"]?.TrimEnd('/'); + var utils = new ListFormSeeder_Utils(_listFormRepository, _listFormFieldRepository); + var listFormName = String.Empty; + + #region Tenant + listFormName = TenantManagementPermissions.Tenants.Default; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = true, + LayoutJson = DefaultLayoutJson("todo"), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = "AbpTenants", + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, TenantManagementPermissions.Tenants.Delete, TenantManagementPermissions.Tenants.Default + ".Export", TenantManagementPermissions.Tenants.Default + ".Import", TenantManagementPermissions.Tenants.Default + ".Note"), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(TenantManagementPermissions.Tenants.Default, 950, 750, true, true, true, true, false, true), + EditingFormJson = JsonSerializer.Serialize(new List() + { + new() { Order=1, ColCount=4, ColSpan=1, ItemType="group" }, + }), + CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { + new() { + Hint = "Seed", + Text = "Seed", + AuthName = TenantManagementPermissions.Tenants.ManageConnectionStrings, + DialogName = "TenantsConnectionString", + DialogParameters = JsonSerializer.Serialize(new { name = "@Name", id = "@Id" }), + IsVisible = true, + }, + }), + InsertServiceAddress = "list-form-dynamic-api/tenant-insert", + UpdateServiceAddress = "list-form-dynamic-api/tenant-update", + DeleteCommand = "DELETE FROM \"AbpTenants\" WHERE \"Id\"=@Id", + DeleteFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "Id", FieldDbType = DbType.Guid, Value = "@ID", CustomValueType = FieldCustomValueTypeEnum.CustomKey } + }), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "Country", FieldDbType = DbType.String, Value = "Türkiye", CustomValueType = FieldCustomValueTypeEnum.Value } + }), + SubFormsJson = JsonSerializer.Serialize(new List() { + new { + TabType = ListFormTabTypeEnum.List, + TabTitle = AppCodes.Branches, + Code = AppCodes.Branches, + Relation = new List() { + new { + ParentFieldName = "Id", + DbType = DbType.Guid, + ChildFieldName = "TenantId" + } + } + }} + ) + }, autoSave: true + ); + + #region Tenants Fields + await _listFormFieldRepository.InsertManyAsync([ + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "OrganizationName", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 4, + CaptionName = "App.Listform.ListformField.OrganizationName", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Founder", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Founder", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int64, + FieldName = "VknTckn", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.VknTckn", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "TaxOffice", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.TaxOffice", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Country", + EditGroupOrderNo = 1, + EditOrderNo = 13, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Country", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.CountryValues, + CascadeEmptyFields = "City,District,Township" + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "City", + EditGroupOrderNo = 1, + EditOrderNo = 14, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.City", + Width = 0, + ListOrderNo = 8, + Visible = true, + IsActive = true, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.CityValues, + CascadeRelationField = "Country", + CascadeFilterOperator="=", + CascadeParentFields = "Country", + CascadeEmptyFields = "District,Township" + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "District", + EditGroupOrderNo = 1, + EditOrderNo = 15, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.District", + Width = 0, + ListOrderNo = 9, + Visible = true, + IsActive = true, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.DistrictValues, + CascadeRelationField = "City", + CascadeFilterOperator="=", + CascadeParentFields = "Country,City", + CascadeEmptyFields = "Township", + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Township", + EditGroupOrderNo = 1, + EditOrderNo = 16, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + EditorScript = EditorScript.Copy("Group", "PostalCode").OnChange(), + CaptionName = "App.Listform.ListformField.Township", + Width = 0, + ListOrderNo = 10, + Visible = true, + IsActive = true, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.TownshipValues, + CascadeRelationField = "District", + CascadeFilterOperator="=", + CascadeParentFields = "Country,City,District" + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Address1", + EditGroupOrderNo = 1, + EditOrderNo = 18, + EditorType2 = EditorTypes.dxTextArea, + ColSpan = 4, + CaptionName = "App.Listform.ListformField.Address1", + Width = 0, + ListOrderNo = 11, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Address2", + EditGroupOrderNo = 1, + EditOrderNo = 19, + EditorType2 = EditorTypes.dxTextArea, + ColSpan = 4, + CaptionName = "App.Listform.ListformField.Address2", + Width = 0, + ListOrderNo = 12, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PostalCode", + EditGroupOrderNo = 1, + EditOrderNo = 17, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.PostalCode", + Width = 0, + ListOrderNo = 13, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Email", + EditGroupOrderNo = 1, + EditOrderNo = 10, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Email", + Width = 0, + ListOrderNo = 14, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleEmailRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Website", + EditGroupOrderNo = 1, + EditOrderNo = 11, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Website", + Width = 0, + ListOrderNo = 15, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PhoneNumber", + EditGroupOrderNo = 1, + EditOrderNo = 7, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + EditorOptions = EditorOptions.Phone(), + CaptionName = "Abp.Identity.User.UserInformation.PhoneNumber", + Width = 0, + ListOrderNo = 16, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "MobileNumber", + EditGroupOrderNo = 1, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + EditorOptions = EditorOptions.Phone(), + CaptionName = "App.Listform.ListformField.MobileNumber", + Width = 0, + ListOrderNo = 17, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int64, + FieldName = "FaxNumber", + EditGroupOrderNo = 1, + EditOrderNo = 8, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + EditorOptions = EditorOptions.Phone(), + CaptionName = "App.Listform.ListformField.FaxNumber", + Width = 0, + ListOrderNo = 18, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsActive", + EditGroupOrderNo = 1, + EditOrderNo = 12, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsActive", + Width = 0, + ListOrderNo = 19, + Visible = true, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Modules", + EditGroupOrderNo = 1, + EditOrderNo = 9, + EditorType2 = EditorTypes.dxTagBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Modules", + Width = 0, + ListOrderNo = 20, + Visible = true, + IsActive = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = LookupQueryValues.ModuleValues, + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ], autoSave: true); + #endregion + } + #endregion + + #region Branches + listFormName = AppCodes.Branches; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = true, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Branch)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 950, 750, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List() + { + new() { Order=1, ColCount=3, ColSpan=1, ItemType="group" }, + new() { Order=2, ColCount=3, ColSpan=1, ItemType="group" }, + }), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Branch)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "Country", FieldDbType = DbType.String, Value = "Türkiye", CustomValueType = FieldCustomValueTypeEnum.Value } + }), + CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { + new() { + Hint = "Seed", + Text = "Seed", + AuthName = listFormName + ".Update", + DialogName = "BranchSeed", + DialogParameters = JsonSerializer.Serialize( new { id = "@Id", name = "@Name"} ), + IsVisible = true, + }, + }), + }, autoSave: true + ); + + #region Branches Fields + await _listFormFieldRepository.InsertManyAsync([ + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 0, + Visible = false, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "TenantId", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 3, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.TenantId", + Width = 0, + ListOrderNo = 1, + Visible = true, + IsActive = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.TenantValues(), + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Code", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Platform.Code", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + AllowSearch = true, + + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int64, + FieldName = "VknTckn", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.VknTckn", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "TaxOffice", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.TaxOffice", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Country", + EditGroupOrderNo = 2, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Country", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.CountryValues, + CascadeEmptyFields = "City,District,Township" + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "City", + EditGroupOrderNo = 2, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.City", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.CityValues, + CascadeRelationField = "Country", + CascadeFilterOperator="=", + CascadeParentFields = "Country", + CascadeEmptyFields = "District,Township" + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "District", + EditGroupOrderNo = 2, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.District", + Width = 0, + ListOrderNo = 8, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.DistrictValues, + CascadeRelationField = "City", + CascadeFilterOperator="=", + CascadeParentFields = "Country,City", + CascadeEmptyFields = "Township", + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Township", + EditGroupOrderNo = 2, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Township", + Width = 0, + ListOrderNo = 9, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.TownshipValues, + CascadeRelationField = "District", + CascadeFilterOperator="=", + CascadeParentFields = "Country,City,District" + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Address1", + EditGroupOrderNo = 2, + EditOrderNo = 7, + EditorType2 = EditorTypes.dxTextArea, + ColSpan = 3, + CaptionName = "App.Listform.ListformField.Address1", + Width = 0, + ListOrderNo = 10, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Address2", + EditGroupOrderNo = 2, + EditOrderNo = 8, + EditorType2 = EditorTypes.dxTextArea, + ColSpan = 3, + CaptionName = "App.Listform.ListformField.Address2", + Width = 0, + ListOrderNo = 11, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PostalCode", + EditGroupOrderNo = 1, + EditOrderNo = 9, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.PostalCode", + Width = 0, + ListOrderNo = 12, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Email", + EditGroupOrderNo = 2, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Email", + Width = 0, + ListOrderNo = 13, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleEmailRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Website", + EditGroupOrderNo = 2, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Website", + Width = 0, + ListOrderNo = 14, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PhoneNumber", + EditGroupOrderNo = 1, + EditOrderNo = 7, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + EditorOptions = EditorOptions.Phone(), + CaptionName = "Abp.Identity.User.UserInformation.PhoneNumber", + Width = 0, + ListOrderNo = 15, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "MobileNumber", + EditGroupOrderNo = 1, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + EditorOptions = EditorOptions.Phone(), + CaptionName = "App.Listform.ListformField.MobileNumber", + Width = 0, + ListOrderNo = 16, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int64, + FieldName = "FaxNumber", + EditGroupOrderNo = 1, + EditOrderNo = 8, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + EditorOptions = EditorOptions.Phone(), + CaptionName = "App.Listform.ListformField.FaxNumber", + Width = 0, + ListOrderNo = 17, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsActive", + EditGroupOrderNo = 1, + EditOrderNo = 10, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsActive", + Width = 0, + ListOrderNo = 18, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ], autoSave: true); + #endregion + } + #endregion + + #region Global Search + listFormName = AppCodes.Definitions.GlobalSearch; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.GlobalSearch)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Int32, + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + PagerOptionJson = DefaultPagerOptionJson, + InsertFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "Id", FieldDbType = DbType.Guid, Value = "@NEWID", CustomValueType = FieldCustomValueTypeEnum.CustomKey } + }), + DeleteCommand = $"DELETE FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.GlobalSearch))}\" WHERE \"Id\"=@Id", + DeleteFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "Id", FieldDbType = DbType.Int32, Value = "@ID", CustomValueType = FieldCustomValueTypeEnum.CustomKey } + }), + EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 450, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List() + { + new() { Order=1, ColCount=1, ColSpan=1, ItemType="group" }, + }), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "System", FieldDbType = DbType.String, Value = "Platform", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "Weight", FieldDbType = DbType.Single, Value = "1.0", CustomValueType = FieldCustomValueTypeEnum.Value }, + }) + } + ); + + #region Global Search Fields + await _listFormFieldRepository.InsertManyAsync( + [ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "System", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.System", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Group", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Group", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Term", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Term", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.LanguageKeyValues + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Url", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Sender.Rocket.Url", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Single, + FieldName = "Weight", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + EditorOptions = EditorOptions.Number(), + CaptionName = "App.Listform.ListformField.Weight", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ]); + #endregion + } + #endregion + + #region AiBot + listFormName = AppCodes.Definitions.AiBot; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.AiBot)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + PagerOptionJson = DefaultPagerOptionJson, + DeleteCommand = $"DELETE FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.AiBot))}\" WHERE \"Id\"=@Id", + DeleteFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "Id", FieldDbType = DbType.Guid, Value = "@ID", CustomValueType = FieldCustomValueTypeEnum.CustomKey } + }), + InsertFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "Id", FieldDbType = DbType.Guid, Value = "@NEWID", CustomValueType = FieldCustomValueTypeEnum.CustomKey } + }), + EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 650, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List() + { + new() { Order=1, ColCount=2, ColSpan=1, ItemType="group" }, + }), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] + { + new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value } + }) + } + ); + + #region AiBot Fields + await _listFormFieldRepository.InsertManyAsync( + [ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsActive", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsActive", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "ApiUrl", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 2, + CaptionName = "App.Listform.ListformField.ApiUrl", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Description", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxHtmlEditor, + ColSpan = 2, + EditorOptions = EditorOptions.Html(), + CaptionName = "App.Listform.ListformField.Description", + Width = 0, + ListOrderNo = 5, + Visible = false, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Tenants", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxTagBox, + ColSpan = 2, + CaptionName = "App.Listform.ListformField.Tenants", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.TenantValues(true), + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ]); + #endregion + } + #endregion + + #region ContactTitle + listFormName = AppCodes.Definitions.ContactTitle; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.ContactTitle)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.ContactTitle)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 400, 400, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { + Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + }); + + #region ContactTitle Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Title", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Title", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Abbreviation", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Abbreviation", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + } + ]); + #endregion + } + #endregion + + #region Currency + listFormName = AppCodes.Definitions.Currency; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Currency)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.String, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Currency)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(DbType.String, "Name"), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 450, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { + Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, + }), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] + { + new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value } + }) + }); + + #region Currency Fields + await _listFormFieldRepository.InsertManyAsync([ + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Symbol", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Symbol", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = false, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "Rate", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Rate", + Alignment = "right", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = false, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + EditorOptions=EditorOptions.Number() + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsActive", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsActive", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + AllowSearch = false, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + } + ]); + #endregion + } + #endregion + + #region CountryGroup + listFormName = AppCodes.Definitions.CountryGroup; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.CountryGroup)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.String, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.CountryGroup)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(DbType.String, "Name"), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 400, 200, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { + Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, + }), + }); + + #region CountryGroup Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + } + ]); + #endregion + } + #endregion + + #region Country + listFormName = AppCodes.Definitions.Country; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Country)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.String, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Country)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(DbType.String, "Name"), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 600, 550, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { + Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, + }), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "Currency", FieldDbType = DbType.String, Value = "TRY", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "ZipRequired", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "StateRequired", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value } + }) + }); + + #region Country Fields + await _listFormFieldRepository.InsertManyAsync([ + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "GroupName", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.GroupName", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + AllowSearch = false, + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.CountryGroup), "Name", "Name"), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Currency", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Currency", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = false, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Currency), "Id", "Name"), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "PhoneCode", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.PhoneCode", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + AllowSearch = false, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "PhoneNumberMinLength", + EditGroupOrderNo = 1, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.PhoneNumberMinLength", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + + AllowSearch = false, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "PhoneNumberMaxLength", + EditGroupOrderNo = 1, + EditOrderNo = 7, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.PhoneNumberMaxLength", + Width = 0, + ListOrderNo = 8, + Visible = true, + IsActive = true, + + AllowSearch = false, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PhoneNumberFormat", + EditGroupOrderNo = 1, + EditOrderNo = 8, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.PhoneNumberFormat", + Width = 0, + ListOrderNo = 9, + Visible = true, + IsActive = true, + + AllowSearch = false, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "TaxLabel", + EditGroupOrderNo = 1, + EditOrderNo = 9, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.TaxLabel", + Width = 0, + ListOrderNo = 10, + Visible = true, + IsActive = true, + + AllowSearch = false, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "ZipRequired", + EditGroupOrderNo = 1, + EditOrderNo = 10, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.ZipRequired", + Width = 0, + ListOrderNo = 11, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "StateRequired", + EditGroupOrderNo = 1, + EditOrderNo = 11, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.StateRequired", + Width = 0, + ListOrderNo = 12, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + } + ]); + #endregion + + } + #endregion + + #region City + listFormName = AppCodes.Definitions.City; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.City)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.City)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 350, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { + Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "Country", FieldDbType = DbType.String, Value = "Türkiye", CustomValueType = FieldCustomValueTypeEnum.Value } + }) + }); + + #region City Fields + await _listFormFieldRepository.InsertManyAsync([ + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Country", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Country", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + AllowSearch = false, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.CountryValues + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PlateCode", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.PlateCode", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = false, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + ]); + #endregion + } + #endregion + + #region District + listFormName = AppCodes.Definitions.District; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.District)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.District)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 450, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { + Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "Country", FieldDbType = DbType.String, Value = "Türkiye", CustomValueType = FieldCustomValueTypeEnum.Value } + }) + }); + + #region City Fields + await _listFormFieldRepository.InsertManyAsync([ + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Country", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Country", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.CountryValues, + CascadeEmptyFields = "City" + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "City", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.City", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.CityValues, + CascadeRelationField = "Country", + CascadeFilterOperator="=", + CascadeParentFields = "Country" + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Township", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Township", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = false, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PostalCode", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.PostalCode", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + AllowSearch = false, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + ]); + #endregion + } + #endregion + + #region UomCategory + listFormName = AppCodes.Definitions.UomCategory; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = true, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.UomCategory)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.String, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.UomCategory)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 400, 200, true, true, true, false, false, true), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { + Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, + }), + SubFormsJson = JsonSerializer.Serialize(new List() { + new { + TabType = ListFormTabTypeEnum.List, + TabTitle = AppCodes.Definitions.Uom, + Code = AppCodes.Definitions.Uom, + Relation = new List() { + new { + ParentFieldName = "Id", + DbType = DbType.String, + ChildFieldName = "UomCategoryId" + } + } + }, + }) + }, autoSave: true); + + #region UomCategory Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + } + ], autoSave: true); + #endregion + } + #endregion + + #region Uom + listFormName = AppCodes.Definitions.Uom; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = true, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Uom)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.String, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Uom)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(DbType.String, "Name"), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 600, 500, true, true, true, false, false), + EditingFormJson = JsonSerializer.Serialize(new List() { + new() { + Order=1, ColCount=1, ColSpan=1, ItemType="group" }, + }), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value } + }), + }, autoSave: true + ); + + #region Uom Fields + await _listFormFieldRepository.InsertManyAsync([ + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + SortIndex = 1, + SortDirection = GridColumnOptions.SortOrderAsc, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Type", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Type", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new () { Key="Reference", Name="App.StaticLookup.Reference" }, + new () { Key="SmallerThanReference", Name="App.StaticLookup.SmallerThanReference" }, + new () { Key="BiggerThanReference", Name="App.StaticLookup.BiggerThanReference" }, + }), + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "Ratio", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Ratio", + Alignment = "right", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + EditorOptions=EditorOptions.Number() + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "Rounding", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Rounding", + Alignment = "right", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + EditorOptions=EditorOptions.Number() + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsActive", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsActive", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "UomCategoryId", + CaptionName = "App.Listform.ListformField.UomCategoryId", + Width = 0, + ListOrderNo = 7, + Visible = false, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ], autoSave: true); + #endregion + } + #endregion + + #region Sequence + listFormName = AppCodes.Definitions.Sequence; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Sequence)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Sequence)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 700, 500, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { + Order = 1, ColCount = 2, ColSpan = 1, ItemType = "group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "PaddingSize", FieldDbType = DbType.Int16, Value = "5", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "IncrementStep", FieldDbType = DbType.Int16, Value = "1", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "StartNumber", FieldDbType = DbType.Int16, Value = "1", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "FormatTemplate", FieldDbType = DbType.String, Value = "{Prefix}{Number}{Suffix}", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "ResetPeriod", FieldDbType = DbType.Int16, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, + }), + }); + + #region Sequence Fields + await _listFormFieldRepository.InsertManyAsync([ + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + SortIndex = 1, + SortDirection = GridColumnOptions.SortOrderAsc, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Prefix", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Prefix", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Suffix", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Suffix", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsActive", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsActive", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + Alignment = "center", + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "PaddingSize", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.PaddingSize", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "IncrementStep", + EditGroupOrderNo = 1, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IncrementStep", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "NextNumber", + CaptionName = "App.Listform.ListformField.NextNumber", + Width = 0, + ListOrderNo = 8, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "ResetPeriod", + EditGroupOrderNo = 1, + EditOrderNo = 7, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.ResetPeriod", + Width = 0, + ListOrderNo = 9, + Visible = true, + IsActive = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new() { Key=0, Name="App.StaticLookup.None" }, + new() { Key=1, Name="App.StaticLookup.Yearly"}, + new() { Key=2, Name="App.StaticLookup.Monthly"}, + new() { Key=3, Name="App.StaticLookup.Daily"}, + new() { Key=4, Name="App.StaticLookup.Hourly"}, + new() { Key=5, Name="App.StaticLookup.Minutely"}, + }), + }), + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "StartNumber", + EditGroupOrderNo = 1, + EditOrderNo = 8, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.StartNumber", + Width = 0, + ListOrderNo = 10, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "LastPeriodKey", + CaptionName = "App.Listform.ListformField.LastPeriodKey", + Width = 0, + ListOrderNo = 11, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "FormatTemplate", + EditGroupOrderNo = 1, + EditOrderNo = 9, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 2, + CaptionName = "App.Listform.ListformField.FormatTemplate", + Width = 0, + ListOrderNo = 12, + Visible = true, + IsActive = true, + PlaceHolder="{Prefix}-{yyyy}{MM}{dd}-{Number}-{Suffix}", + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ]); + #endregion + } + #endregion + + #region SkillType + listFormName = AppCodes.Definitions.SkillType; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = true, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.SkillType)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.String, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.SkillType)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(DbType.String), + PagerOptionJson = DefaultPagerOptionJson, + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(DbType.String, "Name"), + EditingOptionJson = DefaultEditingOptionJson(listFormName, 400, 200, true, true, true, true, false, true), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { + Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, + }), + SubFormsJson = JsonSerializer.Serialize(new List() { + new { + TabType = ListFormTabTypeEnum.List, + TabTitle = AppCodes.Definitions.SkillLevel, + Code = AppCodes.Definitions.SkillLevel, + Relation = new List() { + new { + ParentFieldName = "Id", + DbType = DbType.String, + ChildFieldName = "SkillTypeId" + } + } + }, + new { + TabType = ListFormTabTypeEnum.List, + TabTitle = AppCodes.Definitions.Skill, + Code = AppCodes.Definitions.Skill, + Relation = new List() { + new { + ParentFieldName = "Id", + DbType = DbType.String, + ChildFieldName = "SkillTypeId" + } + } + } + }) + }, autoSave: true); + + #region SkillType Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + } + ], autoSave: true); + #endregion + } + #endregion + + #region Skill Level + listFormName = AppCodes.Definitions.SkillLevel; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = true, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.SkillLevel)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.String, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.SkillLevel)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(DbType.String), + PagerOptionJson = DefaultPagerOptionJson, + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(DbType.String, "Name"), + EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 450, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List() { + new() { Order=1, ColCount=1, ColSpan=1, ItemType="group" }, + }), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "IsDefault", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value } + }), + }, autoSave: true + ); + + #region Skill Level Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + SortIndex = 0, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + SortIndex = 1, + SortDirection = GridColumnOptions.SortOrderAsc, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "Progress", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxSlider, + ColSpan = 1, + EditorOptions = EditorOptions.Slider(), + CaptionName = "App.Listform.ListformField.Progress", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsDefault", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "Abp.Mailing.Default", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "SkillTypeId", + CaptionName = "App.Listform.ListformField.SkillTypeId", + Width = 0, + ListOrderNo = 5, + Visible = false, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ], autoSave: true); + #endregion + } + #endregion + + #region Skill + listFormName = AppCodes.Definitions.Skill; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = true, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Skill)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.String, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Skill)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(DbType.String), + PagerOptionJson = DefaultPagerOptionJson, + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(DbType.String, "Name"), + EditingOptionJson = DefaultEditingOptionJson(AppCodes.Definitions.SkillLevel, 500, 250, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List() { + new() { Order=1, ColCount=1, ColSpan=1, ItemType="group" }, + }), + }, autoSave: true + ); + + #region Skill Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + SortIndex = 0, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + SortIndex = 1, + SortDirection = GridColumnOptions.SortOrderAsc, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "SkillTypeId", + CaptionName = "App.Listform.ListformField.SkillTypeId", + Width = 0, + ListOrderNo = 3, + Visible = false, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ], autoSave: true); + #endregion + } + #endregion + + #region SettingDefinition + listFormName = AppCodes.SettingDefinitions; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.SettingDefinition)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = $"UPDATE \"{FullNameTable(TableNameEnum.SettingDefinition)}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 800, 600, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List() { + new() { Order=1, ColCount=2, ColSpan=1, ItemType="group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "IsVisibleToClients", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "IsInherited", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "IsEncrypted", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, + }), + } + ); + + #region SettingDefinition Fields + await _listFormFieldRepository.InsertManyAsync([ + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Code", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Platform.Code", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + SortIndex = 1, + SortDirection = GridColumnOptions.SortOrderAsc, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "MainGroupKey", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxAutocomplete, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.MainGroupKey", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + AllowSearch = false, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.LanguageKeyValues + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + GroupingJson = DefaultGroupingJson(1) + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "SubGroupKey", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxAutocomplete, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.SubGroupKey", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = false, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.LanguageKeyValues + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + GroupingJson = DefaultGroupingJson(2) + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "Order", + EditGroupOrderNo = 1, + EditOrderNo = 14, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Order", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "NameKey", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxAutocomplete, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.NameKey", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + AllowSearch = false, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.LanguageKeyValues + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "DescriptionKey", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxAutocomplete, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.DescriptionKey", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + + AllowSearch = false, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.LanguageKeyValues + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "RequiredPermissionName", + EditGroupOrderNo = 1, + EditOrderNo = 11, + EditorType2 = EditorTypes.dxAutocomplete, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.RequiredPermissionName", + Width = 0, + ListOrderNo = 8, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.PermissionNameValues + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Providers", + EditGroupOrderNo = 1, + EditOrderNo = 8, + EditorType2 = EditorTypes.dxTagBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Providers", + Width = 0, + ListOrderNo = 9, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new() { Key="U", Name="App.Platform.User" }, + new() { Key="T", Name="App.StaticLookup.Tenant"}, + new() { Key="G", Name="App.StaticLookup.Global"}, + new() { Key="C", Name="App.StaticLookup.Configuration"}, + new() { Key="D", Name="Abp.Mailing.Default"}, + }), + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "DefaultValue", + EditGroupOrderNo = 1, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.DefaultValue", + Width = 0, + ListOrderNo = 10, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "DataType", + EditGroupOrderNo = 1, + EditOrderNo = 12, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.DataType", + Width = 0, + ListOrderNo = 11, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new() { Key="Bool", Name="App.StaticLookup.Boolean" }, + new() { Key="Number", Name="App.StaticLookup.Number"}, + new() { Key="Text", Name="App.Listform.ListformField.Text"}, + new() { Key="Memo", Name="App.StaticLookup.Memo"}, + new() { Key="List", Name="App.StaticLookup.List"}, + }) + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "SelectOptions", + EditGroupOrderNo = 1, + EditOrderNo = 13, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.SelectOptions", + Width = 0, + ListOrderNo = 12, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsVisibleToClients", + EditGroupOrderNo = 1, + EditOrderNo = 7, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsVisibleToClients", + Width = 0, + ListOrderNo = 13, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsInherited", + EditGroupOrderNo = 1, + EditOrderNo = 9, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsInherited", + Width = 0, + ListOrderNo = 14, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsEncrypted", + EditGroupOrderNo = 1, + EditOrderNo = 10, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsEncrypted", + Width = 0, + ListOrderNo = 15, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ]); + #endregion + } + #endregion + + #region Language + listFormName = AppCodes.Languages.Language; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = true, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Language)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + PagerOptionJson = DefaultPagerOptionJson, + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + EditingOptionJson = DefaultEditingOptionJson(listFormName, 600, 450, true, true, true, true, false, true), + EditingFormJson = JsonSerializer.Serialize(new List() { + new() { + Order=1, ColCount=2, ColSpan=1, ItemType="group" }, + }), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "IsEnabled", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value } + }), + SubFormsJson = JsonSerializer.Serialize(new List() { + new { + TabType = ListFormTabTypeEnum.List, + TabTitle = AppCodes.Languages.LanguageText, + Code = AppCodes.Languages.LanguageText, + Relation = new List() { + new { + ParentFieldName = "CultureName", + DbType = DbType.String, + ChildFieldName = "CultureName" + } + } + } + }) + }, autoSave: true + ); + + #region Language Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + SortIndex = 0, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "CultureName", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.CultureName", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + SortIndex = 1, + SortDirection = GridColumnOptions.SortOrderAsc, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "UiCultureName", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.UiCultureName", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "DisplayName", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.DisplayName", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsEnabled", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsEnabled", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ], autoSave: true); + #endregion + } + #endregion + + #region LanguageText + listFormName = AppCodes.Languages.LanguageText; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = true, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.LanguageText)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 600, 400, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List() { + new() { Order=1, ColCount=1, ColSpan=1, ItemType="group" },}), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { + new() { + ButtonPosition= UiCommandButtonPositionTypeEnum.Toolbar, + Hint = "App.ListForm.ClearRedisCache", + Text = "App.ListForm.ClearRedisCache", + AuthName = listFormName, + OnClick = "UiEvalService.ApiClearRedisCache();", + IsVisible = true, + Icon="home" + }, + }), + }, autoSave: true + ); + + #region LanguageText Fields + await _listFormFieldRepository.InsertManyAsync([ + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + SortIndex = 0, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "CultureName", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.CultureName", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Language), "CultureName", "DisplayName"), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "ResourceName", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.ResourceName", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new() { Key="AbpAccount",Name="App.StaticLookup.AbpAccount" }, + new() { Key="Platform",Name="App.StaticLookup.Platform" }, + }), + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Key", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxAutocomplete, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Key", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + AllowSearch = false, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.LanguageKeyValues + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Value", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Value", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ], autoSave: true); + + #endregion + } + #endregion + + #region Data Source + listFormName = AppCodes.DataSource; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.DataSource)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = $"UPDATE \"{FullNameTable(TableNameEnum.DataSource)}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 600, 500, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List() { + new() { Order=1, ColCount=1, ColSpan=1, ItemType="group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + } + ); + + #region Data Source Fields + await _listFormFieldRepository.InsertManyAsync([ + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Code", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Platform.Code", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + SortIndex = 1, + SortDirection = GridColumnOptions.SortOrderAsc, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "DataSourceType", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.DataSourceType", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new() { Key = 1, Name = "App.StaticLookup.Mssql" }, + new() { Key = 2, Name = "App.StaticLookup.Postgresql" }, + }), + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "ConnectionString", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxTextArea, + ColSpan = 1, + EditorOptions = EditorOptions.Multiline(200), + CaptionName = "App.Listform.ListformField.ConnectionString", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ]); + #endregion + } + #endregion + + #region ListForm + listFormName = AppCodes.Listforms.Listform; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.ListForm)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + SortMode = GridOptions.SortModeMultiple, + FilterRowJson = JsonSerializer.Serialize(new GridFilterRowDto { Visible = true, ApplyFilter = GridOptions.FilterRowApplyFilterAuto }), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 950, 650, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List() { + new() { Order=1, ColCount=3, ColSpan=1, ItemType="group" }, + new() { Order=2, ColCount=3, ColSpan=1, ItemType="group" }, + new() { Order=3, ColCount=2, ColSpan=1, ItemType="group" }, + }), + InsertFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] + { + new() { FieldName = "Id", FieldDbType = DbType.Guid, Value = "@NEWID", CustomValueType = FieldCustomValueTypeEnum.CustomKey } + }), + CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { + new() { + Hint = "App.Platform.Manage2", + Text ="App.Platform.Manage2", + UrlTarget = "_blank", + AuthName = listFormName + ".Update", + Url = "/admin/listform/edit/@ListFormCode", + IsVisible = true, + }, + new() { + Hint = "App.Platform.Show", + Text = "App.Platform.Show", + UrlTarget = "_blank", + AuthName = listFormName, + Url = "/admin/list/@ListFormCode", + IsVisible = true, + } + }), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "CultureName", FieldDbType = DbType.String, Value = "en", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "DataSourceCode", FieldDbType = DbType.String, Value = "Default", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "SelectCommandType", FieldDbType = DbType.Int32, Value = ((int)SelectCommandTypeEnum.Table).ToString(), CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "KeyFieldName", FieldDbType = DbType.String, Value = "Id", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "KeyFieldDbSourceType", FieldDbType = DbType.Int32, Value = ((int)DbType.Guid).ToString(), CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "ListFormType", FieldDbType = DbType.String, Value = ListFormTypeEnum.List, CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "InsertServiceAddress", FieldDbType = DbType.String, Value = "list-form-data/insert", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "DeleteServiceAddress", FieldDbType = DbType.String, Value = "list-form-data/delete", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "UpdateServiceAddress", FieldDbType = DbType.String, Value = "list-form-data/update", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "IsDisabled", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "IsTenant", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "IsBranch", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "IsOrganizationUnit", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "IsSubForm", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "ShowNote", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "SortMode", FieldDbType = DbType.String, Value = GridOptions.SortModeNone, CustomValueType = FieldCustomValueTypeEnum.Value }, + }), + } + ); + + #region ListForms Fields + await _listFormFieldRepository.InsertManyAsync( + [ + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "CultureName", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.CultureName", + Width = 0, + ListOrderNo = 1, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Language), "CultureName", "DisplayName"), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + EditorScript = EditorScript.Build( + EditorScript.SetValue("ListFormCode", "{Name}").OnChange(), + EditorScript.SetValue("Title", "{Name}").OnChange(), + EditorScript.SetValue("Description", "{Name}").OnChange() + ) + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "ListFormCode", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.ListFormCode", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + SortIndex = 1, + SortDirection = GridColumnOptions.SortOrderAsc, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "ListFormType", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.ListFormType", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + LookupJson = JsonSerializer.Serialize(new LookupDto{ + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new() { Key = ListFormTypeEnum.Form, Name = "App.StaticLookup.Form" }, + new() { Key = ListFormTypeEnum.List, Name = "App.StaticLookup.List" }, + }), + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "DataSourceCode", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.DataSourceCode", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.DataSource), "Code", "Code"), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "SelectCommandType", + EditGroupOrderNo = 1, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.SelectCommandType", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new() { Key = SelectCommandTypeEnum.Table, Name="App.StaticLookup.Table" }, + new() { Key = SelectCommandTypeEnum.View, Name="App.StaticLookup.View" }, + new() { Key = SelectCommandTypeEnum.TableValuedFunction, Name="App.StaticLookup.TableValuedFunction" }, + new() { Key = SelectCommandTypeEnum.Query, Name="App.StaticLookup.Query" }, + new() { Key = SelectCommandTypeEnum.StoredProcedure, Name="App.StaticLookup.StoredProcedure" }, + }), + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "SelectCommand", + EditGroupOrderNo = 1, + EditOrderNo = 7, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.SelectCommand", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "TableName", + EditGroupOrderNo = 1, + EditOrderNo = 8, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.TableName", + Width = 0, + ListOrderNo = 8, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "KeyFieldName", + EditGroupOrderNo = 1, + EditOrderNo = 9, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.KeyFieldName", + Width = 0, + ListOrderNo = 9, + Visible = true, + IsActive = true, + + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "KeyFieldDbSourceType", + EditGroupOrderNo = 1, + EditOrderNo = 10, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.KeyFieldDbSourceType", + Width = 0, + ListOrderNo = 10, + Visible = true, + IsActive = true, + + ValidationRuleJson = DefaultValidationRuleRequiredJson, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new() { Key = DbType.AnsiString, Name="App.StaticLookup.AnsiString" }, + new() { Key = DbType.Binary, Name="App.StaticLookup.Binary" }, + new() { Key = DbType.Byte, Name="App.StaticLookup.Byte" }, + new() { Key = DbType.Boolean, Name="App.StaticLookup.Boolean" }, + new() { Key = DbType.Currency, Name="App.Listform.ListformField.Currency" }, + new() { Key = DbType.Date, Name="App.Listform.ListformField.Date" }, + new() { Key = DbType.DateTime, Name="App.StaticLookup.DateTime" }, + new() { Key = DbType.Decimal, Name="App.StaticLookup.Decimal" }, + new() { Key = DbType.Double, Name="App.StaticLookup.Double" }, + new() { Key = DbType.Guid, Name="App.StaticLookup.Guid" }, + new() { Key = DbType.Int16, Name="App.StaticLookup.Int16" }, + new() { Key = DbType.Int32, Name="App.StaticLookup.Int32" }, + new() { Key = DbType.Int64, Name="App.StaticLookup.Int64" }, + new() { Key = DbType.Object, Name="App.StaticLookup.Object" }, + new() { Key = DbType.SByte, Name="App.StaticLookup.SByte" }, + new() { Key = DbType.Single, Name="App.StaticLookup.Single" }, + new() { Key = DbType.String, Name="App.StaticLookup.String" }, + new() { Key = DbType.Time, Name="App.StaticLookup.Time" }, + new() { Key = DbType.UInt16, Name="App.StaticLookup.UInt16" }, + new() { Key = DbType.UInt32, Name="App.StaticLookup.UInt32" }, + new() { Key = DbType.UInt64, Name="App.StaticLookup.UInt64" }, + new() { Key = DbType.VarNumeric, Name="App.StaticLookup.VarNumeric" }, + new() { Key = DbType.AnsiStringFixedLength, Name="App.StaticLookup.AnsiStringFixedLength" }, + new() { Key = DbType.StringFixedLength, Name="App.StaticLookup.StringFixedLength" }, + new() { Key = DbType.Xml, Name="App.StaticLookup.Xml" }, + new() { Key = DbType.DateTime2, Name="App.StaticLookup.DateTime2" }, + new() { Key = DbType.DateTimeOffset, Name="App.StaticLookup.DateTimeOffset" }, + }), + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Title", + EditGroupOrderNo = 1, + EditOrderNo = 11, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Title", + Width = 0, + ListOrderNo = 11, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Description", + EditGroupOrderNo = 1, + EditOrderNo = 12, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Description", + Width = 0, + ListOrderNo = 12, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "SortMode", + EditGroupOrderNo = 1, + EditOrderNo = 13, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.SortMode", + Width = 0, + ListOrderNo = 13, + Visible = true, + IsActive = true, + + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new() { Key=GridOptions.SortModeNone, Name="App.StaticLookup.None" }, + new() { Key=GridOptions.SortModeSingle, Name="App.StaticLookup.SortSingle" }, + new() { Key=GridOptions.SortModeMultiple, Name="App.StaticLookup.SortMultiple" }, + }), + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsTenant", + EditGroupOrderNo = 1, + EditOrderNo = 14, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsTenant", + Width = 0, + ListOrderNo = 14, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsBranch", + EditGroupOrderNo = 1, + EditOrderNo = 15, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsBranch", + Width = 0, + ListOrderNo = 15, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsOrganizationUnit", + EditGroupOrderNo = 1, + EditOrderNo = 16, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsOrganizationUnit", + Width = 0, + ListOrderNo = 16, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsSubForm", + EditGroupOrderNo = 1, + EditOrderNo = 17, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsSubForm", + Width = 0, + ListOrderNo = 17, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "ShowNote", + EditGroupOrderNo = 1, + EditOrderNo = 18, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.ShowNote", + Width = 0, + ListOrderNo = 18, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PermissionJson", + CaptionName = "App.Listform.ListformField.PermissionJson", + Width = 0, + ListOrderNo = 19, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "DeleteServiceAddress", + EditGroupOrderNo = 2, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.DeleteServiceAddress", + Width = 0, + ListOrderNo = 20, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "InsertServiceAddress", + EditGroupOrderNo = 2, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.InsertServiceAddress", + Width = 0, + ListOrderNo = 21, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "UpdateServiceAddress", + EditGroupOrderNo = 2, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.UpdateServiceAddress", + Width = 0, + ListOrderNo = 22, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PermissionJson:C", + CaptionName = "PermissionJson:C", + EditGroupOrderNo = 3, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + Visible = false, + IsActive = false, + ListOrderNo = 23, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PermissionJson:R", + CaptionName = "PermissionJson:R", + EditGroupOrderNo = 3, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + Visible = false, + IsActive = false, + ListOrderNo = 24, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PermissionJson:U", + CaptionName = "PermissionJson:U", + EditGroupOrderNo = 3, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + Visible = false, + IsActive = false, + ListOrderNo = 25, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PermissionJson:D", + CaptionName = "PermissionJson:D", + EditGroupOrderNo = 3, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + Visible = false, + IsActive = false, + ListOrderNo = 26, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + ]); + #endregion + } + #endregion + + #region Notification Type + listFormName = AppCodes.Notifications.NotificationTypes; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.NotificationType)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.NotificationType)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 400, 200, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { + Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, + }), + }); + + #region Notification Type Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + } + ]); + #endregion + } + #endregion + + #region Notification Rule + listFormName = AppCodes.Notifications.NotificationRules; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.NotificationRule)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = $"UPDATE \"{FullNameTable(TableNameEnum.NotificationRule)}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 550, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List() { + new() { Order=1, ColCount=1, ColSpan=1, ItemType="group" }, + new() { Order=2, ColCount=1, ColSpan=1, ItemType="group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "IsFixed", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "IsCustomized", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value } + }), + CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { + new CommandColumnDto() { + Hint = "Create", + Text = "Create", + AuthName = listFormName, + DialogName = "CreateNotification", + DialogParameters = JsonSerializer.Serialize(new { name = "id", id = "@Id" }), + IsVisible = true, + }, + }), + } + ); + + #region Notification Rule Fields + await _listFormFieldRepository.InsertManyAsync([ + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "NotificationTypeId", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.NotificationTypeId", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.NotificationType), "Id", "Name"), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "RecipientType", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.RecipientType", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new () { Key="All", Name="App.StaticLookup.All" }, + new () { Key="User", Name="App.Platform.User" }, + new () { Key="Role", Name="App.StaticLookup.Role" }, + new () { Key="OrganizationUnit", Name="App.Listform.ListformField.IsOrganizationUnit" }, + new () { Key="Custom", Name="App.StaticLookup.Custom" }, + }), + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "RecipientId", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.RecipientId", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Channel", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Channel", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new () { Key="Sms", Name="App.Sender.Sms" }, + new () { Key="Mail", Name="App.StaticLookup.Mail" }, + new () { Key="WhatsApp", Name="App.Sender.WhatsApp" }, + new () { Key="Telegram", Name="App.Sender.Telegram" }, + new () { Key="Rocket", Name="App.StaticLookup.Rocket" }, + new () { Key="UiActivity", Name="App.StaticLookup.UiActivity" }, + new () { Key="UiToast", Name="App.StaticLookup.UiToast" }, + new () { Key="Desktop", Name="App.StaticLookup.Desktop" }, + }), + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsActive", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsActive", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsFixed", + EditGroupOrderNo = 1, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsFixed", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsCustomized", + EditGroupOrderNo = 1, + EditOrderNo = 7, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsCustomized", + Width = 0, + ListOrderNo = 8, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Options:MailType", + CaptionName = "Options:MailType", + EditGroupOrderNo = 2, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + Visible = false, + IsActive = false, + ListOrderNo = 9, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Options:MailSubject", + CaptionName = "Options:MailSubject", + EditGroupOrderNo = 2, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + Visible = false, + IsActive = false, + ListOrderNo = 10, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Options:MailTemplate", + CaptionName = "Options:MailTemplate", + EditGroupOrderNo = 2, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxHtmlEditor, + ColSpan = 2, + EditorOptions = EditorOptions.Html(), + Visible = false, + IsActive = false, + ListOrderNo = 11, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Options:TableName", + CaptionName = "Options:TableName", + EditGroupOrderNo = 2, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 2, + Visible = false, + IsActive = false, + ListOrderNo = 12, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + ]); + #endregion + } + #endregion + + #region Notification + listFormName = AppCodes.Notifications.Notification; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Notification)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = $"UPDATE \"{FullNameTable(TableNameEnum.Notification)}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 500, false, false, false, false, false, false), + } + ); + + #region Notification Fields + await _listFormFieldRepository.InsertManyAsync([ + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "NotificationChannel", + CaptionName = "App.Listform.ListformField.NotificationChannel", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new () { Key="Sms", Name="App.Sender.Sms" }, + new () { Key="Mail", Name="App.StaticLookup.Mail" }, + new () { Key="Rocket", Name="App.StaticLookup.Rocket" }, + new () { Key="Desktop", Name="App.StaticLookup.Desktop" }, + new () { Key="UiActivity", Name="App.StaticLookup.UiActivity" }, + new () { Key="UiToast", Name="App.StaticLookup.UiToast" }, + new () { Key="WhatsApp", Name="App.Sender.WhatsApp" }, + new () { Key="Telegram", Name="App.Sender.Telegram" }, + }), + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "NotificationTypeId", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.NotificationTypeId", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + AllowSearch = true, + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.NotificationType), "Id", "Name"), + + // LookupJson = JsonSerializer.Serialize(new LookupDto { + // DataSourceType = UiLookupDataSourceTypeEnum.WebService, + // DisplayExpr = "Name", + // ValueExpr = "Key", + // LookupQuery = "GET;notification-rule/notification-types;{};a;a;null", + // }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Identifier", + CaptionName = "App.Listform.ListformField.Identifier", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.NotificationIdentityValues + }), + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Message", + CaptionName = "App.Listform.ListformField.Message", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsSent", + CaptionName = "App.Listform.ListformField.IsSent", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsRead", + CaptionName = "App.Listform.ListformField.IsRead", + Width = 0, + ListOrderNo = 8, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.DateTime, + FieldName = "ReadTime", + CaptionName = "App.Listform.ListformField.ReadTime", + Width = 0, + ListOrderNo = 9, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ]); + #endregion + } + #endregion + + #region Background Worker Recurring Jobs + listFormName = AppCodes.BackgroundWorkers.RecurringJobs; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.BackgroundWorker)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { + new() { + ButtonPosition= UiCommandButtonPositionTypeEnum.Toolbar, + Hint = "App.Platform.HangfireLogin", + Text = "App.Platform.HangfireLogin", + AuthName=listFormName, + Url= swaggerRootUrl + "/Account/Login", + Icon = "login", + IsVisible = true, + }, + new() { + ButtonPosition= UiCommandButtonPositionTypeEnum.Toolbar, + Hint = "App.Platform.HangfireOpen", + Text = "App.Platform.HangfireOpen", + AuthName=listFormName, + Url= swaggerRootUrl + "/hangfire", + Icon = "runner", + IsVisible = true, + }, + new() { + ButtonPosition= UiCommandButtonPositionTypeEnum.Toolbar, + Hint = "App.Platform.HangfireRefresh", + Text = "App.Platform.HangfireRefresh", + AuthName=listFormName, + OnClick="UiEvalService.ApiGenerateBackgroundWorkers();", + Icon = "refresh", + IsVisible = true, + }, + }), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = $"UPDATE \"{FullNameTable(TableNameEnum.BackgroundWorker)}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 800, 700, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List() { + new() { Order=1, ColCount=2, ColSpan=1, ItemType="group" }, + new() { Order=2, ColCount=2, ColSpan=1, ItemType="group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value } + }) + } + ); + + #region Background Worker Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + SortIndex = 1, + SortDirection = GridColumnOptions.SortOrderAsc, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Cron", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Cron", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "WorkerType", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.WorkerType", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new() { Key=1, Name="App.StaticLookup.MailQueueWorker" }, + new() { Key=2, Name="App.StaticLookup.SqlWorker" }, + new() { Key=3, Name="App.StaticLookup.NotificationWorker" }, + new() { Key=4, Name="App.StaticLookup.SessionCleanupWorker" }, + new() { Key=5, Name="App.StaticLookup.BackupWorker" }, + }), + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "BeforeSp", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.BeforeSp", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "AfterSp", + EditGroupOrderNo = 1, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.AfterSp", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Options", + CaptionName = "App.Listform.ListformField.Options", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsActive", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsActive", + Width = 0, + ListOrderNo = 8, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ]); + #endregion + } + #endregion + + #region Background Worker Jobs + listFormName = AppCodes.BackgroundWorkers.Jobs; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.View, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.BackgroundWorker_JobFlow)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + PagerOptionJson = DefaultPagerOptionJson + } + ); + + #region Background Worker Job Flow Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "JobName", + CaptionName = "App.Listform.ListformField.JobName", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + SortIndex = 1, + SortDirection = GridColumnOptions.SortOrderAsc, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.DateTime, + FieldName = "ExecutionDate", + CaptionName = "App.Listform.ListformField.ExecutionDate", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "Duration", + CaptionName = "App.Listform.ListformField.Duration", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Status", + CaptionName = "App.Listform.ListformField.Status", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "FailureReason", + CaptionName = "App.Listform.ListformField.FailureReason", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "ExceptionType", + CaptionName = "App.Listform.ListformField.ExceptionType", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "ExceptionDetails", + CaptionName = "App.Listform.ListformField.ExceptionDetails", + Width = 0, + ListOrderNo = 8, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ]); + #endregion + } + #endregion + + #region Route + listFormName = AppCodes.Menus.Routes; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Route)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = $"UPDATE \"{FullNameTable(TableNameEnum.Route)}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 600, 550, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { + Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "RouteType", FieldDbType = DbType.String, Value = "public", CustomValueType = FieldCustomValueTypeEnum.Value } + }) + }); + + #region Route Fields + await _listFormFieldRepository.InsertManyAsync([ + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Key", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Key", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Path", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Path", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "ComponentType", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.ComponentType", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = false, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new () { Key="normal",Name="App.StaticLookup.Normal" }, + // new () { Key="dynamic",Name="App.StaticLookup.Dynamic" }, + }), + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "ComponentPath", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.ComponentPath", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "RouteType", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.RouteType", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + AllowSearch = false, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new () { Key="public",Name="App.Listform.ListformField.IsPublic" }, + new () { Key="protected",Name="App.StaticLookup.Protected" }, + new () { Key="authenticated",Name="App.StaticLookup.Authenticated" }, + }), + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Authority", + EditGroupOrderNo = 1, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Authority", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = LookupQueryValues.PermissionNameValues, + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + } + ]); + #endregion + } + #endregion + + #region Module + listFormName = AppCodes.Menus.Module; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Module)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.String, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 250, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, + }) + }); + + #region Module Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Id", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = true, + IsActive = true, + + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + ]); + #endregion + } + #endregion + + #region Menu + listFormName = AppCodes.Menus.Menu; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson("tree"), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Menu)), + KeyFieldName = "Code", + KeyFieldDbSourceType = DbType.String, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + PagerOptionJson = DefaultPagerOptionJson, + TreeOptionJson = DefaultTreeOptionJson("Code", "ParentCode", true), + EditingOptionJson = DefaultEditingOptionJson(listFormName, 800, 550, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List() { + new() { Order=1, ColCount=2, ColSpan=1, ItemType="group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(DbType.String, "Code"), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "IsDisabled", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value } + }) + } + ); + + #region Menu Fields + await _listFormFieldRepository.InsertManyAsync([ + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Code", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Platform.Code", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + SortIndex = 1, + SortDirection = GridColumnOptions.SortOrderAsc, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "DisplayName", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxAutocomplete, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.DisplayName", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = false, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.LanguageKeyValues + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "Order", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Order", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Url", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Path", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.RouteKeyValues + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Icon", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Icon", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "ParentCode", + EditGroupOrderNo = 1, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.ParentCode", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.MenuCodeValues + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "CssClass", + EditGroupOrderNo = 1, + EditOrderNo = 7, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.CssClass", + Width = 0, + ListOrderNo = 9, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "RequiredPermissionName", + EditGroupOrderNo = 1, + EditOrderNo = 8, + EditorType2 = EditorTypes.dxAutocomplete, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.RequiredPermissionName", + Width = 0, + ListOrderNo = 8, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.PermissionNameValues + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Target", + EditGroupOrderNo = 1, + EditOrderNo = 9, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Target", + Width = 0, + ListOrderNo = 10, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsDisabled", + EditGroupOrderNo = 1, + EditOrderNo = 10, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsDisabled", + Width = 0, + ListOrderNo = 11, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "ElementId", + EditGroupOrderNo = 1, + EditOrderNo = 11, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.ElementId", + Width = 0, + ListOrderNo = 12, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "ModuleId", + EditGroupOrderNo = 1, + EditOrderNo = 12, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.ModuleId", + Width = 0, + ListOrderNo = 13, + Visible = true, + IsActive = true, + + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = LookupQueryValues.ModuleValues, + }), + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ]); + + #endregion + } + #endregion + + #region Custom Endpoint + listFormName = AppCodes.DeveloperKits.CustomEndpoints; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.CustomEndpoint)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = $"UPDATE \"{FullNameTable(TableNameEnum.CustomEndpoint)}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 900, 700, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List() { + new() { Order=1, ColCount=2, ColSpan=1, ItemType="group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { + new() { + ButtonPosition= UiCommandButtonPositionTypeEnum.Toolbar, + Hint = "Swagger", + Text = "Swagger", + AuthName = listFormName, + Url= swaggerRootUrl + "/swagger/index.html", + Icon = "doc", + IsVisible = true + }, + }), + } + ); + + #region Custom Endpoint Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Description", + EditGroupOrderNo = 1, + EditOrderNo = 8, + EditorType2 = EditorTypes.dxTextArea, + ColSpan = 2, + EditorOptions = EditorOptions.Multiline(100), + CaptionName = "App.Listform.ListformField.Description", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Url", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Sender.Rocket.Url", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Method", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Method", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + SortIndex = 1, + SortDirection = GridColumnOptions.SortOrderAsc, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new () { Key="GET", Name="App.StaticLookup.Get" }, + new () { Key="POST", Name="App.StaticLookup.Post" }, + new () { Key="PUT", Name="App.StaticLookup.Put" }, + new () { Key="DELETE", Name="App.StaticLookup.Delete" }, + }), + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "DataSourceCode", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.DataSourceCode", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.DataSource), "Code", "Code"), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Sql", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxTextArea, + ColSpan = 2, + EditorOptions = EditorOptions.Multiline(60), + CaptionName = "App.Listform.ListformField.Sql", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "ParametersJson", + EditGroupOrderNo = 1, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxTextArea, + ColSpan = 2, + EditorOptions = EditorOptions.Multiline(60), + CaptionName = "App.Listform.ListformField.ParametersJson", + Width = 0, + ListOrderNo = 8, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PermissionsJson", + EditGroupOrderNo = 1, + EditOrderNo = 7, + EditorType2 = EditorTypes.dxTextArea, + ColSpan = 2, + EditorOptions = EditorOptions.Multiline(60), + CaptionName = "App.Listform.ListformField.PermissionsJson", + Width = 0, + ListOrderNo = 9, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ]); + #endregion + } + #endregion + + #region Dynamic Services + listFormName = AppCodes.DeveloperKits.DynamicServices; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + // Ekran yalnizca listeyi devralir; kod yazma ve yayinlama editor sayfasinda kalir. + var dynamicServiceTable = TableNameResolver.GetFullTableName(nameof(TableNameEnum.DynamicService)); + + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = JsonSerializer.Serialize(new LayoutDto + { + Grid = true, + Card = true, + Pivot = false, + Chart = false, + Tree = false, + Gantt = false, + Scheduler = false, + Todo = false, + DefaultLayout = "grid", + }), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = dynamicServiceTable, + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + PagerOptionJson = DefaultPagerOptionJson, + // Kayit acma/duzenleme Monaco editor diyalogunda; grid icinde popup form acilmaz. + // Ekleme, toolbar'in hazir Add butonuna baglanir (AddDialogName). + EditingOptionJson = JsonSerializer.Serialize(new GridEditingDto + { + AllowAdding = true, + AllowUpdating = false, + AllowDeleting = false, + UseIcons = false, + AddDialogName = "DynamicServiceEditor", + AddDialogParameters = JsonSerializer.Serialize(new { id = "" }), + }), + CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { + new() { + ButtonPosition = UiCommandButtonPositionTypeEnum.Toolbar, + Hint = "Swagger", + Text = "Swagger", + AuthName = listFormName, + Url = swaggerRootUrl + "/swagger/index.html", + Icon = "doc", + IsVisible = true, + }, + new() { + ButtonPosition = UiCommandButtonPositionTypeEnum.CommandColumn, + Hint = "App.Platform.Edit", + Text = "App.Platform.Edit", + AuthName = listFormName + ".Update", + DialogName = "DynamicServiceEditor", + DialogParameters = JsonSerializer.Serialize(new { id = "@Id" }), + IsVisible = true, + }, + new() { + ButtonPosition = UiCommandButtonPositionTypeEnum.CommandColumn, + Hint = "App.Platform.Delete", + Text = "App.Platform.Delete", + AuthName = listFormName + ".Delete", + // Assembly kaydinin da dusmesi icin silme servisten gecer, ham SQL ile degil. + OnClick = "UiEvalService.ApiDeleteDynamicService(e.row.data.Id, gridRef)", + IsVisible = true, + }, + }), + WidgetsJson = JsonSerializer.Serialize(new List + { + new() + { + ColGap = 3, + ColSpan = 3, + SqlQuery = $@" + SELECT + 'App.Platform.Success' AS ""Title"", + COUNT(*) AS ""Value"", + 'green' AS ""Color"", + 'App.DeveloperKitDynamicServices.SuccessfulDescription' AS ""SubTitle"", + 'FaCheckCircle' AS ""Icon"" + FROM ""{dynamicServiceTable}"" + WHERE ""IsDeleted"" = 'false' AND ""CompilationStatus"" = 'Success' + + UNION ALL + + SELECT + 'App.Platform.Failed' AS ""Title"", + COUNT(*) AS ""Value"", + 'red' AS ""Color"", + 'App.DeveloperKitDynamicServices.FailedDescription' AS ""SubTitle"", + 'FaTimesCircle' AS ""Icon"" + FROM ""{dynamicServiceTable}"" + WHERE ""IsDeleted"" = 'false' AND ""CompilationStatus"" = 'Failed' + + UNION ALL + + SELECT + 'App.Listform.ListformField.IsActive' AS ""Title"", + COUNT(*) AS ""Value"", + 'teal' AS ""Color"", + 'App.DeveloperKitDynamicServices.ActiveDescription' AS ""SubTitle"", + 'FaArrowUp' AS ""Icon"" + FROM ""{dynamicServiceTable}"" + WHERE ""IsDeleted"" = 'false' AND ""IsActive"" = 'true' + + UNION ALL + + SELECT + 'App.Platform.Passive' AS ""Title"", + COUNT(*) AS ""Value"", + 'gray' AS ""Color"", + 'App.DeveloperKitDynamicServices.PassiveDescription' AS ""SubTitle"", + 'FaArrowDown' AS ""Icon"" + FROM ""{dynamicServiceTable}"" + WHERE ""IsDeleted"" = 'false' AND ""IsActive"" = 'false' + ", + Title = "Title", + Value = "Value", + ValueClassName = "text-3xl", + Color = "Color", + Icon = "Icon", + SubTitle = "SubTitle", + ClassName = "mb-3", + IsActive = true + } + }), + } + ); + + #region Dynamic Services Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditorType2 = EditorTypes.dxTextBox, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "DisplayName", + EditorType2 = EditorTypes.dxTextBox, + CaptionName = "App.Listform.ListformField.DisplayName", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Description", + EditorType2 = EditorTypes.dxTextArea, + EditorOptions = EditorOptions.Multiline(60), + CaptionName = "App.Listform.ListformField.Description", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "CompilationStatus", + EditorType2 = EditorTypes.dxSelectBox, + CaptionName = "App.Listform.ListformField.CompilationStatus", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new () { Key = "Pending", Name = "App.DeveloperKitDynamicServices.FilterPending" }, + new () { Key = "Success", Name = "App.Platform.Success" }, + new () { Key = "Failed", Name = "App.Platform.Failed" }, + new () { Key = "InProgress", Name = "App.StaticLookup.InProgress" }, + }), + }), + ColumnStylingJson = JsonSerializer.Serialize(new List + { + new() { Condition = "=", ConditionValue = "Success", CssStyles = "color:#047857 | font-weight:600" }, + new() { Condition = "=", ConditionValue = "Failed", CssStyles = "color:#b91c1c | font-weight:600" }, + new() { Condition = "=", ConditionValue = "Pending", CssStyles = "color:#b45309 | font-weight:600" }, + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsActive", + EditorType2 = EditorTypes.dxCheckBox, + CaptionName = "App.Listform.ListformField.IsActive", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "Version", + EditorType2 = EditorTypes.dxNumberBox, + CaptionName = "App.Listform.ListformField.Version", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "ControllerName", + EditorType2 = EditorTypes.dxTextBox, + CaptionName = "App.Listform.ListformField.ControllerName", + Width = 0, + ListOrderNo = 8, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PrimaryEntityType", + EditorType2 = EditorTypes.dxTextBox, + CaptionName = "App.Listform.ListformField.PrimaryEntityType", + Width = 0, + ListOrderNo = 9, + Visible = false, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.DateTime, + FieldName = "LastSuccessfulCompilation", + EditorType2 = EditorTypes.dxDateBox, + CaptionName = "App.Listform.ListformField.LastSuccessfulCompilation", + Width = 0, + ListOrderNo = 10, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "LastCompilationError", + EditorType2 = EditorTypes.dxTextArea, + EditorOptions = EditorOptions.Multiline(60), + CaptionName = "App.Listform.ListformField.LastCompilationError", + Width = 0, + ListOrderNo = 11, + Visible = false, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.DateTime, + FieldName = "CreationTime", + EditorType2 = EditorTypes.dxDateBox, + CaptionName = "App.Listform.ListformField.CreationTime", + Width = 0, + ListOrderNo = 12, + Visible = true, + IsActive = true, + + SortIndex = 1, + SortDirection = GridColumnOptions.SortOrderDesc, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ]); + #endregion + } + #endregion + + #region Products + listFormName = AppCodes.Orders.Products; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Product)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Product)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 700, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "VatRate", FieldDbType = DbType.Decimal, Value = "0.20", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "IsQuantityBased", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value } + }) + }); + + #region Product Fields + await _listFormFieldRepository.InsertManyAsync([ + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxAutocomplete, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + AllowSearch = false, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.LanguageKeyValues + }), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Description", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxAutocomplete, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Description", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = false, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.LanguageKeyValues + }), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Category", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Category", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new () { Key="App.ProductsCategories.Uyelik",Name="App.ProductsCategories.Uyelik" }, + new () { Key="App.ProductsCategories.Lisans",Name="App.ProductsCategories.Lisans" }, + new () { Key="App.ProductsCategories.EkHizmetler",Name="App.ProductsCategories.EkHizmetler" }, + }), + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "Order", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Order", + Alignment = "center", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + EditorOptions=EditorOptions.Number() + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "MonthlyPrice", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + EditorOptions = EditorOptions.Number(), + CaptionName = "App.Listform.ListformField.MonthlyPrice", + Alignment = "right", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "YearlyPrice", + EditGroupOrderNo = 1, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + EditorOptions = EditorOptions.Number(), + CaptionName = "App.Listform.ListformField.YearlyPrice", + Alignment = "right", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "VatRate", + EditGroupOrderNo = 1, + EditOrderNo = 7, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + EditorOptions = EditorOptions.Number(), + CaptionName = "App.Listform.ListformField.VatRate", + Alignment = "right", + Width = 0, + ListOrderNo = 8, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsQuantityBased", + EditGroupOrderNo = 1, + EditOrderNo = 8, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsQuantityBased", + Width = 0, + ListOrderNo = 9, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "ImageUrl", + EditGroupOrderNo = 1, + EditOrderNo = 9, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.ImageUrl", + Width = 0, + ListOrderNo = 10, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + ]); + #endregion + } + #endregion + + #region PaymentMethods + listFormName = AppCodes.Orders.PaymentMethods; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.PaymentMethod)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.String, + SortMode = GridOptions.SortModeSingle, + DefaultFilter = DefaultFilterJson, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 350, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, + }), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.PaymentMethod)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(DbType.String, "Name"), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "Commission", FieldDbType = DbType.Decimal, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value } + }), + }); + + #region PaymentMethod Fields + await _listFormFieldRepository.InsertManyAsync([ + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "Commission", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + EditorOptions = EditorOptions.Number(), + CaptionName = "App.Listform.ListformField.Commission", + Alignment = "right", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Logo", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Logo", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + ]); + #endregion + } + #endregion + + #region InstallmentOptions + listFormName = AppCodes.Orders.InstallmentOptions; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.InstallmentOption)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + SortMode = GridOptions.SortModeSingle, + DefaultFilter = DefaultFilterJson, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 350, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, + }), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.InstallmentOption)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "Commission", FieldDbType = DbType.Decimal, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value } + }), + }); + + #region PaymentMethod Fields + await _listFormFieldRepository.InsertManyAsync([ + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Installment", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Installment", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "Commission", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + EditorOptions = EditorOptions.Number(), + CaptionName = "App.Listform.ListformField.Commission", + Alignment = "right", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + ]); + #endregion + } + #endregion + + #region Sales Orders + listFormName = AppCodes.Orders.SalesOrders; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = true, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Order)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Order)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 1200, 700, true, true, true, true, false, true), + CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { + new() { + Hint = "Tenant", + Text = "Tenant", + AuthName = TenantManagementPermissions.Tenants.Create, + DialogName = "CreateTenantFromOrderDialog", + DialogParameters = JsonSerializer.Serialize(new { + orderId = "@Id" + }), + IsVisible = true, + VisibleExpression = "(e) => !e.row?.data?.TenantId && e.row?.data?.ApprovalStatus === 'Approved'", + }, + }), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { Order=1, ColCount=4, ColSpan=1, ItemType="group" }, + new() { Order=2, ColCount=4, ColSpan=1, ItemType="group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "Country", FieldDbType = DbType.String, Value = "Türkiye", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "BillingCycle", FieldDbType = DbType.String, Value = "yearly", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "Period", FieldDbType = DbType.Int32, Value = "1", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "IsExisting", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "VatTotal", FieldDbType = DbType.Decimal, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "Commission", FieldDbType = DbType.Decimal, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value } + }), + SubFormsJson = JsonSerializer.Serialize(new List() { + new { + TabType = ListFormTabTypeEnum.List, + TabTitle = AppCodes.Orders.SalesOrderItem, + Code = AppCodes.Orders.SalesOrderItem, + Relation = new List() { + new { + ParentFieldName = "Id", + DbType = DbType.Guid, + ChildFieldName = "OrderId" + } + } + }, + }), + WorkflowJson = JsonSerializer.Serialize(new WorkflowDto + { + ApprovalUserFieldName = "ApprovalUserName", + ApprovalStatusFieldName = "ApprovalStatus", + ApprovalDateFieldName = "ApprovalDate", + ApprovalDescriptionFieldName = "ApprovalDescription", + Criteria = [] + }), + }, autoSave: true); + + #region Sales Order Workflow + await _listFormWorkflowRepository.InsertManyAsync([ + new ListFormWorkflow($"{listFormName}-N001") { ListFormCode = listFormName, Kind = "Start", Title = "İş Akışı Başlat1", CompareColumn="Price", CompareOperator=">", CompareValue=5000, Approver= "", NextOnStart = $"{listFormName}-N002", NextOnTrue = "", NextOnFalse = "", NextOnApprove= "", NextOnReject = "", PositionX = 47, PositionY = 76 }, + new ListFormWorkflow($"{listFormName}-N002") { ListFormCode = listFormName, Kind = "Approval", Title = "Onay1", CompareColumn="Price", CompareOperator=">", CompareValue=5000, Approver = "system@sozsoft.com", NextOnStart = "", NextOnTrue = "", NextOnFalse = "", NextOnApprove = $"{listFormName}-N003", NextOnReject = $"{listFormName}-N004", PositionX = 391, PositionY = 76 }, + new ListFormWorkflow($"{listFormName}-N003") { ListFormCode = listFormName, Kind = "End", Title = "Approved", CompareColumn="Price", CompareOperator=">", CompareValue=5000, Approver= "", NextOnStart = "", NextOnTrue = "", NextOnFalse = "", NextOnApprove = "", NextOnReject = "", PositionX = 843, PositionY = 61 }, + new ListFormWorkflow($"{listFormName}-N004") { ListFormCode = listFormName, Kind = "End", Title = "Rejected", CompareColumn="Price", CompareOperator=">", CompareValue=5000, Approver= "", NextOnStart = "", NextOnTrue = "", NextOnFalse = "", NextOnApprove = "", NextOnReject = "", PositionX = 845, PositionY = 263 }, + ]); + #endregion + + #region Sales Order Fields + await _listFormFieldRepository.InsertManyAsync([ + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "TenantId", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.TenantId", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.TenantValues(), + }), + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "OrganizationName", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.OrganizationName", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Founder", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Founder", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsExisting", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsExisting", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "BillingCycle", + EditGroupOrderNo = 2, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.BillingCycle", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new () { Key="yearly", Name="App.StaticLookup.Yearly" }, + new () { Key="monthly", Name="App.StaticLookup.Monthly" }, + }), + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "Period", + EditGroupOrderNo = 2, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Period", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.DateTime, + FieldName = "LicenseStartTime", + EditGroupOrderNo = 2, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxDateBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.LicenseStartTime", + Width = 0, + ListOrderNo = 8, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.DateTime, + FieldName = "LicenseEndTime", + EditGroupOrderNo = 2, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxDateBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.LicenseEndTime", + Width = 0, + ListOrderNo = 9, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int64, + FieldName = "VknTckn", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.VknTckn", + Width = 0, + ListOrderNo = 10, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "TaxOffice", + EditGroupOrderNo = 1, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.TaxOffice", + Width = 0, + ListOrderNo = 11, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Address1", + EditGroupOrderNo = 1, + EditOrderNo = 7, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Address1", + Width = 0, + ListOrderNo = 12, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Address2", + EditGroupOrderNo = 1, + EditOrderNo = 8, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Address2", + Width = 0, + ListOrderNo = 13, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Country", + EditGroupOrderNo = 1, + EditOrderNo = 9, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Country", + Width = 0, + ListOrderNo = 14, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.CountryValues, + CascadeEmptyFields = "City,District" + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "City", + EditGroupOrderNo = 1, + EditOrderNo = 10, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.City", + Width = 0, + ListOrderNo = 15, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.CityValues, + CascadeRelationField = "Country", + CascadeFilterOperator="=", + CascadeParentFields = "Country", + CascadeEmptyFields = "District" + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "District", + EditGroupOrderNo = 1, + EditOrderNo = 11, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.District", + Width = 0, + ListOrderNo = 16, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.DistrictValues, + CascadeRelationField = "City", + CascadeFilterOperator="=", + CascadeParentFields = "Country,City", + CascadeEmptyFields = "Township" + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Township", + EditGroupOrderNo = 1, + EditOrderNo = 12, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + EditorScript = EditorScript.Copy("Group", "PostalCode").OnChange(), + CaptionName = "App.Listform.ListformField.Township", + Width = 0, + ListOrderNo = 17, + Visible = true, + IsActive = true, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.TownshipValues, + CascadeRelationField = "District", + CascadeFilterOperator="=", + CascadeParentFields = "Country,City,District" + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PhoneNumber", + EditGroupOrderNo = 1, + EditOrderNo = 14, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + EditorOptions = EditorOptions.Phone(), + CaptionName = "Abp.Identity.User.UserInformation.PhoneNumber", + Width = 0, + ListOrderNo = 18, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "MobileNumber", + EditGroupOrderNo = 1, + EditOrderNo = 15, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + EditorOptions = EditorOptions.Phone(), + CaptionName = "App.Listform.ListformField.MobileNumber", + Width = 0, + ListOrderNo = 19, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int64, + FieldName = "FaxNumber", + EditGroupOrderNo = 1, + EditOrderNo = 16, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + EditorOptions = EditorOptions.Phone(), + CaptionName = "App.Listform.ListformField.FaxNumber", + Width = 0, + ListOrderNo = 20, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Website", + EditGroupOrderNo = 2, + EditOrderNo = 8, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Website", + Width = 0, + ListOrderNo = 21, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "Subtotal", + EditGroupOrderNo = 2, + EditOrderNo = 9, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + EditorOptions = EditorOptions.Number(), + CaptionName = "App.Listform.ListformField.Subtotal", + Alignment = "right", + Width = 0, + ListOrderNo = 22, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "VatTotal", + EditGroupOrderNo = 2, + EditOrderNo = 10, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + EditorOptions = EditorOptions.Number(), + CaptionName = "App.Listform.ListformField.VatTotal", + Alignment = "right", + Width = 0, + ListOrderNo = 23, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "Commission", + EditGroupOrderNo = 2, + EditOrderNo = 11, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + EditorOptions = EditorOptions.Number(), + CaptionName = "App.Listform.ListformField.Commission", + Alignment = "right", + Width = 0, + ListOrderNo = 24, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "Total", + EditGroupOrderNo = 2, + EditOrderNo = 12, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + EditorOptions = EditorOptions.Number(), + CaptionName = "App.Listform.ListformField.Total", + Alignment = "right", + Width = 0, + ListOrderNo = 25, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PaymentMethodId", + EditGroupOrderNo = 2, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.PaymentMethodId", + Width = 0, + ListOrderNo = 26, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.PaymentMethod), "Id", "Name"), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "Installment", + EditGroupOrderNo = 2, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Installment", + Width = 0, + ListOrderNo = 27, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.InstallmentOption), "Installment", "Name"), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsActive", + CaptionName = "App.Listform.ListformField.IsActive", + Width = 0, + ListOrderNo = 28, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + AllowAdding = false, + AllowEditing = false, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PostalCode", + EditGroupOrderNo = 1, + EditOrderNo = 13, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.PostalCode", + Width = 0, + ListOrderNo = 29, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Email", + EditGroupOrderNo = 2, + EditOrderNo = 7, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Email", + Width = 0, + ListOrderNo = 30, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleEmailRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "ApprovalUserName", + CaptionName = "App.Listform.ListformField.ApprovalUserName", + Width = 0, + ListOrderNo = 31, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "ApprovalStatus", + CaptionName = "App.Listform.ListformField.ApprovalStatus", + Width = 0, + ListOrderNo = 32, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.DateTime, + FieldName = "ApprovalDate", + CaptionName = "App.Listform.ListformField.ApprovalDate", + Width = 0, + ListOrderNo = 33, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "ApprovalDescription", + CaptionName = "App.Listform.ListformField.ApprovalDescription", + Width = 0, + ListOrderNo = 34, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + } + ]); + #endregion + } + #endregion + + #region Sales Order Item + listFormName = AppCodes.Orders.SalesOrderItem; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = true, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.OrderItem)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.OrderItem)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 600, 450, true, true, true, false, false), + EditingFormJson = JsonSerializer.Serialize(new List() { + new() { + Order=1, ColCount=1, ColSpan=1, ItemType="group" }, + }), + }, autoSave: true + ); + + #region Sales Order Item Fields + await _listFormFieldRepository.InsertManyAsync([ + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + SortIndex = 0, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "ProductId", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.ProductId", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = LookupQueryValues.ProductValues, + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "BillingCycle", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.BillingCycle", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new () { Key="yearly", Name="App.StaticLookup.Yearly" }, + new () { Key="monthly", Name="App.StaticLookup.Monthly" }, + }), + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "Quantity", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Quantity", + Alignment = "right", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + EditorOptions=EditorOptions.Number() + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "Price", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Price", + Alignment = "right", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + EditorOptions=EditorOptions.Number() + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "Period", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Period", + Alignment = "right", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + EditorOptions=EditorOptions.Number() + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "VatRate", + EditGroupOrderNo = 1, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.VatRate", + Alignment = "right", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + EditorOptions=EditorOptions.Number() + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "VatAmount", + EditGroupOrderNo = 1, + EditOrderNo = 7, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.VatAmount", + Alignment = "right", + Width = 0, + ListOrderNo = 8, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + EditorOptions = EditorOptions.Number(), + TotalSummaryJson = DefaultColumnTotalSummaryJson("VatAmount") + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "TotalPrice", + EditGroupOrderNo = 1, + EditOrderNo = 8, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.TotalPrice", + Alignment = "right", + Width = 0, + ListOrderNo = 9, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + EditorOptions=EditorOptions.Number(), + TotalSummaryJson = DefaultColumnTotalSummaryJson("TotalPrice") + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "OrderId", + CaptionName = "App.Listform.ListformField.OrderId", + Width = 0, + ListOrderNo = 10, + Visible = false, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + } + ], autoSave: true); + #endregion + } + #endregion + + #region ForumCategory + listFormName = AppCodes.ForumManagement.Categories; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.ForumCategory)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.ForumCategory)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 600, 550, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "IsLocked", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "DisplayOrder", FieldDbType = DbType.Int32, Value = "1", CustomValueType = FieldCustomValueTypeEnum.Value } + }) + }); + + #region ForumCategory Fields + await _listFormFieldRepository.InsertManyAsync([ + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Slug", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Slug", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Description", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxTextArea, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Description", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Icon", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Icon", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "DisplayOrder", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.DisplayOrder", + Alignment = "right", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsActive", + EditGroupOrderNo = 1, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsActive", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsLocked", + EditGroupOrderNo = 1, + EditOrderNo = 7, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsLocked", + Width = 0, + ListOrderNo = 8, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + ]); + #endregion + } + #endregion + + #region ForumTopic + listFormName = AppCodes.ForumManagement.Topics; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.ForumTopic)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.ForumTopic)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 800, 650, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, + }), + InsertFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "CreationTime", FieldDbType = DbType.DateTimeOffset, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { FieldName = "CreatorId", FieldDbType = DbType.Guid, Value = "@USERID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { FieldName = "Id", FieldDbType = DbType.Guid, Value = "@NEWID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { FieldName = "AuthorId", FieldDbType = DbType.Guid, Value = "@USERID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { FieldName = "ViewCount", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, + + new() { FieldName = "ReplyCount", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, + + new() { FieldName = "LikeCount", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, + + new() { FieldName = "IsPinned", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, + + new() { FieldName = "IsLocked", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, + + new() { FieldName = "IsSolved", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value } + + }) + }); + + #region ForumTopic Fields + await _listFormFieldRepository.InsertManyAsync([ + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.Guid, + + FieldName = "Id", + + CaptionName = "App.Listform.ListformField.Id", + + Width = 0, + + ListOrderNo = 1, + + Visible = false, + + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.String, + + FieldName = "Title", + + EditGroupOrderNo = 1, + + EditOrderNo = 1, + + EditorType2 = EditorTypes.dxTextBox, + + ColSpan = 1, + + CaptionName = "App.Listform.ListformField.Title", + + Width = 0, + + ListOrderNo = 2, + + Visible = true, + + IsActive = true, + + AllowSearch = true, + + ValidationRuleJson = DefaultValidationRuleRequiredJson, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.Guid, + + FieldName = "CategoryId", + + EditGroupOrderNo = 1, + + EditOrderNo = 2, + + EditorType2 = EditorTypes.dxSelectBox, + + ColSpan = 1, + + EditorOptions = EditorOptions.ShowClearButton(), + + CaptionName = "App.Listform.ListformField.Category", + + Width = 0, + + ListOrderNo = 3, + + Visible = true, + + IsActive = true, + + AllowSearch = true, + + ValidationRuleJson = DefaultValidationRuleRequiredJson, + + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.ForumCategory), "Id", "Name"), + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.String, + + FieldName = "Content", + + EditGroupOrderNo = 1, + + EditOrderNo = 3, + + EditorType2 = EditorTypes.dxTextArea, + + ColSpan = 1, + + CaptionName = "App.Listform.ListformField.Content", + + Width = 0, + + ListOrderNo = 4, + + Visible = false, + + IsActive = true, + + ValidationRuleJson = DefaultValidationRuleRequiredJson, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.Guid, + + FieldName = "AuthorId", + + CaptionName = "App.Listform.ListformField.Author", + + Width = 0, + + ListOrderNo = 5, + + Visible = false, + + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.String, + + FieldName = "AuthorName", + + EditGroupOrderNo = 1, + + EditOrderNo = 4, + + EditorType2 = EditorTypes.dxTextBox, + + ColSpan = 1, + + CaptionName = "App.Listform.ListformField.AuthorName", + + Width = 0, + + ListOrderNo = 6, + + Visible = true, + + IsActive = true, + + AllowSearch = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.String, + + FieldName = "AuthorTitle", + + EditGroupOrderNo = 1, + + EditOrderNo = 5, + + EditorType2 = EditorTypes.dxTextBox, + + ColSpan = 1, + + CaptionName = "App.Listform.ListformField.AuthorTitle", + + Width = 0, + + ListOrderNo = 7, + + Visible = false, + + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.String, + + FieldName = "AuthorEmail", + + EditGroupOrderNo = 1, + + EditOrderNo = 6, + + EditorType2 = EditorTypes.dxTextBox, + + ColSpan = 1, + + CaptionName = "App.Listform.ListformField.Email", + + Width = 0, + + ListOrderNo = 8, + + Visible = false, + + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.String, + + FieldName = "AuthorPhoneNumber", + + EditGroupOrderNo = 1, + + EditOrderNo = 7, + + EditorType2 = EditorTypes.dxTextBox, + + ColSpan = 1, + + CaptionName = "App.Listform.ListformField.PhoneNumber", + + Width = 0, + + ListOrderNo = 9, + + Visible = false, + + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.String, + + FieldName = "AuthorDepartment", + + EditGroupOrderNo = 1, + + EditOrderNo = 8, + + EditorType2 = EditorTypes.dxTextBox, + + ColSpan = 1, + + CaptionName = "App.Listform.ListformField.Department", + + Width = 0, + + ListOrderNo = 10, + + Visible = false, + + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.Int32, + + FieldName = "ViewCount", + + CaptionName = "App.Listform.ListformField.ViewCount", + + Alignment = "right", + + Width = 0, + + ListOrderNo = 11, + + Visible = true, + + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.Int32, + + FieldName = "ReplyCount", + + CaptionName = "App.Listform.ListformField.ReplyCount", + + Alignment = "right", + + Width = 0, + + ListOrderNo = 12, + + Visible = true, + + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.Int32, + + FieldName = "LikeCount", + + CaptionName = "App.Listform.ListformField.LikeCount", + + Alignment = "right", + + Width = 0, + + ListOrderNo = 13, + + Visible = true, + + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.Boolean, + + FieldName = "IsPinned", + + EditGroupOrderNo = 1, + + EditOrderNo = 9, + + EditorType2 = EditorTypes.dxCheckBox, + + ColSpan = 1, + + CaptionName = "App.Listform.ListformField.IsPinned", + + Width = 0, + + ListOrderNo = 14, + + Visible = true, + + IsActive = true, + + AllowSearch = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.Boolean, + + FieldName = "IsLocked", + + EditGroupOrderNo = 1, + + EditOrderNo = 10, + + EditorType2 = EditorTypes.dxCheckBox, + + ColSpan = 1, + + CaptionName = "App.Listform.ListformField.IsLocked", + + Width = 0, + + ListOrderNo = 15, + + Visible = true, + + IsActive = true, + + AllowSearch = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.Boolean, + + FieldName = "IsSolved", + + EditGroupOrderNo = 1, + + EditOrderNo = 11, + + EditorType2 = EditorTypes.dxCheckBox, + + ColSpan = 1, + + CaptionName = "App.Listform.ListformField.IsSolved", + + Width = 0, + + ListOrderNo = 16, + + Visible = true, + + IsActive = true, + + AllowSearch = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + ]); + #endregion + } + #endregion + + #region ForumPost + listFormName = AppCodes.ForumManagement.Posts; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.ForumPost)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.ForumPost)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 800, 600, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, + }), + InsertFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "CreationTime", FieldDbType = DbType.DateTimeOffset, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { FieldName = "CreatorId", FieldDbType = DbType.Guid, Value = "@USERID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { FieldName = "Id", FieldDbType = DbType.Guid, Value = "@NEWID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { FieldName = "AuthorId", FieldDbType = DbType.Guid, Value = "@USERID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { FieldName = "LikeCount", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, + + new() { FieldName = "IsAcceptedAnswer", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value } + + }) + }); + + #region ForumPost Fields + await _listFormFieldRepository.InsertManyAsync([ + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.Guid, + + FieldName = "Id", + + CaptionName = "App.Listform.ListformField.Id", + + Width = 0, + + ListOrderNo = 1, + + Visible = false, + + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.Guid, + + FieldName = "TopicId", + + EditGroupOrderNo = 1, + + EditOrderNo = 1, + + EditorType2 = EditorTypes.dxSelectBox, + + ColSpan = 1, + + EditorOptions = EditorOptions.ShowClearButton(), + + CaptionName = "App.Listform.ListformField.Topic", + + Width = 0, + + ListOrderNo = 2, + + Visible = true, + + IsActive = true, + + AllowSearch = true, + + ValidationRuleJson = DefaultValidationRuleRequiredJson, + + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.ForumTopic), "Id", "Title"), + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.String, + + FieldName = "Content", + + EditGroupOrderNo = 1, + + EditOrderNo = 2, + + EditorType2 = EditorTypes.dxTextArea, + + ColSpan = 1, + + CaptionName = "App.Listform.ListformField.Content", + + Width = 0, + + ListOrderNo = 3, + + Visible = true, + + IsActive = true, + + AllowSearch = true, + + ValidationRuleJson = DefaultValidationRuleRequiredJson, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.Guid, + + FieldName = "AuthorId", + + CaptionName = "App.Listform.ListformField.Author", + + Width = 0, + + ListOrderNo = 4, + + Visible = false, + + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.String, + + FieldName = "AuthorName", + + EditGroupOrderNo = 1, + + EditOrderNo = 3, + + EditorType2 = EditorTypes.dxTextBox, + + ColSpan = 1, + + CaptionName = "App.Listform.ListformField.AuthorName", + + Width = 0, + + ListOrderNo = 5, + + Visible = true, + + IsActive = true, + + AllowSearch = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.String, + + FieldName = "AuthorTitle", + + EditGroupOrderNo = 1, + + EditOrderNo = 4, + + EditorType2 = EditorTypes.dxTextBox, + + ColSpan = 1, + + CaptionName = "App.Listform.ListformField.AuthorTitle", + + Width = 0, + + ListOrderNo = 6, + + Visible = false, + + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.String, + + FieldName = "AuthorEmail", + + EditGroupOrderNo = 1, + + EditOrderNo = 5, + + EditorType2 = EditorTypes.dxTextBox, + + ColSpan = 1, + + CaptionName = "App.Listform.ListformField.Email", + + Width = 0, + + ListOrderNo = 7, + + Visible = false, + + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.String, + + FieldName = "AuthorPhoneNumber", + + EditGroupOrderNo = 1, + + EditOrderNo = 6, + + EditorType2 = EditorTypes.dxTextBox, + + ColSpan = 1, + + CaptionName = "App.Listform.ListformField.PhoneNumber", + + Width = 0, + + ListOrderNo = 8, + + Visible = false, + + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.String, + + FieldName = "AuthorDepartment", + + EditGroupOrderNo = 1, + + EditOrderNo = 7, + + EditorType2 = EditorTypes.dxTextBox, + + ColSpan = 1, + + CaptionName = "App.Listform.ListformField.Department", + + Width = 0, + + ListOrderNo = 9, + + Visible = false, + + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.Int32, + + FieldName = "LikeCount", + + CaptionName = "App.Listform.ListformField.LikeCount", + + Alignment = "right", + + Width = 0, + + ListOrderNo = 10, + + Visible = true, + + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.Boolean, + + FieldName = "IsAcceptedAnswer", + + EditGroupOrderNo = 1, + + EditOrderNo = 8, + + EditorType2 = EditorTypes.dxCheckBox, + + ColSpan = 1, + + CaptionName = "App.Listform.ListformField.IsAcceptedAnswer", + + Width = 0, + + ListOrderNo = 11, + + Visible = true, + + IsActive = true, + + AllowSearch = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + new() + + { + + ListFormCode = listForm.ListFormCode, + + CultureName = LanguageCodes.En, + + SourceDbType = DbType.Guid, + + FieldName = "ParentPostId", + + CaptionName = "App.Listform.ListformField.ParentPost", + + Width = 0, + + ListOrderNo = 12, + + Visible = false, + + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + + PivotSettingsJson = DefaultPivotSettingsJson, + + }, + + ]); + #endregion + } + #endregion + + #region BlogCategory + listFormName = AppCodes.BlogManagement.BlogCategory; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.BlogCategory)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.BlogCategory)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 600, 550, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value } + }) + }); + + #region BlogCategory Fields + await _listFormFieldRepository.InsertManyAsync([ + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxAutocomplete, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + AllowSearch = false, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.LanguageKeyValues + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Slug", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Slug", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Description", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxAutocomplete, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Description", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + AllowSearch = false, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.LanguageKeyValues + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Icon", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Icon", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "DisplayOrder", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.DisplayOrder", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsActive", + EditGroupOrderNo = 1, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsActive", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + } + ]); + #endregion + } + #endregion + + #region BlogPost + listFormName = AppCodes.BlogManagement.BlogPosts; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.BlogPost)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.BlogPost)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 1000, 700, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { Order = 1, ColCount = 2, ColSpan = 1, ItemType = "group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "IsPublished", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "PublishedAt", FieldDbType = DbType.DateTime, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { FieldName = "ViewCount", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "LikeCount", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "CommentCount", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value } + }) + }); + + #region BlogPosts Fields + await _listFormFieldRepository.InsertManyAsync([ + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Title", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxAutocomplete, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Title", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + AllowSearch = false, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.LanguageKeyValues + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Slug", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Slug", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Summary", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxAutocomplete, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Summary", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + AllowSearch = false, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.LanguageKeyValues + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "CoverImage", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.CoverImage", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.DateTime, + FieldName = "ReadTime", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.ReadTime", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "CategoryId", + EditGroupOrderNo = 1, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Category", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.BlogCategory), "Id", "Name"), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Author", + EditGroupOrderNo = 1, + EditOrderNo = 7, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Author", + Width = 0, + ListOrderNo = 8, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "ViewCount", + EditGroupOrderNo = 1, + EditOrderNo = 8, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + EditorOptions = EditorOptions.Number(), + CaptionName = "App.Listform.ListformField.ViewCount", + Width = 0, + ListOrderNo = 9, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "LikeCount", + EditGroupOrderNo = 1, + EditOrderNo = 9, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + EditorOptions = EditorOptions.Number(), + CaptionName = "App.Listform.ListformField.LikeCount", + Width = 0, + ListOrderNo = 10, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "CommentCount", + EditGroupOrderNo = 1, + EditOrderNo = 10, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + EditorOptions = EditorOptions.Number(), + CaptionName = "App.Listform.ListformField.CommentCount", + Width = 0, + ListOrderNo = 11, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsPublished", + EditGroupOrderNo = 1, + EditOrderNo = 11, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsPublished", + Width = 0, + ListOrderNo = 12, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.DateTime, + FieldName = "PublishedAt", + EditGroupOrderNo = 1, + EditOrderNo = 12, + EditorType2 = EditorTypes.dxDateBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.PublishedAt", + Width = 0, + ListOrderNo = 13, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "ContentTr", + EditGroupOrderNo = 1, + EditOrderNo = 13, + EditorType2 = EditorTypes.dxHtmlEditor, + ColSpan = 2, + EditorOptions = EditorOptions.Html(), + CaptionName = "App.Listform.ListformField.ContentTr", + Width = 0, + ListOrderNo = 14, + Visible = false, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "ContentEn", + EditGroupOrderNo = 1, + EditOrderNo = 14, + EditorType2 = EditorTypes.dxHtmlEditor, + ColSpan = 2, + EditorOptions = EditorOptions.Html(), + CaptionName = "App.Listform.ListformField.ContentEn", + Width = 0, + ListOrderNo = 15, + Visible = false, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + } + ]); + #endregion + } + #endregion + + #region Demos + listFormName = AppCodes.Demos; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Demo)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 750, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { + Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, + }), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Demo)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "NumberOfBranches", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "NumberOfUsers", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, + }) + }); + + #region Demos Fields + await _listFormFieldRepository.InsertManyAsync([ + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "OrganizationName", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.OrganizationName", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Email", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Email", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleEmailRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PhoneNumber", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + EditorOptions = EditorOptions.Phone(), + CaptionName = "Abp.Identity.User.UserInformation.PhoneNumber", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Address", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxTextArea, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Address", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "NumberOfBranches", + EditGroupOrderNo = 1, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.NumberOfBranches", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "NumberOfUsers", + EditGroupOrderNo = 1, + EditOrderNo = 7, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.NumberOfUsers", + Width = 0, + ListOrderNo = 8, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Message", + EditGroupOrderNo = 1, + EditOrderNo = 8, + EditorType2 = EditorTypes.dxTextArea, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Message", + Width = 0, + ListOrderNo = 9, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + ]); + #endregion + + } + #endregion + + #region DevRequests + listFormName = AppCodes.DevRequests; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson("todo"), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.DevRequest)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.DevRequest)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + EditingOptionJson = DefaultEditingOptionJson(listFormName, 800, 800, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { Order = 1, ColCount = 2, ColSpan = 1, ItemType = "group" }, + }), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "TenantId", FieldDbType = DbType.String, Value = "@TENANTID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { FieldName = "UserName", FieldDbType = DbType.String, Value = "@USERNAME", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { FieldName = "RequestDate", FieldDbType = DbType.Date, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { FieldName = "Importance", FieldDbType = DbType.String, Value = "Low", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "Urgency", FieldDbType = DbType.String, Value = "Low", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "Status", FieldDbType = DbType.String, Value = "Backlog", CustomValueType = FieldCustomValueTypeEnum.Value }, + }), + TodoOptionJson = DefaultTodoOptionJson() + }); + + #region DevRequest Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 0, + Visible = false, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "TenantId", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.TenantId", + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.TenantValues(), + }), + Width = 0, + ListOrderNo = 1, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + EditorOptions = EditorOptions.Disabled() + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "UserName", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "Abp.Mailing.Smtp.UserName", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + EditorOptions = EditorOptions.Disabled() + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Date, + FieldName = "RequestDate", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxDateBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.RequestDate", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Status", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxSelectBox, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new () { Key="Backlog", Name="App.StaticLookup.Backlog" }, + new () { Key="Ready to Start", Name="App.StaticLookup.ReadyToStart" }, + new () { Key="In Progress", Name="App.StaticLookup.InProgress" }, + new () { Key="Code Review", Name="App.StaticLookup.CodeReview" }, + new () { Key="Testing", Name="App.StaticLookup.Testing" }, + new () { Key="Staging", Name="App.StaticLookup.Staging" } + }), + }), + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Status", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + EditorOptions = EditorOptions.Disabled() + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Title", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 2, + CaptionName = "App.Listform.ListformField.Title", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Description", + EditGroupOrderNo = 1, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxHtmlEditor, + ColSpan = 2, + CaptionName = "App.Listform.ListformField.Description", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + EditorOptions = EditorOptions.Html() + }, + + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.DateTime, + FieldName = "DueDate", + ColSpan = 1, + CaptionName = "App.Listform.ListformField.DueDate", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Tags", + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Tags", + Width = 0, + ListOrderNo = 8, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Assignees", + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Assignees", + Width = 0, + ListOrderNo = 9, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + EditorOptions = EditorOptions.Disabled() + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Priority", + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Priority", + Width = 0, + ListOrderNo = 10, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "Completed", + CaptionName = "App.Listform.ListformField.Completed", + Width = 0, + ListOrderNo = 11, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "SortOrder", + CaptionName = "App.Listform.ListformField.SortOrder", + Width = 0, + ListOrderNo = 12, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Timesheets", + CaptionName = "App.Listform.ListformField.Timesheets", + Width = 0, + ListOrderNo = 13, + Visible = false, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "SubTasks", + CaptionName = "App.Listform.ListformField.SubTasks", + Width = 0, + ListOrderNo = 14, + Visible = false, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ]); + #endregion + } + #endregion + + #region IntranetWidget + listFormName = AppCodes.DeveloperKits.IntranetWidgets; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.IntranetWidget)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeMultiple, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.IntranetWidget)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = true, + SeedSyncUpdate = true, + SeedSyncDelete = true, + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + EditingOptionJson = DefaultEditingOptionJson(listFormName, 850, 560, true, true, true, true, false), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value } + }), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { Order = 1, ColCount = 2, ColSpan = 2, ItemType = "group" }, + }), + }); + + #region IntranetWidget Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Code", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Code", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "SourceType", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.SourceType", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new () { Key = (int)IntranetWidgetSourceType.Builtin, Name = "App.StaticLookup.Builtin" }, + new () { Key = (int)IntranetWidgetSourceType.Custom, Name = "App.StaticLookup.Custom" }, + }), + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "ComponentName", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.ComponentName", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.CustomComponentValues, + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "Column", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Column", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + AllowSearch = true, + SortIndex = 1, + SortDirection = GridColumnOptions.SortOrderAsc, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new () { Key = (int)IntranetWidgetColumn.Left, Name = "App.StaticLookup.Left" }, + new () { Key = (int)IntranetWidgetColumn.Center, Name = "App.StaticLookup.Center" }, + new () { Key = (int)IntranetWidgetColumn.Right, Name = "App.StaticLookup.Right" }, + }), + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "Order", + EditGroupOrderNo = 1, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + EditorOptions = EditorOptions.Number(0), + CaptionName = "App.Listform.ListformField.Order", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + AllowSearch = true, + SortIndex = 2, + SortDirection = GridColumnOptions.SortOrderAsc, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "LabelKey", + EditGroupOrderNo = 1, + EditOrderNo = 7, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.LabelKey", + Width = 0, + ListOrderNo = 8, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PermissionName", + EditGroupOrderNo = 1, + EditOrderNo = 8, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.PermissionName", + Width = 0, + ListOrderNo = 9, + Visible = true, + IsActive = true, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.PermissionNameValues, + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsActive", + EditGroupOrderNo = 1, + EditOrderNo = 9, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsActive", + Width = 0, + ListOrderNo = 10, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Props", + EditGroupOrderNo = 1, + EditOrderNo = 10, + EditorType2 = EditorTypes.dxTextArea, + ColSpan = 2, + EditorOptions = EditorOptions.Multiline(120), + CaptionName = "App.Listform.ListformField.Props", + Width = 0, + ListOrderNo = 11, + Visible = false, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + } + ]); + #endregion + } + #endregion + } +} diff --git a/api/src/Sozsoft.Platform.DbMigrator/Migrations/MenusData.json b/api/src/Sozsoft.Platform.DbMigrator/Migrations/MenusData.json index 2c5fd560..580ea277 100644 --- a/api/src/Sozsoft.Platform.DbMigrator/Migrations/MenusData.json +++ b/api/src/Sozsoft.Platform.DbMigrator/Migrations/MenusData.json @@ -328,30 +328,6 @@ "routeType": "protected", "authority": ["App.SqlQueryManager"] }, - { - "key": "admin.developerkit.dynamic-services", - "path": "/admin/developerkit/dynamic-services", - "componentType": "normal", - "componentPath": "@/views/developerKit/DynamicServiceManager", - "routeType": "protected", - "authority": ["App.DeveloperKit.DynamicServices"] - }, - { - "key": "admin.developerkit.dynamic-services.new", - "path": "/admin/developerkit/dynamic-services/new", - "componentType": "normal", - "componentPath": "@/views/developerKit/DynamicServiceEditor", - "routeType": "protected", - "authority": ["App.DeveloperKit.DynamicServices"] - }, - { - "key": "admin.developerkit.dynamic-services.edit", - "path": "/admin/developerkit/dynamic-services/edit/:id", - "componentType": "normal", - "componentPath": "@/views/developerKit/DynamicServiceEditor", - "routeType": "protected", - "authority": ["App.DeveloperKit.DynamicServices"] - }, { "key": "admin.developerkit.components", "path": "/admin/developerkit/components", @@ -1013,7 +989,7 @@ "Code": "App.DeveloperKit.DynamicServices", "DisplayName": "App.DeveloperKit.DynamicServices", "Order": 4, - "Url": "/admin/developerkit/dynamic-services", + "Url": "/admin/list/App.DeveloperKit.DynamicServices", "Icon": "FcCommandLine", "RequiredPermissionName": "App.DeveloperKit.DynamicServices", "IsDisabled": false, diff --git a/api/src/Sozsoft.Platform.Domain/Data/SeedConsts.cs b/api/src/Sozsoft.Platform.Domain/Data/SeedConsts.cs index 19fbeeb7..f06a5c1e 100644 --- a/api/src/Sozsoft.Platform.Domain/Data/SeedConsts.cs +++ b/api/src/Sozsoft.Platform.Domain/Data/SeedConsts.cs @@ -474,6 +474,8 @@ public static class SeedConsts public const string CustomEndpoints = Default + ".CustomEndpoints"; public const string IntranetWidgets = Default + ".IntranetWidgets"; + + public const string DynamicServices = Default + ".DynamicServices"; } public const string Forum = Prefix.App + ".Forum"; diff --git a/ui/src/components/shared/DbMigrateLogPanel.tsx b/ui/src/components/shared/DbMigrateLogPanel.tsx index 1dddbb1e..c190fdd2 100644 --- a/ui/src/components/shared/DbMigrateLogPanel.tsx +++ b/ui/src/components/shared/DbMigrateLogPanel.tsx @@ -46,7 +46,7 @@ function DbMigrateLogPanel({ onClose }: DbMigrateLogPanelProps) { return (
-
+
DB Migration Logs {/* diff --git a/ui/src/components/ui/Widget/WidgetGroup.tsx b/ui/src/components/ui/Widget/WidgetGroup.tsx index dabba552..bbabc30f 100644 --- a/ui/src/components/ui/Widget/WidgetGroup.tsx +++ b/ui/src/components/ui/Widget/WidgetGroup.tsx @@ -2,9 +2,15 @@ import classNames from 'classnames' import Widget, { type colorType } from './Widget' import { WidgetEditDto, WidgetGroupDto } from '@/proxy/form/models' import { useNavigate } from 'react-router-dom' +import { useLocalization } from '@/utils/hooks/useLocalization' export default function WidgetGroup({ widgetGroups }: { widgetGroups: WidgetGroupDto[] }) { const navigate = useNavigate() + const { translate } = useLocalization() + + // Sorgudan gelen basliklar dil anahtaridir; karsiligi yoksa translate metni aynen dondurur, + // boylece duz metin donduren eski widget sorgulari da calismaya devam eder. + const asText = (value?: string) => (value ? translate('::' + value) : value) return (
@@ -28,11 +34,11 @@ export default function WidgetGroup({ widgetGroups }: { widgetGroups: WidgetGrou style={{ gridColumn: `span ${group.colSpan} / span ${group.colSpan}` }} > { if (item.onClick) { diff --git a/ui/src/proxy/form/models.ts b/ui/src/proxy/form/models.ts index 2d0babff..0cd63506 100644 --- a/ui/src/proxy/form/models.ts +++ b/ui/src/proxy/form/models.ts @@ -497,6 +497,8 @@ export interface GridEditingDto { isBranch: boolean isOrganizationUnit: boolean addPageUrl?: string + addDialogName?: string + addDialogParameters?: string } export interface EditingFormDto { diff --git a/ui/src/routes/route.constant.ts b/ui/src/routes/route.constant.ts index e638da16..73df520f 100644 --- a/ui/src/routes/route.constant.ts +++ b/ui/src/routes/route.constant.ts @@ -41,9 +41,6 @@ entitiesEdit: '/admin/developerkit/entities/edit/:id', components: '/admin/developerkit/components', componentsEdit: '/admin/developerkit/components/edit/:id', - dynamicServices: '/admin/developerkit/dynamic-services', - dynamicServicesNew: '/admin/developerkit/dynamic-services/new', - dynamicServicesEdit: '/admin/developerkit/dynamic-services/edit/:id', }, reports: { view: '/admin/reports/:report/view/:id?/:listFormCode?', diff --git a/ui/src/services/UiEvalService.tsx b/ui/src/services/UiEvalService.tsx index c856d780..ff814c26 100644 --- a/ui/src/services/UiEvalService.tsx +++ b/ui/src/services/UiEvalService.tsx @@ -4,6 +4,7 @@ import { getLocalization } from '@/services/localization.service' import { store } from '@/store' import { clearRedisCache } from './languageText.service' import { kickUser } from './identity.service' +import { dynamicServiceService } from './dynamicService.service' import { streamSetupMigrate } from './setup.service' import { openDbMigrateLogPanel, dispatchMigrateLog, dispatchMigrateDone } from '@/components/shared/DbMigrateLogPanel' @@ -54,6 +55,39 @@ export abstract class UiEvalService { }, '::App.KickUser.KickUserMessage') } + /** + * Dynamic Service kaydını siler. Ham SQL yerine servisten geçer; yalnızca böyle + * yüklenmiş assembly ve Swagger kaydı da runtime'dan düşer. + */ + static ApiDeleteDynamicService = (id: string, gridRef?: any) => { + if (!id) return + if (!window.confirm(UiEvalService.translate('::App.DeveloperKitDynamicServices.DeleteConfirm'))) { + return + } + + void dynamicServiceService + .delete(id) + .then(() => { + if (gridRef?.current) { + gridRef.current.instance().refresh() + } + toast.push( + + {UiEvalService.translate('::App.Platform.ObjectDeletedSuccessfully')} + , + { placement: 'bottom-end' }, + ) + }) + .catch(() => { + toast.push( + + {UiEvalService.translate('::App.DeveloperKitDynamicServices.DeleteError')} + , + { placement: 'bottom-end' }, + ) + }) + } + /** * Canlı sistemde migration tetikler (SQL Query Manager ve Wizard dosya yöneticisi ortak kullanır). * Yetki sunucu tarafında `App.Setup.Migrate` izniyle doğrulanır. diff --git a/ui/src/services/dynamicService.service.ts b/ui/src/services/dynamicService.service.ts index dc7663c5..041117d9 100644 --- a/ui/src/services/dynamicService.service.ts +++ b/ui/src/services/dynamicService.service.ts @@ -57,25 +57,9 @@ export interface PublishDto { isActive?: boolean } -export interface DynamicAppServiceListResult { - items: DynamicServiceDto[] - totalCount: number -} - class DynamicServiceService { private readonly baseUrl = '/api/app/dynamic-app-service' - /** - * Tüm dynamic app service'leri listele - */ - async getList(): Promise { - const response = await apiService.fetchData({ - url: this.baseUrl, - method: 'GET', - }) - return response.data - } - /** * ID'ye göre dynamic app service detayını getir */ @@ -87,30 +71,6 @@ class DynamicServiceService { return response.data } - /** - * Yeni dynamic app service oluştur - */ - async create(data: DynamicServiceDto): Promise { - const response = await apiService.fetchData({ - url: this.baseUrl, - method: 'POST', - data: data as any, - }) - return response.data - } - - /** - * Dynamic app service güncelle - */ - async update(id: string, data: Partial): Promise { - const response = await apiService.fetchData({ - url: `${this.baseUrl}/${id}`, - method: 'PUT', - data: data as any, - }) - return response.data - } - /** * Dynamic app service sil */ @@ -144,28 +104,6 @@ class DynamicServiceService { }) return response.data } - - /** - * Dynamic app service'i aktif/pasif yap - */ - async toggleActive(id: string, isActive: boolean): Promise { - await apiService.fetchData({ - url: `${this.baseUrl}/${id}/toggle-active`, - method: 'POST', - data: { isActive } as any, - }) - } - - /** - * Compilation durumunu getir - */ - async getCompilationStatus(id: string): Promise<{ status: string; error?: string }> { - const response = await apiService.fetchData<{ status: string; error?: string }>({ - url: `${this.baseUrl}/${id}/compilation-status`, - method: 'GET', - }) - return response.data - } } export const dynamicServiceService = new DynamicServiceService() diff --git a/ui/src/views/admin/listForm/edit/FormTabEdit.tsx b/ui/src/views/admin/listForm/edit/FormTabEdit.tsx index 15deeb46..a9386254 100644 --- a/ui/src/views/admin/listForm/edit/FormTabEdit.tsx +++ b/ui/src/views/admin/listForm/edit/FormTabEdit.tsx @@ -75,6 +75,38 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) { component={Input} /> + + + + + + +
+
+
+ + + -
-
+
- - - (PivotSettingsAreaEnum export const pivotSettingsGroupIntervalOptions = enumToList(PivotSettingsGroupIntervalEnum) export const pivotSortDirectionOptions = enumToList(ColumnSortDirectionEnum) export const widgetColorOptions = enumToList(WidgetColorEnum) -export const widgetIconOptions = iconList.map((icon) => ({ - value: icon, - label: icon, -})) // Tema renk haritası (border ve fill) const styleColorMap: Record< string, diff --git a/ui/src/views/developerKit/DynamicServiceEditor.tsx b/ui/src/views/developerKit/DynamicServiceEditor.tsx index abcf979a..15693d8c 100644 --- a/ui/src/views/developerKit/DynamicServiceEditor.tsx +++ b/ui/src/views/developerKit/DynamicServiceEditor.tsx @@ -1,5 +1,4 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react' -import { useParams, useNavigate, Link } from 'react-router-dom' import { Editor } from '@monaco-editor/react' import type { editor } from 'monaco-editor' import { @@ -8,7 +7,6 @@ import { FaCheckCircle, FaExclamationCircle, FaSpinner, - FaArrowLeft, FaCog, FaCode, FaSave, @@ -19,9 +17,9 @@ import { type CompileResult, type PublishResult, } from '@/services/dynamicService.service' -import PageTitle from '@/components/shared/PageTitle' -import { ROUTES_ENUM } from '@/routes/route.constant' +import { Container } from '@/components/shared' import Button from '@/components/ui/Button' +import Dialog from '@/components/ui/Dialog' import { Notification, toast } from '@/components/ui' import { useConfig } from '@/components/ui/ConfigProvider' import Input from '@/components/ui/Input' @@ -70,12 +68,12 @@ const INPUT_BASE_CLASS = 'w-full px-3 py-2 border rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-colors bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100' const INPUT_IDLE_BORDER = 'border-slate-300 dark:border-gray-700' const INPUT_ERROR_BORDER = 'border-red-500 bg-red-50 dark:bg-red-900/20' -const LABEL_CLASS = - 'block text-sm font-medium text-slate-700 dark:text-gray-300 mb-1' +const LABEL_CLASS = 'block text-sm font-medium text-slate-700 dark:text-gray-300 mb-1' const getErrorMessage = (error: unknown, fallback: string): string => { - const response = (error as { response?: { data?: { error?: { message?: string }; message?: string } } }) - ?.response + const response = ( + error as { response?: { data?: { error?: { message?: string }; message?: string } } } + )?.response return ( response?.data?.error?.message || response?.data?.message || @@ -84,14 +82,22 @@ const getErrorMessage = (error: unknown, fallback: string): string => { ) } -const DynamicServiceEditor: React.FC = () => { - const { id } = useParams<{ id: string }>() - const navigate = useNavigate() +/** + * Dynamic Service kod editörü. Listeden (`App.DeveloperKit.DynamicServices`) toolbar ve satır + * butonlarıyla açılır; diyalog kapandığında grid kendini yeniler, bu yüzden yayınlama başarılı + * olunca diyalog kapatılır. + */ +const DynamicServiceEditor: React.FC<{ + open: boolean + onDialogClose: () => void + id?: string +}> = ({ open, onDialogClose, id }) => { const { translate } = useLocalization() const { mode } = useConfig() const [code, setCode] = useState(DEFAULT_TEMPLATE) const [serviceName, setServiceName] = useState('') + const [originalName, setOriginalName] = useState('') const [displayName, setDisplayName] = useState('') const [description, setDescription] = useState('') const [primaryEntityType, setPrimaryEntityType] = useState('') @@ -134,6 +140,7 @@ const DynamicServiceEditor: React.FC = () => { if (cancelled) return setCode(data.code || DEFAULT_TEMPLATE) setServiceName(data.name) + setOriginalName(data.name) setDisplayName(data.displayName || '') setDescription(data.description || '') setPrimaryEntityType(data.primaryEntityType || '') @@ -162,10 +169,7 @@ const DynamicServiceEditor: React.FC = () => { } catch (error) { const failed: CompileResult = { success: false, - errorMessage: getErrorMessage( - error, - translate('::App.DynamicServicesEditor.CompileError'), - ), + errorMessage: getErrorMessage(error, translate('::App.DynamicServicesEditor.CompileError')), compilationTimeMs: 0, hasWarnings: false, errors: [], @@ -198,9 +202,10 @@ const DynamicServiceEditor: React.FC = () => { setIsPublishing(true) setPublishResult(null) try { - // Edit modunda eski servis silinip yeniden yayınlanır; silmeden önce - // kodun derlendiğinden emin ol ki başarısız derlemede servis kaybolmasın. - if (id) { + // Publish servisi ada göre bulur: ad aynıysa mevcut kayıt güncellenir ve sürüm artar. + // Ad değiştiyse eski kayıt kalırdı; onu silmek gerekiyor. Silmeden önce kodun + // derlendiğinden emin ol ki başarısız derlemede servis kaybolmasın. + if (id && originalName && originalName !== name) { const compiled = await runCompile() if (!compiled.success) { return @@ -219,17 +224,15 @@ const DynamicServiceEditor: React.FC = () => { if (result.success) { pushSuccess(translate('::App.Platform.SavedSuccessfully')) - navigate(ROUTES_ENUM.protected.saas.developerKit.dynamicServices) + // Diyalog kapanışı listeyi yeniler. + onDialogClose() } else { setPublishResult(result) } } catch (error) { setPublishResult({ success: false, - errorMessage: getErrorMessage( - error, - translate('::App.DynamicServicesEditor.PublishError'), - ), + errorMessage: getErrorMessage(error, translate('::App.DynamicServicesEditor.PublishError')), }) } finally { setIsPublishing(false) @@ -242,7 +245,8 @@ const DynamicServiceEditor: React.FC = () => { isActive, isCompiling, isPublishing, - navigate, + onDialogClose, + originalName, primaryEntityType, pushSuccess, runCompile, @@ -259,7 +263,7 @@ const DynamicServiceEditor: React.FC = () => { } }, [code, pushError, pushSuccess, translate]) - const pageTitle = id + const title = id ? translate('::App.DynamicServicesEditor.EditTitle') : translate('::App.DeveloperKitDynamicServices.NewService') @@ -271,302 +275,283 @@ const DynamicServiceEditor: React.FC = () => { const serviceNameError = submitted && !serviceName.trim() const isBusy = isCompiling || isPublishing - if (isLoading) { - return ( -
- -
- ) - } - return ( -
- - - {/* Header */} -
-
- {/* Left: back + icon + title */} -
-
- + + + + {isLoading ? ( +
+
-
-

- {pageTitle} -

-

- {id - ? translate('::App.DynamicServicesEditor.EditSubtitle') - : translate('::App.DynamicServicesEditor.NewSubtitle')} -

-
-
- - {/* Right: action buttons */} -
- - - {translate('::App.DynamicServicesEditor.BackToServices')} - -
- - - - - -
-
-
- - {/* Compile / Publish result banners */} - {compileResult && ( -
- {compileResult.success ? ( - ) : ( - + <> +
+
+ +
+
+
+ {title} +
+

+ {id + ? translate('::App.DynamicServicesEditor.EditSubtitle') + : translate('::App.DynamicServicesEditor.NewSubtitle')} +

+
+
+ + {/* Compile / Publish result banners */} + {compileResult && ( +
+ {compileResult.success ? ( + + ) : ( + + )} +
+ + {compileResult.success + ? translate('::App.DynamicServicesEditor.CompileSuccess') + : translate('::App.DynamicServicesEditor.CompileFailed')} + + {!compileResult.success && ( + <> + {compileResult.errorMessage && !compileResult.errors?.length && ( +

{compileResult.errorMessage}

+ )} + {!!compileResult.errors?.length && ( +
    + {compileResult.errors.map((e, i) => ( +
  • + [{e.code}] {translate('::App.DynamicServicesEditor.Line')} {e.line}:{' '} + {e.message} +
  • + ))} +
+ )} + + )} +
+ + {compileResult.compilationTimeMs}ms + +
+ )} + + {publishResult && !publishResult.success && ( +
+ +
+ + {translate('::App.DynamicServicesEditor.PublishFailed')} + + {publishResult.errorMessage && ( +

{publishResult.errorMessage}

+ )} +
+
+ )} + + {/* Two-panel layout */} +
+ {/* LEFT PANEL — Servis Ayarları */} +
+
+ +
+ {translate('::App.DynamicServicesEditor.ServiceSettings')} +
+
+ +
+ + setServiceName(e.target.value)} + placeholder={translate('::App.DynamicServicesEditor.ServiceNamePlaceholder')} + className={`${INPUT_BASE_CLASS} ${ + serviceNameError ? INPUT_ERROR_BORDER : INPUT_IDLE_BORDER + }`} + aria-invalid={serviceNameError} + autoFocus + /> + {serviceNameError && ( +

+ {translate('::App.DynamicServicesEditor.ServiceNameRequired')} +

+ )} +
+ +
+ + setDisplayName(e.target.value)} + placeholder={translate('::App.DynamicServicesEditor.DisplayNamePlaceholder')} + className={`${INPUT_BASE_CLASS} ${INPUT_IDLE_BORDER}`} + /> +
+ +
+ + setDescription(e.target.value)} + placeholder={translate('::App.DynamicServicesEditor.DescriptionPlaceholder')} + className={`${INPUT_BASE_CLASS} ${INPUT_IDLE_BORDER}`} + /> +
+ +
+ + setPrimaryEntityType(e.target.value)} + placeholder={translate( + '::App.DynamicServicesEditor.PrimaryEntityTypePlaceholder', + )} + className={`${INPUT_BASE_CLASS} ${INPUT_IDLE_BORDER}`} + /> +
+ +
+ setIsActive(e.target.checked)} + className="w-4 h-4 rounded accent-blue-600 cursor-pointer" + /> + +
+
+ + {/* RIGHT PANEL — Editor */} +
+
+
+
+ +
+ {translate('::App.DynamicServicesEditor.CodeEditor')} +
+
+
+ + {translate('::App.DynamicServicesEditor.LineCount')} {lineCount} + + | + + {translate('::App.DynamicServicesEditor.CharCount')} {charCount} + +
+
+
+ setCode(value ?? '')} + options={EDITOR_OPTIONS} + theme={mode === 'dark' ? 'vs-dark' : 'light'} + loading={} + /> +
+
+
+
+ )} -
- - {compileResult.success - ? translate('::App.DynamicServicesEditor.CompileSuccess') - : translate('::App.DynamicServicesEditor.CompileFailed')} - - {!compileResult.success && ( - <> - {compileResult.errorMessage && !compileResult.errors?.length && ( -

{compileResult.errorMessage}

- )} - {!!compileResult.errors?.length && ( -
    - {compileResult.errors.map((e, i) => ( -
  • - [{e.code}] {translate('::App.DynamicServicesEditor.Line')}{' '} - {e.line}: {e.message} -
  • - ))} -
- )} - - )} -
- - {compileResult.compilationTimeMs}ms - -
- )} + + + - {publishResult && !publishResult.success && ( -
- -
- - {translate('::App.DynamicServicesEditor.PublishFailed')} - - {publishResult.errorMessage && ( -

{publishResult.errorMessage}

- )} -
-
- )} + - {/* Two-panel layout */} -
- {/* LEFT PANEL — Servis Ayarları */} -
-
- -

- {translate('::App.DynamicServicesEditor.ServiceSettings')} -

-
- - {/* Servis Adı */} -
- - setServiceName(e.target.value)} - placeholder={translate( - '::App.DynamicServicesEditor.ServiceNamePlaceholder', - )} - className={`${INPUT_BASE_CLASS} ${ - serviceNameError ? INPUT_ERROR_BORDER : INPUT_IDLE_BORDER - }`} - aria-invalid={serviceNameError} - autoFocus - /> - {serviceNameError && ( -

- {translate('::App.DynamicServicesEditor.ServiceNameRequired')} -

- )} -
- - {/* Görünen Ad */} -
- - setDisplayName(e.target.value)} - placeholder={translate( - '::App.DynamicServicesEditor.DisplayNamePlaceholder', - )} - className={`${INPUT_BASE_CLASS} ${INPUT_IDLE_BORDER}`} - /> -
- - {/* Açıklama */} -
- - setDescription(e.target.value)} - placeholder={translate( - '::App.DynamicServicesEditor.DescriptionPlaceholder', - )} - className={`${INPUT_BASE_CLASS} ${INPUT_IDLE_BORDER}`} - /> -
- - {/* Ana Entity Türü */} -
- - setPrimaryEntityType(e.target.value)} - placeholder={translate( - '::App.DynamicServicesEditor.PrimaryEntityTypePlaceholder', - )} - className={`${INPUT_BASE_CLASS} ${INPUT_IDLE_BORDER}`} - /> -
- - {/* Aktif */} -
- setIsActive(e.target.checked)} - className="w-4 h-4 rounded accent-blue-600 cursor-pointer" - /> - -
-
- - {/* RIGHT PANEL — Editor */} -
-
-
-
- -

- {translate('::App.DynamicServicesEditor.CodeEditor')} -

-
-
- - {translate('::App.DynamicServicesEditor.LineCount')} {lineCount} - - | - - {translate('::App.DynamicServicesEditor.CharCount')} {charCount} - -
-
-
- setCode(value ?? '')} - options={EDITOR_OPTIONS} - theme={mode === 'dark' ? 'vs-dark' : 'light'} - loading={ - - } - /> -
-
-
-
-
+ + + + ) } diff --git a/ui/src/views/developerKit/DynamicServiceManager.tsx b/ui/src/views/developerKit/DynamicServiceManager.tsx deleted file mode 100644 index c04eb609..00000000 --- a/ui/src/views/developerKit/DynamicServiceManager.tsx +++ /dev/null @@ -1,422 +0,0 @@ -import React, { useState, useEffect } from 'react' -import { Link, useNavigate } from 'react-router-dom' -import { - FaPlus, - FaSearch, - FaRegEdit, - FaTrashAlt, - FaFilter, - FaCalendarAlt, - FaCode, - FaSpinner, - FaExternalLinkAlt, - FaTh, - FaList, -} from 'react-icons/fa' -import Widget from '@/components/common/Widget' -import { useLocalization } from '@/utils/hooks/useLocalization' -import { dynamicServiceService, type DynamicServiceDto } from '@/services/dynamicService.service' -import PageTitle from '@/components/shared/PageTitle' -import { ROUTES_ENUM } from '@/routes/route.constant' -import Button from '@/components/ui/Button' -import Input from '@/components/ui/Input' -import Select from '@/components/ui/Select' -import { useStoreActions, useStoreState } from '@/store/store' -import type { ListViewLayoutType } from '../admin/listForm/edit/types' -import { ACTION_BUTTON_CLASS, ACTION_BUTTON_HOVER } from '@/constants/actionButton.constant' - -/** Layout tercihi diger listelerle ayni yerde (admin.lists.states) saklanir. */ -const VIEW_STATE_CODE = 'developerkit-dynamicservices' - -const DynamicServiceManager: React.FC = () => { - const { translate } = useLocalization() - const navigate = useNavigate() - - const filterStatusOptions = [ - { value: 'all' as const, label: translate('::App.StaticLookup.All') }, - { value: 'Success' as const, label: translate('::App.Platform.Success') }, - { value: 'Failed' as const, label: translate('::App.Platform.Failed') }, - { - value: 'Pending' as const, - label: translate('::App.DeveloperKitDynamicServices.FilterPending'), - }, - ] - const [services, setServices] = useState([]) - const [isLoading, setIsLoading] = useState(false) - const [searchTerm, setSearchTerm] = useState('') - const [filterStatus, setFilterStatus] = useState<'all' | 'Success' | 'Failed' | 'Pending'>('all') - - const { states } = useStoreState((state) => state.admin.lists) - const { setStates } = useStoreActions((a) => a.admin.lists) - const viewMode: ListViewLayoutType = - states.find((s) => s.listFormCode === VIEW_STATE_CODE)?.layout === 'grid' ? 'grid' : 'card' - const setViewMode = (layout: ListViewLayoutType) => - setStates({ listFormCode: VIEW_STATE_CODE, layout }) - - useEffect(() => { - loadServices() - }, []) - - const loadServices = async () => { - try { - setIsLoading(true) - const response = await dynamicServiceService.getList() - setServices(response.items || []) - } catch (error) { - console.error('Servisler yüklenirken hata:', error) - } finally { - setIsLoading(false) - } - } - - const deleteService = async (serviceId: string) => { - if (!confirm(translate('::App.DeveloperKitDynamicServices.DeleteConfirm'))) return - try { - await dynamicServiceService.delete(serviceId) - await loadServices() - } catch (error) { - console.error('Servis silinirken hata:', error) - alert(translate('::App.DeveloperKitDynamicServices.DeleteError')) - } - } - - const totalServices = services.length - const successServices = services.filter((s) => s.compilationStatus === 'Success').length - const failedServices = services.filter((s) => s.compilationStatus === 'Failed').length - const activeServices = services.filter((s) => s.isActive).length - const inactiveServices = services.filter((s) => !s.isActive).length - - const filteredServices = services.filter((service) => { - const matchesSearch = - service.name.toLowerCase().includes(searchTerm.toLowerCase()) || - (service.displayName || '').toLowerCase().includes(searchTerm.toLowerCase()) - const matchesFilter = filterStatus === 'all' || service.compilationStatus === filterStatus - return matchesSearch && matchesFilter - }) - - const statusBadge = (status: string) => { - if (status === 'Success') - return 'bg-emerald-100 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-300' - if (status === 'Failed') return 'bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-300' - return 'bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-300' - } - - const openSwagger = () => { - window.open(`${import.meta.env.VITE_API_URL}/swagger/index.html`, '_blank') - } - - const renderStatusBadge = (service: DynamicServiceDto) => ( - - {service.compilationStatus} · v{service.version} - - ) - - const renderActions = (service: DynamicServiceDto) => ( -
-
- ) - - return ( -
- - - {/* Stats */} -
- - - - - -
- - {/* Toolbar */} -
-
- - setSearchTerm(e.target.value)} - /> -
-
- -