347 lines
16 KiB
C#
347 lines
16 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Data;
|
||
using System.Text.Json;
|
||
using System.Threading.Tasks;
|
||
using Kurs.Languages.Languages;
|
||
using Kurs.Platform.Entities;
|
||
using Kurs.Platform.Enums;
|
||
using Kurs.Platform.ListForms;
|
||
using Kurs.Platform.Queries;
|
||
using Volo.Abp.Data;
|
||
using Volo.Abp.DependencyInjection;
|
||
using Volo.Abp.Domain.Repositories;
|
||
using static Kurs.Platform.PlatformConsts;
|
||
using AppCodes = Kurs.Platform.Data.Seeds.SeedConsts.AppCodes;
|
||
|
||
namespace Kurs.Platform.Data.Seeds;
|
||
|
||
public class FormSeeder : IDataSeedContributor, ITransientDependency
|
||
{
|
||
private readonly IRepository<ListForm, Guid> _listFormRepository;
|
||
private readonly IRepository<ListFormField, Guid> _listFormFieldRepository;
|
||
|
||
public FormSeeder(
|
||
IRepository<ListForm, Guid> listFormRepository,
|
||
IRepository<ListFormField, Guid> listFormFieldRepository)
|
||
{
|
||
_listFormRepository = listFormRepository;
|
||
_listFormFieldRepository = listFormFieldRepository;
|
||
}
|
||
|
||
public async Task SeedAsync(DataSeedContext context)
|
||
{
|
||
if (await _listFormRepository.AnyAsync(a => a.ListFormCode == ListFormCodes.Forms.FormLanguage))
|
||
{
|
||
return;
|
||
}
|
||
|
||
#region Languages
|
||
var formLanguage = await _listFormRepository.InsertAsync(
|
||
new ListForm()
|
||
{
|
||
ListFormType = ListFormTypeEnum.Form,
|
||
IsSubForm = false,
|
||
SubFormsJson = JsonSerializer.Serialize(new List<dynamic>() {
|
||
new {
|
||
TabTitle = "Language Texts",
|
||
TabType = ListFormTabTypeEnum.List,
|
||
Code = ListFormCodes.LanguageText,
|
||
Relation = new List<dynamic>() {
|
||
new {
|
||
ParentFieldName = "CultureName",
|
||
ChildFieldName = "CultureName"
|
||
}
|
||
}
|
||
},
|
||
new {
|
||
TabTitle = "Form Sütun Sayıları",
|
||
TabType = ListFormTabTypeEnum.Chart,
|
||
Code = ChartCodes.Chart2,
|
||
Relation = new List<dynamic>() {
|
||
new {
|
||
ParentFieldName = "ListFormCode",
|
||
ChildFieldName = "ListFormCode"
|
||
}
|
||
}
|
||
}
|
||
}),
|
||
CultureName = LanguageCodes.En,
|
||
ListFormCode = ListFormCodes.Forms.FormLanguage,
|
||
Name = AppCodes.Languages.Language,
|
||
Title = AppCodes.Languages.Language,
|
||
DataSourceCode = "Default",
|
||
IsTenant = false,
|
||
IsOrganizationUnit = false,
|
||
Description = AppCodes.Languages.Language,
|
||
SelectCommandType = SelectCommandTypeEnum.Table,
|
||
SelectCommand = DbTablePrefix + "Language",
|
||
KeyFieldName = "Id",
|
||
KeyFieldDbSourceType = DbType.Guid,
|
||
DefaultFilter = "\"IsDeleted\" = 'false'",
|
||
SortMode = GridOptions.SortModeSingle,
|
||
PermissionJson = JsonSerializer.Serialize(new PermissionCrudDto
|
||
{
|
||
C = AppCodes.Languages.Language + ".Create",
|
||
R = AppCodes.Languages.Language,
|
||
U = AppCodes.Languages.Language + ".Update",
|
||
D = AppCodes.Languages.Language + ".Delete",
|
||
E = AppCodes.Languages.Language + ".Export"
|
||
}),
|
||
DeleteCommand = $"UPDATE \"{DbTablePrefix}Language\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id",
|
||
DeleteFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] {
|
||
new() {
|
||
FieldName = "DeleterId",
|
||
FieldDbType = DbType.Guid,
|
||
Value = "@USERID",
|
||
CustomValueType = FieldCustomValueTypeEnum.CustomKey },
|
||
new() {
|
||
FieldName = "Id",
|
||
FieldDbType = DbType.Guid,
|
||
Value = "@ID",
|
||
CustomValueType = FieldCustomValueTypeEnum.CustomKey }
|
||
}),
|
||
EditingOptionJson = JsonSerializer.Serialize(new GridEditingDto
|
||
{
|
||
AllowDeleting = true,
|
||
AllowAdding = true,
|
||
AllowUpdating = true,
|
||
ConfirmDelete = true,
|
||
}),
|
||
EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>() {
|
||
new() {
|
||
Order = 1,
|
||
ColCount = 1,
|
||
ColSpan = 2,
|
||
ItemType = "group",
|
||
Items = [
|
||
new() { Order = 1, DataField = "CultureName", ColSpan = 2, IsRequired = true, EditorType2=EditorTypes.dxTextBox },
|
||
new() { Order = 2, DataField = "UiCultureName", ColSpan = 2, IsRequired = true, EditorType2=EditorTypes.dxTextBox },
|
||
new() { Order = 3, DataField = "DisplayName", ColSpan = 2, IsRequired = true, EditorType2=EditorTypes.dxTextBox },
|
||
new() { Order = 4, DataField = "IsEnabled", ColSpan = 2, IsRequired = false, EditorType2=EditorTypes.dxCheckBox },
|
||
new() { Order = 5, DataField = "MultipleCultures", ColSpan = 2, IsRequired = false, EditorType2=EditorTypes.dxTagBox },
|
||
]
|
||
}
|
||
}),
|
||
InsertFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] {
|
||
new() {
|
||
FieldName = "CreationTime",
|
||
FieldDbType = DbType.DateTime,
|
||
Value = "@NOW",
|
||
CustomValueType = FieldCustomValueTypeEnum.CustomKey },
|
||
new() {
|
||
FieldName = "CreatorId",
|
||
FieldDbType = DbType.Guid,
|
||
Value = "@USERID",
|
||
CustomValueType = FieldCustomValueTypeEnum.CustomKey },
|
||
new() {
|
||
FieldName = "IsDeleted",
|
||
FieldDbType = DbType.Boolean,
|
||
Value = "false",
|
||
CustomValueType = FieldCustomValueTypeEnum.Value }
|
||
}),
|
||
FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] {
|
||
new() {
|
||
FieldName = "IsEnabled",
|
||
FieldDbType = DbType.Boolean,
|
||
Value = "true",
|
||
CustomValueType = FieldCustomValueTypeEnum.Value }
|
||
})
|
||
}
|
||
);
|
||
await _listFormFieldRepository.InsertManyAsync([
|
||
new() {
|
||
ListFormCode = formLanguage.ListFormCode,
|
||
RoleId = null,
|
||
UserId = null,
|
||
CultureName = LanguageCodes.En,
|
||
SourceDbType = DbType.Guid,
|
||
FieldName = "Id",
|
||
Width = 100,
|
||
ListOrderNo = 0,
|
||
Visible = false,
|
||
IsActive = true,
|
||
IsDeleted = false,
|
||
SortIndex = 0,
|
||
PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto
|
||
{
|
||
C = AppCodes.Languages.Language + ".Create",
|
||
R = AppCodes.Languages.Language,
|
||
U = AppCodes.Languages.Language + ".Update",
|
||
E = true,
|
||
Deny = false
|
||
}),
|
||
},
|
||
new() {
|
||
ListFormCode = formLanguage.ListFormCode,
|
||
RoleId = null,
|
||
UserId = null,
|
||
CultureName = LanguageCodes.En,
|
||
SourceDbType = DbType.String,
|
||
FieldName = "CultureName",
|
||
Width = 150,
|
||
ListOrderNo = 1,
|
||
Visible = true,
|
||
IsActive = true,
|
||
IsDeleted = false,
|
||
SortIndex = 1,
|
||
SortDirection = GridColumnOptions.SortOrderAsc,
|
||
AllowSearch = true,
|
||
ValidationRuleJson = JsonSerializer.Serialize(new ValidationRuleDto[] {
|
||
new() { Type = Enum.GetName(UiColumnValidationRuleTypeEnum.required)}
|
||
}),
|
||
PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto
|
||
{
|
||
C = AppCodes.Languages.Language + ".Create",
|
||
R = AppCodes.Languages.Language,
|
||
U = AppCodes.Languages.Language + ".Update",
|
||
E = true,
|
||
Deny = false
|
||
}),
|
||
},
|
||
new()
|
||
{
|
||
ListFormCode = formLanguage.ListFormCode,
|
||
RoleId = null,
|
||
UserId = null,
|
||
CultureName = LanguageCodes.En,
|
||
SourceDbType = DbType.String,
|
||
FieldName = "UiCultureName",
|
||
Width = 150,
|
||
ListOrderNo = 2,
|
||
Visible = true,
|
||
IsActive = true,
|
||
IsDeleted = false,
|
||
AllowSearch = true,
|
||
ValidationRuleJson = JsonSerializer.Serialize(new ValidationRuleDto[] {
|
||
new() { Type = Enum.GetName(UiColumnValidationRuleTypeEnum.required)}
|
||
}),
|
||
PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto
|
||
{
|
||
C = AppCodes.Languages.Language + ".Create",
|
||
R = AppCodes.Languages.Language,
|
||
U = AppCodes.Languages.Language + ".Update",
|
||
E = true,
|
||
Deny = false
|
||
}),
|
||
},
|
||
new()
|
||
{
|
||
ListFormCode = formLanguage.ListFormCode,
|
||
RoleId = null,
|
||
UserId = null,
|
||
CultureName = LanguageCodes.En,
|
||
SourceDbType = DbType.String,
|
||
FieldName = "DisplayName",
|
||
Width = 150,
|
||
ListOrderNo = 3,
|
||
Visible = true,
|
||
IsActive = true,
|
||
IsDeleted = false,
|
||
AllowSearch = true,
|
||
ValidationRuleJson = JsonSerializer.Serialize(new ValidationRuleDto[] {
|
||
new() { Type = Enum.GetName(UiColumnValidationRuleTypeEnum.required)}
|
||
}),
|
||
PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto
|
||
{
|
||
C = AppCodes.Languages.Language + ".Create",
|
||
R = AppCodes.Languages.Language,
|
||
U = AppCodes.Languages.Language + ".Update",
|
||
E = true,
|
||
Deny = false
|
||
}),
|
||
},
|
||
new()
|
||
{
|
||
ListFormCode = formLanguage.ListFormCode,
|
||
RoleId = null,
|
||
UserId = null,
|
||
CultureName = LanguageCodes.En,
|
||
SourceDbType = DbType.Boolean,
|
||
FieldName = "IsEnabled",
|
||
Width = 125,
|
||
ListOrderNo = 4,
|
||
Visible = true,
|
||
IsActive = true,
|
||
IsDeleted = false,
|
||
PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto
|
||
{
|
||
C = AppCodes.Languages.Language + ".Create",
|
||
R = AppCodes.Languages.Language,
|
||
U = AppCodes.Languages.Language + ".Update",
|
||
E = true,
|
||
Deny = false
|
||
}),
|
||
},
|
||
new()
|
||
{
|
||
ListFormCode = formLanguage.ListFormCode,
|
||
RoleId = null,
|
||
UserId = null,
|
||
CultureName = LanguageCodes.En,
|
||
SourceDbType = DbType.DateTime,
|
||
FieldName = "CreationTime",
|
||
Width = 125,
|
||
ListOrderNo = 5,
|
||
Visible = true,
|
||
IsActive = true,
|
||
IsDeleted = false,
|
||
ValidationRuleJson = JsonSerializer.Serialize(new ValidationRuleDto[] {
|
||
new() { Type = Enum.GetName(UiColumnValidationRuleTypeEnum.required)}
|
||
}),
|
||
PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto
|
||
{
|
||
C = AppCodes.Languages.Language + ".Create",
|
||
R = AppCodes.Languages.Language,
|
||
U = AppCodes.Languages.Language + ".Update",
|
||
E = true,
|
||
Deny = false
|
||
}),
|
||
},
|
||
new()
|
||
{
|
||
ListFormCode = formLanguage.ListFormCode,
|
||
RoleId = null,
|
||
UserId = null,
|
||
CultureName = LanguageCodes.En,
|
||
SourceDbType = DbType.String,
|
||
FieldName = "MultipleCultures",
|
||
Width = 250,
|
||
ListOrderNo = 6,
|
||
Visible = true,
|
||
IsActive = true,
|
||
IsDeleted = false,
|
||
AllowSearch = true,
|
||
ColumnFilterJson = JsonSerializer.Serialize(new ColumnFilterDto
|
||
{
|
||
AllowFiltering = true
|
||
}),
|
||
LookupJson = JsonSerializer.Serialize(new LookupDto
|
||
{
|
||
DataSourceType = UiLookupDataSourceTypeEnum.Query,
|
||
DisplayExpr = "Name",
|
||
ValueExpr = "Key",
|
||
LookupQuery = $"SELECT \"CultureName\" AS \"Key\", \"DisplayName\" AS \"Name\", \"CreationTime\" FROM \"{DbTablePrefix}Language\" WHERE \"IsEnabled\" = 'true' and \"IsDeleted\" = 'false'"
|
||
|
||
//TODO: Tasi grid editingform
|
||
// EditorTemplateTagBox = new EditorTagBoxDto()
|
||
// {
|
||
// ApplyValueMode = "useButtons",
|
||
// SearchEnabled = true,
|
||
// MaxDisplayedTags = 3
|
||
// }
|
||
}),
|
||
PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto
|
||
{
|
||
C = AppCodes.Languages.Language + ".Create",
|
||
R = AppCodes.Languages.Language,
|
||
U = AppCodes.Languages.Language + ".Update",
|
||
E = true,
|
||
Deny = false
|
||
}),
|
||
},
|
||
]);
|
||
|
||
#endregion
|
||
}
|
||
}
|