ListForm_Administration güncellemesi

This commit is contained in:
Sedat ÖZTÜRK 2025-11-04 15:29:56 +03:00
parent c085c9e870
commit 5dc927cbbe
26 changed files with 339 additions and 242 deletions

View file

@ -5,7 +5,7 @@ namespace Kurs.Platform.Intranet;
public class EventCommentDto public class EventCommentDto
{ {
public string Id { get; set; } public string Id { get; set; }
public EventOrganizerDto Author { get; set; } public EventOrganizerDto Employee { get; set; }
public string Content { get; set; } public string Content { get; set; }
public DateTime CreationTime { get; set; } public DateTime CreationTime { get; set; }
public int Likes { get; set; } public int Likes { get; set; }

View file

@ -1,10 +0,0 @@
using System;
namespace Kurs.Platform.Public;
public class AuthorDto
{
public Guid Id { get; set; }
public string Name { get; set; }
public string Avatar { get; set; }
}

View file

@ -1,5 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using Kurs.Platform.Intranet;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
namespace Kurs.Platform.Public; namespace Kurs.Platform.Public;
@ -17,7 +18,8 @@ public class BlogPostDto : FullAuditedEntityDto<Guid>
public Guid CategoryId { get; set; } public Guid CategoryId { get; set; }
public BlogCategoryDto Category { get; set; } public BlogCategoryDto Category { get; set; }
public AuthorDto Author { get; set; } public Guid EmployeeId { get; set; }
public EmployeeDto Employee { get; set; }
public int ViewCount { get; set; } public int ViewCount { get; set; }
public int LikeCount { get; set; } public int LikeCount { get; set; }

View file

@ -1,5 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using Kurs.Platform.Intranet;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
namespace Kurs.Platform.Public; namespace Kurs.Platform.Public;
@ -15,8 +16,11 @@ public class BlogPostListDto : EntityDto<Guid>
public string ContentTr { get; set; } public string ContentTr { get; set; }
public string ContentEn { get; set; } public string ContentEn { get; set; }
public Guid CategoryId { get; set; }
public BlogCategoryDto Category { get; set; } public BlogCategoryDto Category { get; set; }
public AuthorDto Author { get; set; }
public Guid EmployeeId { get; set; }
public EmployeeDto Employee { get; set; }
public int ViewCount { get; set; } public int ViewCount { get; set; }
public int LikeCount { get; set; } public int LikeCount { get; set; }

View file

@ -11,7 +11,7 @@ public class CreateUpdateBlogPostDto
public string ContentTr { get; set; } public string ContentTr { get; set; }
public string ContentEn { get; set; } public string ContentEn { get; set; }
public string Summary { get; set; } public string Summary { get; set; }
public DateTime ReadTime { get; set; } public string ReadTime { get; set; }
public string CoverImage { get; set; } public string CoverImage { get; set; }
public Guid CategoryId { get; set; } public Guid CategoryId { get; set; }
public List<string> Tags { get; set; } public List<string> Tags { get; set; }

View file

@ -16,7 +16,6 @@ public interface IBlogAppService : IApplicationService
Task<BlogPostDto> UnpublishPostAsync(Guid id); Task<BlogPostDto> UnpublishPostAsync(Guid id);
// Blog Category methods // Blog Category methods
// Task<List<BlogCategoryDto>> GetCategoriesAsync();
Task<BlogCategoryDto> GetCategoryAsync(Guid id); Task<BlogCategoryDto> GetCategoryAsync(Guid id);
Task<BlogCategoryDto> CreateCategoryAsync(CreateUpdateBlogCategoryDto input); Task<BlogCategoryDto> CreateCategoryAsync(CreateUpdateBlogCategoryDto input);
Task<BlogCategoryDto> UpdateCategoryAsync(Guid id, CreateUpdateBlogCategoryDto input); Task<BlogCategoryDto> UpdateCategoryAsync(Guid id, CreateUpdateBlogCategoryDto input);
@ -34,7 +33,7 @@ public class SearchBlogPostsInput : PagedAndSortedResultRequestDto
public string Query { get; set; } public string Query { get; set; }
public Guid? CategoryId { get; set; } public Guid? CategoryId { get; set; }
public string Tag { get; set; } public string Tag { get; set; }
public Guid? AuthorId { get; set; } public Guid? EmployeeId { get; set; }
public bool? IsPublished { get; set; } public bool? IsPublished { get; set; }
} }

View file

@ -42,7 +42,7 @@ public class BlogAppService : PlatformAppService, IBlogAppService
ReadTime = input.ReadTime, ReadTime = input.ReadTime,
CoverImage = input.CoverImage, CoverImage = input.CoverImage,
CategoryId = input.CategoryId, CategoryId = input.CategoryId,
AuthorId = _currentUser.Id.Value, EmployeeId = _currentUser.Id.Value,
IsPublished = true, IsPublished = true,
}; };
@ -61,13 +61,6 @@ public class BlogAppService : PlatformAppService, IBlogAppService
await _categoryRepository.GetAsync(post.CategoryId) await _categoryRepository.GetAsync(post.CategoryId)
); );
// Get author info
dto.Author = new AuthorDto
{
Id = post.AuthorId,
Name = "User"
};
return dto; return dto;
} }
@ -75,7 +68,7 @@ public class BlogAppService : PlatformAppService, IBlogAppService
{ {
var post = await _postRepository.GetAsync(id); var post = await _postRepository.GetAsync(id);
if (post.AuthorId != _currentUser.Id && !await AuthorizationService.IsGrantedAsync("App.BlogManagement.Update")) if (post.EmployeeId != _currentUser.Id && !await AuthorizationService.IsGrantedAsync("App.BlogManagement.Update"))
{ {
throw new Volo.Abp.Authorization.AbpAuthorizationException(); throw new Volo.Abp.Authorization.AbpAuthorizationException();
} }
@ -112,7 +105,7 @@ public class BlogAppService : PlatformAppService, IBlogAppService
var post = await _postRepository.GetAsync(id); var post = await _postRepository.GetAsync(id);
// Check if user is author or has permission // Check if user is author or has permission
if (post.AuthorId != _currentUser.Id && !await AuthorizationService.IsGrantedAsync("App.BlogManagement.Delete")) if (post.EmployeeId != _currentUser.Id && !await AuthorizationService.IsGrantedAsync("App.BlogManagement.Delete"))
{ {
throw new Volo.Abp.Authorization.AbpAuthorizationException(); throw new Volo.Abp.Authorization.AbpAuthorizationException();
} }
@ -130,7 +123,7 @@ public class BlogAppService : PlatformAppService, IBlogAppService
var post = await _postRepository.GetAsync(id); var post = await _postRepository.GetAsync(id);
// Check if user is author or has permission // Check if user is author or has permission
if (post.AuthorId != _currentUser.Id && !await AuthorizationService.IsGrantedAsync("App.BlogManagement.Publish")) if (post.EmployeeId != _currentUser.Id && !await AuthorizationService.IsGrantedAsync("App.BlogManagement.Publish"))
{ {
throw new Volo.Abp.Authorization.AbpAuthorizationException(); throw new Volo.Abp.Authorization.AbpAuthorizationException();
} }
@ -146,7 +139,7 @@ public class BlogAppService : PlatformAppService, IBlogAppService
var post = await _postRepository.GetAsync(id); var post = await _postRepository.GetAsync(id);
// Check if user is author or has permission // Check if user is author or has permission
if (post.AuthorId != _currentUser.Id && !await AuthorizationService.IsGrantedAsync("App.BlogManagement.Publish")) if (post.EmployeeId != _currentUser.Id && !await AuthorizationService.IsGrantedAsync("App.BlogManagement.Publish"))
{ {
throw new Volo.Abp.Authorization.AbpAuthorizationException(); throw new Volo.Abp.Authorization.AbpAuthorizationException();
} }

View file

@ -384,7 +384,7 @@ public class IntranetAppService : PlatformAppService, IIntranetAppService
calendarEvent.Comments.Add(new EventCommentDto calendarEvent.Comments.Add(new EventCommentDto
{ {
Id = comment.Id.ToString(), Id = comment.Id.ToString(),
Author = new EventOrganizerDto Employee = new EventOrganizerDto
{ {
Id = commentAuthor.Id, Id = commentAuthor.Id,
Name = commentAuthor.FullName, Name = commentAuthor.FullName,

View file

@ -12,6 +12,7 @@ using Volo.Abp.Domain.Entities;
using System.Linq; using System.Linq;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
using System.Text.Json; using System.Text.Json;
using Kurs.Platform.Intranet;
namespace Kurs.Platform.Public; namespace Kurs.Platform.Public;
@ -29,6 +30,7 @@ public class PublicAppService : PlatformAppService
private readonly IRepository<Order, Guid> _orderRepository; private readonly IRepository<Order, Guid> _orderRepository;
private readonly IRepository<About, Guid> _aboutRepository; private readonly IRepository<About, Guid> _aboutRepository;
private readonly IRepository<Contact, Guid> _contactRepository; private readonly IRepository<Contact, Guid> _contactRepository;
private readonly IRepository<Employee, Guid> _employeeRepository;
public PublicAppService( public PublicAppService(
IRepository<Service, Guid> serviceRepository, IRepository<Service, Guid> serviceRepository,
@ -42,8 +44,9 @@ public class PublicAppService : PlatformAppService
IRepository<InstallmentOption> installmentOptionRepository, IRepository<InstallmentOption> installmentOptionRepository,
IRepository<Order, Guid> orderRepository, IRepository<Order, Guid> orderRepository,
IRepository<About, Guid> aboutRepository, IRepository<About, Guid> aboutRepository,
IRepository<Contact, Guid> contactRepository IRepository<Contact, Guid> contactRepository,
) IRepository<Employee, Guid> employeeRepository
)
{ {
_serviceRepository = serviceRepository; _serviceRepository = serviceRepository;
_settingProvider = settingProvider; _settingProvider = settingProvider;
@ -57,6 +60,7 @@ public class PublicAppService : PlatformAppService
_orderRepository = orderRepository; _orderRepository = orderRepository;
_aboutRepository = aboutRepository; _aboutRepository = aboutRepository;
_contactRepository = contactRepository; _contactRepository = contactRepository;
_employeeRepository = employeeRepository;
} }
public async Task<List<ServiceDto>> GetServicesListAsync() public async Task<List<ServiceDto>> GetServicesListAsync()
@ -127,6 +131,10 @@ public class PublicAppService : PlatformAppService
var pageCategories = await _categoryRepository.GetListAsync(x => categoryIds.Contains(x.Id)); var pageCategories = await _categoryRepository.GetListAsync(x => categoryIds.Contains(x.Id));
var categoryDict = pageCategories.ToDictionary(x => x.Id, x => x); var categoryDict = pageCategories.ToDictionary(x => x.Id, x => x);
var employeeIds = pagedPosts.Select(x => x.EmployeeId).Distinct().ToList();
var pageEmployees = await _employeeRepository.GetListAsync(x => employeeIds.Contains(x.Id));
var employeeDict = pageEmployees.ToDictionary(x => x.Id, x => x);
// Post DTO mapping // Post DTO mapping
var postDtos = pagedPosts.Select(post => var postDtos = pagedPosts.Select(post =>
{ {
@ -136,7 +144,11 @@ public class PublicAppService : PlatformAppService
dto.Category = ObjectMapper.Map<BlogCategory, BlogCategoryDto>(c); dto.Category = ObjectMapper.Map<BlogCategory, BlogCategoryDto>(c);
} }
dto.Author = new AuthorDto { Id = post.AuthorId, Name = "User" }; if (employeeDict.TryGetValue(post.EmployeeId, out var e))
{
dto.Employee = ObjectMapper.Map<Employee, EmployeeDto>(e);
}
return dto; return dto;
}).ToList(); }).ToList();
@ -176,13 +188,6 @@ public class PublicAppService : PlatformAppService
await _categoryRepository.GetAsync(post.CategoryId) await _categoryRepository.GetAsync(post.CategoryId)
); );
// Get author info
dto.Author = new AuthorDto
{
Id = post.AuthorId,
Name = "User"
};
return dto; return dto;
} }

View file

@ -340,7 +340,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "Name", FieldName = "Name",
Width = 300, Width = 400,
ListOrderNo = 2, ListOrderNo = 2,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -355,7 +355,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "DisplayName", FieldName = "DisplayName",
Width = 300, Width = 500,
ListOrderNo = 3, ListOrderNo = 3,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -427,11 +427,12 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
{ {
new() { Order=1, ColCount=1, ColSpan=2, ItemType="group", Items =[ new() { Order=1, ColCount=1, ColSpan=2, ItemType="group", Items =[
new EditingFormItemDto { Order=1, DataField="GroupName", ColSpan=2, IsRequired=true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order=1, DataField="GroupName", ColSpan=2, IsRequired=true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order=2, DataField="Name", ColSpan=2, IsRequired=true, EditorType2=EditorTypes.dxTextBox }, new EditingFormItemDto { Order=2, DataField="ParentName", ColSpan=2, IsRequired=true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order=3, DataField="DisplayName", ColSpan=2, IsRequired=true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order=3, DataField="Name", ColSpan=2, IsRequired=true, EditorType2=EditorTypes.dxTextBox },
new EditingFormItemDto { Order=4, DataField="IsEnabled", ColSpan=2, IsRequired=false, EditorType2=EditorTypes.dxCheckBox }, new EditingFormItemDto { Order=4, DataField="DisplayName", ColSpan=2, IsRequired=true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order=5, DataField="MultiTenancySide", ColSpan=2, IsRequired=false, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order=5, DataField="IsEnabled", ColSpan=2, EditorType2=EditorTypes.dxCheckBox },
new EditingFormItemDto { Order=6, DataField="MenuGroup", ColSpan=2, IsRequired=true, EditorType2=EditorTypes.dxTagBox }, new EditingFormItemDto { Order=6, DataField="MultiTenancySide", ColSpan=2, IsRequired=true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order=7, DataField="MenuGroup", ColSpan=2, IsRequired=true, EditorType2=EditorTypes.dxTagBox },
]} ]}
}), }),
FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] {
@ -463,7 +464,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "GroupName", FieldName = "GroupName",
Width = 200, Width = 300,
ListOrderNo = 2, ListOrderNo = 2,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -475,7 +476,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
DataSourceType = UiLookupDataSourceTypeEnum.Query, DataSourceType = UiLookupDataSourceTypeEnum.Query,
DisplayExpr = "Name", DisplayExpr = "Name",
ValueExpr = "Key", ValueExpr = "Key",
LookupQuery = $"SELECT \"AbpPermissions\".\"GroupName\" AS \"Key\", \"AbpPermissions\".\"GroupName\" as \"Name\" FROM \"AbpPermissions\" GROUP BY \"AbpPermissions\".\"GroupName\" ORDER BY \"AbpPermissions\".\"GroupName\"", LookupQuery = LookupQueryValues.PermissionGroupValues
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson, ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
@ -487,7 +488,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "ParentName", FieldName = "ParentName",
Width = 200, Width = 300,
ListOrderNo = 3, ListOrderNo = 3,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -503,7 +504,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "Name", FieldName = "Name",
Width = 250, Width = 300,
ListOrderNo = 4, ListOrderNo = 4,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -519,7 +520,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "DisplayName", FieldName = "DisplayName",
Width = 250, Width = 400,
ListOrderNo = 5, ListOrderNo = 5,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -542,7 +543,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.Boolean, SourceDbType = DbType.Boolean,
FieldName = "IsEnabled", FieldName = "IsEnabled",
Width = 85, Width = 100,
ListOrderNo = 6, ListOrderNo = 6,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -557,7 +558,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.Int16, SourceDbType = DbType.Int16,
FieldName = "MultiTenancySide", FieldName = "MultiTenancySide",
Width = 85, Width = 100,
ListOrderNo = 7, ListOrderNo = 7,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -584,7 +585,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "MenuGroup", FieldName = "MenuGroup",
Width = 85, Width = 200,
ListOrderNo = 8, ListOrderNo = 8,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -641,7 +642,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
PagerOptionJson = DefaultPagerOptionJson, PagerOptionJson = DefaultPagerOptionJson,
EditingOptionJson = JsonSerializer.Serialize(new GridEditingDto EditingOptionJson = JsonSerializer.Serialize(new GridEditingDto
{ {
Popup = new GridEditingPopupDto() { Title = AppCodes.IdentityManagement.ClaimTypes, Width = 500, Height = 550 }, Popup = new GridEditingPopupDto() { Title = AppCodes.IdentityManagement.ClaimTypes, Width = 500, Height = 300 },
AllowDeleting = true, AllowDeleting = true,
AllowAdding = true, AllowAdding = true,
AllowUpdating = true, AllowUpdating = true,
@ -652,11 +653,11 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
new() { Order=1, ColCount=1, ColSpan=2, ItemType="group", Items =[ new() { Order=1, ColCount=1, ColSpan=2, ItemType="group", Items =[
new EditingFormItemDto { Order=1, DataField="Name", ColSpan=2, IsRequired=true, EditorType2=EditorTypes.dxTextBox }, new EditingFormItemDto { Order=1, DataField="Name", ColSpan=2, IsRequired=true, EditorType2=EditorTypes.dxTextBox },
new EditingFormItemDto { Order=2, DataField="ValueType", ColSpan=2, IsRequired=true, EditorType2=EditorTypes.dxSelectBox, EditorOptions = EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order=2, DataField="ValueType", ColSpan=2, IsRequired=true, EditorType2=EditorTypes.dxSelectBox, EditorOptions = EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order=3, DataField="Required", ColSpan=2, IsRequired=false, EditorType2=EditorTypes.dxCheckBox }, new EditingFormItemDto { Order=3, DataField="Required", ColSpan=2, EditorType2=EditorTypes.dxCheckBox },
new EditingFormItemDto { Order=4, DataField="IsStatic", ColSpan=2, IsRequired=false, EditorType2=EditorTypes.dxCheckBox }, new EditingFormItemDto { Order=4, DataField="IsStatic", ColSpan=2, EditorType2=EditorTypes.dxCheckBox },
new EditingFormItemDto { Order=5, DataField="Regex", ColSpan=2, IsRequired=false, EditorType2=EditorTypes.dxTextBox }, new EditingFormItemDto { Order=5, DataField="Regex", ColSpan=2, EditorType2=EditorTypes.dxTextBox },
new EditingFormItemDto { Order=6, DataField="RegexDescription", ColSpan=2, IsRequired=false, EditorType2=EditorTypes.dxTextBox }, new EditingFormItemDto { Order=6, DataField="RegexDescription", ColSpan=2, EditorType2=EditorTypes.dxTextBox },
new EditingFormItemDto { Order=7, DataField="Description", ColSpan=2, IsRequired=false, EditorType2=EditorTypes.dxTextBox }, new EditingFormItemDto { Order=7, DataField="Description", ColSpan=2, EditorType2=EditorTypes.dxTextArea },
]} ]}
}), }),
DeleteCommand = "DELETE FROM \"AbpClaimTypes\" WHERE \"Id\"=@Id", DeleteCommand = "DELETE FROM \"AbpClaimTypes\" WHERE \"Id\"=@Id",
@ -685,7 +686,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.Guid, SourceDbType = DbType.Guid,
FieldName = "Id", FieldName = "Id",
Width = 500, Width = 100,
ListOrderNo = 0, ListOrderNo = 0,
Visible = false, Visible = false,
IsActive = true, IsActive = true,
@ -716,7 +717,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.Int16, SourceDbType = DbType.Int16,
FieldName = "ValueType", FieldName = "ValueType",
Width = 100, Width = 150,
ListOrderNo = 2, ListOrderNo = 2,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -789,7 +790,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "RegexDescription", FieldName = "RegexDescription",
Width = 250, Width = 300,
ListOrderNo = 6, ListOrderNo = 6,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -805,7 +806,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "Description", FieldName = "Description",
Width = 250, Width = 300,
ListOrderNo = 7, ListOrderNo = 7,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -861,8 +862,8 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>() { EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>() {
new() { Order=1, ColCount=1, ColSpan=2, ItemType="group", Items=[ new() { Order=1, ColCount=1, ColSpan=2, ItemType="group", Items=[
new EditingFormItemDto { Order = 1, DataField = "Name", ColSpan = 2, IsRequired = true, EditorType2=EditorTypes.dxTextBox }, new EditingFormItemDto { Order = 1, DataField = "Name", ColSpan = 2, IsRequired = true, EditorType2=EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 2, DataField = "IsDefault", ColSpan = 2, IsRequired = false, EditorType2=EditorTypes.dxCheckBox }, new EditingFormItemDto { Order = 2, DataField = "IsDefault", ColSpan = 2, EditorType2=EditorTypes.dxCheckBox },
new EditingFormItemDto { Order = 3, DataField = "IsPublic", ColSpan = 2, IsRequired = false, EditorType2=EditorTypes.dxCheckBox }, new EditingFormItemDto { Order = 3, DataField = "IsPublic", ColSpan = 2, EditorType2=EditorTypes.dxCheckBox },
]} ]}
}), }),
DeleteCommand = "DELETE FROM \"AbpRoles\" WHERE \"Id\"=@Id", DeleteCommand = "DELETE FROM \"AbpRoles\" WHERE \"Id\"=@Id",
@ -907,7 +908,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "Name", FieldName = "Name",
Width = 400, Width = 500,
ListOrderNo = 1, ListOrderNo = 1,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -927,7 +928,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.Boolean, SourceDbType = DbType.Boolean,
FieldName = "IsDefault", FieldName = "IsDefault",
Width = 85, Width = 100,
ListOrderNo = 2, ListOrderNo = 2,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -943,7 +944,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.Boolean, SourceDbType = DbType.Boolean,
FieldName = "IsPublic", FieldName = "IsPublic",
Width = 85, Width = 100,
ListOrderNo = 3, ListOrderNo = 3,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -1008,7 +1009,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
new EditingFormItemDto { Order=3, DataField="Surname", ColSpan=2, IsRequired=true, EditorType2=EditorTypes.dxTextBox }, new EditingFormItemDto { Order=3, DataField="Surname", ColSpan=2, IsRequired=true, EditorType2=EditorTypes.dxTextBox },
new EditingFormItemDto { Order=4, DataField="PhoneNumber", ColSpan=2, IsRequired=true, EditorType2=EditorTypes.dxTextBox }, new EditingFormItemDto { Order=4, DataField="PhoneNumber", ColSpan=2, IsRequired=true, EditorType2=EditorTypes.dxTextBox },
new EditingFormItemDto { Order=5, DataField="Password", ColSpan=2, IsRequired=true, EditorType2=EditorTypes.dxTextBox }, new EditingFormItemDto { Order=5, DataField="Password", ColSpan=2, IsRequired=true, EditorType2=EditorTypes.dxTextBox },
new EditingFormItemDto { Order=6, DataField="IsActive", ColSpan=2, IsRequired=false, EditorType2=EditorTypes.dxCheckBox }, new EditingFormItemDto { Order=6, DataField="IsActive", ColSpan=2, EditorType2=EditorTypes.dxCheckBox },
]} ]}
}), }),
InsertServiceAddress = "list-form-dynamic-api/user-insert", InsertServiceAddress = "list-form-dynamic-api/user-insert",
@ -1048,7 +1049,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.Guid, SourceDbType = DbType.Guid,
FieldName = "Id", FieldName = "Id",
Width = 125, Width = 100,
ListOrderNo = 1, ListOrderNo = 1,
Visible = false, Visible = false,
IsActive = true, IsActive = true,
@ -1065,7 +1066,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "Email", FieldName = "Email",
Width = 250, Width = 300,
ListOrderNo = 2, ListOrderNo = 2,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -1215,7 +1216,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
PagerOptionJson = DefaultPagerOptionJson, PagerOptionJson = DefaultPagerOptionJson,
EditingOptionJson = JsonSerializer.Serialize(new GridEditingDto EditingOptionJson = JsonSerializer.Serialize(new GridEditingDto
{ {
Popup = new GridEditingPopupDto() { Title = ListFormCodes.Lists.IpRestriction, Width = 800, Height = 500 }, Popup = new GridEditingPopupDto() { Title = ListFormCodes.Lists.IpRestriction, Width = 500, Height = 300 },
AllowDeleting = true, AllowDeleting = true,
AllowAdding = true, AllowAdding = true,
AllowUpdating = true, AllowUpdating = true,
@ -1224,8 +1225,8 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>() { EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>() {
new() { Order=1,ColCount=1,ColSpan=2,ItemType="group", Items=[ new() { Order=1,ColCount=1,ColSpan=2,ItemType="group", Items=[
new EditingFormItemDto { Order = 1, DataField = "ResourceType", ColSpan = 2, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order = 1, DataField = "ResourceType", ColSpan = 2, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order = 2, DataField = "ResourceId", ColSpan = 2, IsRequired = false, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order = 2, DataField = "ResourceId", ColSpan = 2, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order = 3, DataField = "IP", ColSpan = 2, IsRequired = false, EditorType2=EditorTypes.dxTextBox }, new EditingFormItemDto { Order = 3, DataField = "IP", ColSpan = 2, IsRequired = true, EditorType2=EditorTypes.dxTextBox },
]} ]}
}), }),
InsertFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { InsertFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] {
@ -1256,7 +1257,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "ResourceType", FieldName = "ResourceType",
Width = 300, Width = 400,
ListOrderNo = 2, ListOrderNo = 2,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -1285,7 +1286,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "ResourceId", FieldName = "ResourceId",
Width = 300, Width = 400,
ListOrderNo = 3, ListOrderNo = 3,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -1307,12 +1308,13 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "IP", FieldName = "IP",
Width = 85, Width = 100,
ListOrderNo = 4, ListOrderNo = 4,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
IsDeleted = false, IsDeleted = false,
AllowSearch = true, AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.IdentityManagement.IpRestrictions), PermissionJson = DefaultFieldPermissionJson(AppCodes.IdentityManagement.IpRestrictions),
PivotSettingsJson = DefaultPivotSettingsJson PivotSettingsJson = DefaultPivotSettingsJson
@ -1396,7 +1398,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
IsDeleted = false, IsDeleted = false,
AllowSearch = true, AllowSearch = true,
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.AuditLogs), PermissionJson = DefaultFieldPermissionJson(AppCodes.AuditLogs),
PivotSettingsJson = DefaultPivotSettingsJson PivotSettingsJson = DefaultPivotSettingsJson
}, },
new() { new() {
@ -1561,9 +1563,9 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
new EditingFormItemDto { Order = 3, DataField = "Method", ColSpan = 2, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order = 3, DataField = "Method", ColSpan = 2, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order = 4, DataField = "DataSourceCode", ColSpan = 2, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order = 4, DataField = "DataSourceCode", ColSpan = 2, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order = 5, DataField = "Sql", ColSpan = 2, IsRequired = true, EditorType2=EditorTypes.dxTextArea, EditorOptions="{ \"height\" : 60 }" }, new EditingFormItemDto { Order = 5, DataField = "Sql", ColSpan = 2, IsRequired = true, EditorType2=EditorTypes.dxTextArea, EditorOptions="{ \"height\" : 60 }" },
new EditingFormItemDto { Order = 6, DataField = "ParametersJson", ColSpan = 2, IsRequired = false, EditorType2=EditorTypes.dxTextArea, EditorOptions="{ \"height\" : 60 }" }, new EditingFormItemDto { Order = 6, DataField = "ParametersJson", ColSpan = 2, EditorType2=EditorTypes.dxTextArea, EditorOptions="{ \"height\" : 60 }" },
new EditingFormItemDto { Order = 7, DataField = "PermissionsJson", ColSpan = 2, IsRequired = false, EditorType2=EditorTypes.dxTextArea, EditorOptions="{ \"height\" : 60 }" }, new EditingFormItemDto { Order = 7, DataField = "PermissionsJson", ColSpan = 2, EditorType2=EditorTypes.dxTextArea, EditorOptions="{ \"height\" : 60 }" },
new EditingFormItemDto { Order = 8, DataField = "Description", ColSpan = 2, IsRequired = false, EditorType2=EditorTypes.dxTextArea, EditorOptions="{\"height\":200}" }, new EditingFormItemDto { Order = 8, DataField = "Description", ColSpan = 2, EditorType2=EditorTypes.dxTextArea, EditorOptions="{\"height\":200}" },
]} ]}
}), }),
InsertFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { InsertFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] {
@ -1791,8 +1793,8 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
ItemType = "group", ItemType = "group",
Items = [ Items = [
new EditingFormItemDto { Order = 1, DataField = "Name", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxTextBox }, new EditingFormItemDto { Order = 1, DataField = "Name", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 2, DataField = "Description", ColSpan = 2, IsRequired = false, EditorType2 = EditorTypes.dxTextArea }, new EditingFormItemDto { Order = 2, DataField = "Description", ColSpan = 2, EditorType2 = EditorTypes.dxTextArea },
new EditingFormItemDto { Order = 3, DataField = "Icon", ColSpan = 2, IsRequired = false, EditorType2 = EditorTypes.dxTextBox }, new EditingFormItemDto { Order = 3, DataField = "Icon", ColSpan = 2, EditorType2 = EditorTypes.dxTextBox },
]} ]}
}), }),
DeleteCommand = $"UPDATE \"{FullNameTable(TableNameEnum.ReportCategory)}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", DeleteCommand = $"UPDATE \"{FullNameTable(TableNameEnum.ReportCategory)}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id",
@ -1847,7 +1849,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "Description", FieldName = "Description",
Width = 500, Width = 600,
ListOrderNo = 3, ListOrderNo = 3,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -2047,7 +2049,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
PagerOptionJson = DefaultPagerOptionJson, PagerOptionJson = DefaultPagerOptionJson,
EditingOptionJson = JsonSerializer.Serialize(new GridEditingDto EditingOptionJson = JsonSerializer.Serialize(new GridEditingDto
{ {
Popup = new GridEditingPopupDto { Title = AppCodes.Services, Width = 500, Height = 450 }, Popup = new GridEditingPopupDto { Title = AppCodes.Services, Width = 500, Height = 300 },
AllowDeleting = true, AllowDeleting = true,
AllowAdding = true, AllowAdding = true,
AllowUpdating = true, AllowUpdating = true,
@ -2063,10 +2065,10 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
Items = Items =
[ [
new EditingFormItemDto { Order = 1, DataField = "Title", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order = 1, DataField = "Title", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order = 2, DataField = "Icon", ColSpan = 2, IsRequired = false, EditorType2 = EditorTypes.dxTextBox }, new EditingFormItemDto { Order = 2, DataField = "Icon", ColSpan = 2, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 3, DataField = "Description", ColSpan = 2, IsRequired = false, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order = 3, DataField = "Description", ColSpan = 2, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order = 4, DataField = "Type", ColSpan = 2, IsRequired = false, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order = 4, DataField = "Type", ColSpan = 2, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order = 5, DataField = "Features", ColSpan = 2, IsRequired = false, EditorType2 = EditorTypes.dxTextArea }, new EditingFormItemDto { Order = 5, DataField = "Features", ColSpan = 2, EditorType2 = EditorTypes.dxTextArea },
] ]
} }
}), }),
@ -2106,7 +2108,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "Title", FieldName = "Title",
Width = 200, Width = 400,
ListOrderNo = 2, ListOrderNo = 2,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -2128,7 +2130,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "Icon", FieldName = "Icon",
Width = 150, Width = 100,
ListOrderNo = 3, ListOrderNo = 3,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -2144,7 +2146,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "Description", FieldName = "Description",
Width = 150, Width = 500,
ListOrderNo = 4, ListOrderNo = 4,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -2191,7 +2193,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "Features", FieldName = "Features",
Width = 200, Width = 500,
ListOrderNo = 6, ListOrderNo = 6,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -2265,8 +2267,8 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
new EditingFormItemDto { Order = 2, DataField = "Description", ColSpan = 2, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order = 2, DataField = "Description", ColSpan = 2, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order = 3, DataField = "Category", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order = 3, DataField = "Category", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order = 4, DataField = "Order", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox }, new EditingFormItemDto { Order = 4, DataField = "Order", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox },
new EditingFormItemDto { Order = 5, DataField = "MonthlyPrice", ColSpan = 2, EditorType2 = EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat }, new EditingFormItemDto { Order = 5, DataField = "MonthlyPrice", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat },
new EditingFormItemDto { Order = 6, DataField = "YearlyPrice", ColSpan = 2, EditorType2 = EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat }, new EditingFormItemDto { Order = 6, DataField = "YearlyPrice", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat },
new EditingFormItemDto { Order = 7, DataField = "IsQuantityBased", ColSpan = 2, EditorType2 = EditorTypes.dxCheckBox }, new EditingFormItemDto { Order = 7, DataField = "IsQuantityBased", ColSpan = 2, EditorType2 = EditorTypes.dxCheckBox },
new EditingFormItemDto { Order = 8, DataField = "ImageUrl", ColSpan = 2, EditorType2 = EditorTypes.dxTextBox }, new EditingFormItemDto { Order = 8, DataField = "ImageUrl", ColSpan = 2, EditorType2 = EditorTypes.dxTextBox },
] ]
@ -2304,7 +2306,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "Name", FieldName = "Name",
Width = 300, Width = 400,
ListOrderNo = 2, ListOrderNo = 2,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -2327,7 +2329,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "Description", FieldName = "Description",
Width = 300, Width = 500,
ListOrderNo = 3, ListOrderNo = 3,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -2384,6 +2386,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
IsActive = true, IsActive = true,
IsDeleted = false, IsDeleted = false,
AllowSearch = true, AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.Products), PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.Products),
}, },
@ -2401,6 +2404,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
IsActive = true, IsActive = true,
IsDeleted = false, IsDeleted = false,
AllowSearch = true, AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.Products), PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.Products),
}, },
@ -2425,7 +2429,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "ImageUrl", FieldName = "ImageUrl",
Width = 300, Width = 400,
ListOrderNo = 9, ListOrderNo = 9,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -2460,8 +2464,9 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
SelectCommandType = SelectCommandTypeEnum.Table, SelectCommandType = SelectCommandTypeEnum.Table,
SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.PaymentMethod)), SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.PaymentMethod)),
KeyFieldName = "Id", KeyFieldName = "Id",
KeyFieldDbSourceType = DbType.String, KeyFieldDbSourceType = DbType.Guid,
SortMode = GridOptions.SortModeSingle, SortMode = GridOptions.SortModeSingle,
DefaultFilter = DefaultFilterJson,
FilterRowJson = JsonSerializer.Serialize(new GridFilterRowDto { Visible = true }), FilterRowJson = JsonSerializer.Serialize(new GridFilterRowDto { Visible = true }),
HeaderFilterJson = JsonSerializer.Serialize(new { Visible = true }), HeaderFilterJson = JsonSerializer.Serialize(new { Visible = true }),
SearchPanelJson = JsonSerializer.Serialize(new { Visible = true }), SearchPanelJson = JsonSerializer.Serialize(new { Visible = true }),
@ -2499,6 +2504,14 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
new FieldsDefaultValue { FieldName = "DeleterId", FieldDbType = DbType.Guid, Value = "@USERID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, new FieldsDefaultValue { FieldName = "DeleterId", FieldDbType = DbType.Guid, Value = "@USERID", CustomValueType = FieldCustomValueTypeEnum.CustomKey },
new FieldsDefaultValue { FieldName = "Id", FieldDbType = DbType.Guid, Value = "@ID", CustomValueType = FieldCustomValueTypeEnum.CustomKey } new FieldsDefaultValue { FieldName = "Id", FieldDbType = DbType.Guid, Value = "@ID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }
}), }),
InsertFieldsDefaultValueJson = JsonSerializer.Serialize(new[]
{
new FieldsDefaultValue { FieldName = "CreationTime", FieldDbType = DbType.DateTime, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey },
new FieldsDefaultValue { FieldName = "CreatorId", FieldDbType = DbType.Guid, Value = "@USERID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }
}),
FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] {
new() { FieldName = "Commission", FieldDbType = DbType.Decimal, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }
}),
}); });
#region PaymentMethod Fields #region PaymentMethod Fields
@ -2511,7 +2524,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
FieldName = "Id", FieldName = "Id",
Width = 100, Width = 100,
ListOrderNo = 1, ListOrderNo = 1,
Visible = true, Visible = false,
IsActive = true, IsActive = true,
IsDeleted = false, IsDeleted = false,
ValidationRuleJson = DefaultValidationRuleRequiredJson, ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -2542,7 +2555,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
FieldName = "Commission", FieldName = "Commission",
Format = "fixedPoint", Format = "fixedPoint",
Alignment = "right", Alignment = "right",
Width = 100, Width = 200,
ListOrderNo = 3, ListOrderNo = 3,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -2557,7 +2570,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "Logo", FieldName = "Logo",
Width = 300, Width = 500,
ListOrderNo = 4, ListOrderNo = 4,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -2595,6 +2608,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
KeyFieldName = "Id", KeyFieldName = "Id",
KeyFieldDbSourceType = DbType.Guid, KeyFieldDbSourceType = DbType.Guid,
SortMode = GridOptions.SortModeSingle, SortMode = GridOptions.SortModeSingle,
DefaultFilter = DefaultFilterJson,
FilterRowJson = JsonSerializer.Serialize(new GridFilterRowDto { Visible = true }), FilterRowJson = JsonSerializer.Serialize(new GridFilterRowDto { Visible = true }),
HeaderFilterJson = JsonSerializer.Serialize(new { Visible = true }), HeaderFilterJson = JsonSerializer.Serialize(new { Visible = true }),
SearchPanelJson = JsonSerializer.Serialize(new { Visible = true }), SearchPanelJson = JsonSerializer.Serialize(new { Visible = true }),
@ -2632,6 +2646,14 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
new FieldsDefaultValue { FieldName = "DeleterId", FieldDbType = DbType.Guid, Value = "@USERID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, new FieldsDefaultValue { FieldName = "DeleterId", FieldDbType = DbType.Guid, Value = "@USERID", CustomValueType = FieldCustomValueTypeEnum.CustomKey },
new FieldsDefaultValue { FieldName = "Id", FieldDbType = DbType.Guid, Value = "@ID", CustomValueType = FieldCustomValueTypeEnum.CustomKey } new FieldsDefaultValue { FieldName = "Id", FieldDbType = DbType.Guid, Value = "@ID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }
}), }),
InsertFieldsDefaultValueJson = JsonSerializer.Serialize(new[]
{
new FieldsDefaultValue { FieldName = "CreationTime", FieldDbType = DbType.DateTime, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey },
new FieldsDefaultValue { FieldName = "CreatorId", FieldDbType = DbType.Guid, Value = "@USERID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }
}),
FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] {
new() { FieldName = "Commission", FieldDbType = DbType.Decimal, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }
}),
}); });
#region PaymentMethod Fields #region PaymentMethod Fields
@ -2657,7 +2679,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "Installment", FieldName = "Installment",
Width = 100, Width = 200,
ListOrderNo = 2, ListOrderNo = 2,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -2673,7 +2695,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "Name", FieldName = "Name",
Width = 200, Width = 500,
ListOrderNo = 3, ListOrderNo = 3,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -2771,7 +2793,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
[ [
new EditingFormItemDto { Order = 11, DataField = "PhoneNumber", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox, EditorOptions=EditorOptionValues.PhoneEditorOptions }, new EditingFormItemDto { Order = 11, DataField = "PhoneNumber", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox, EditorOptions=EditorOptionValues.PhoneEditorOptions },
new EditingFormItemDto { Order = 12, DataField = "MobileNumber", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox, EditorOptions=EditorOptionValues.PhoneEditorOptions }, new EditingFormItemDto { Order = 12, DataField = "MobileNumber", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox, EditorOptions=EditorOptionValues.PhoneEditorOptions },
new EditingFormItemDto { Order = 13, DataField = "FaxNumber", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox, EditorOptions=EditorOptionValues.PhoneEditorOptions }, new EditingFormItemDto { Order = 13, DataField = "FaxNumber", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox, EditorOptions=EditorOptionValues.PhoneEditorOptions },
new EditingFormItemDto { Order = 14, DataField = "Email", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox }, new EditingFormItemDto { Order = 14, DataField = "Email", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 15, DataField = "Website", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox }, new EditingFormItemDto { Order = 15, DataField = "Website", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 16, DataField = "Subtotal", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat }, new EditingFormItemDto { Order = 16, DataField = "Subtotal", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat },
@ -2779,6 +2801,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
new EditingFormItemDto { Order = 18, DataField = "Total", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat }, new EditingFormItemDto { Order = 18, DataField = "Total", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat },
new EditingFormItemDto { Order = 19, DataField = "PaymentMethodId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order = 19, DataField = "PaymentMethodId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order = 20, DataField = "Installment", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order = 20, DataField = "Installment", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order = 21, DataField = "IsActive", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox },
] ]
} }
}), }),
@ -2788,7 +2811,9 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
new FieldsDefaultValue { FieldName = "CreatorId", FieldDbType = DbType.Guid, Value = "@USERID", CustomValueType = FieldCustomValueTypeEnum.CustomKey } new FieldsDefaultValue { FieldName = "CreatorId", FieldDbType = DbType.Guid, Value = "@USERID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }
}), }),
FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] {
new() { FieldName = "Country", FieldDbType = DbType.String, Value = "TR", CustomValueType = FieldCustomValueTypeEnum.Value } new() { FieldName = "Country", FieldDbType = DbType.String, Value = "TR", CustomValueType = FieldCustomValueTypeEnum.Value },
new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value },
new() { FieldName = "Commission", FieldDbType = DbType.Decimal, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }
}) })
}); });
@ -2831,12 +2856,13 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "Founder", FieldName = "Founder",
Width = 100, Width = 150,
ListOrderNo = 3, ListOrderNo = 3,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
IsDeleted = false, IsDeleted = false,
AllowSearch = true, AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders), PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders),
}, },
@ -2862,12 +2888,13 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "TaxOffice", FieldName = "TaxOffice",
Width = 100, Width = 150,
ListOrderNo = 5, ListOrderNo = 5,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
IsDeleted = false, IsDeleted = false,
AllowSearch = true, AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders), PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders),
}, },
@ -2877,12 +2904,13 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "Address1", FieldName = "Address1",
Width = 100, Width = 300,
ListOrderNo = 6, ListOrderNo = 6,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
IsDeleted = false, IsDeleted = false,
AllowSearch = true, AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders), PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders),
}, },
@ -2892,7 +2920,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "Address2", FieldName = "Address2",
Width = 100, Width = 300,
ListOrderNo = 7, ListOrderNo = 7,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -2921,6 +2949,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
LookupQuery = LookupQueryValues.CountryValues, LookupQuery = LookupQueryValues.CountryValues,
CascadeEmptyFields = "City,District" CascadeEmptyFields = "City,District"
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders), PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders),
}, },
@ -2947,6 +2976,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CascadeParentFields = "Country", CascadeParentFields = "Country",
CascadeEmptyFields = "District" CascadeEmptyFields = "District"
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders), PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders),
}, },
@ -2972,6 +3002,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CascadeFilterOperator="=", CascadeFilterOperator="=",
CascadeParentFields = "Country,City", CascadeParentFields = "Country,City",
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders), PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders),
}, },
@ -2988,6 +3019,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
IsDeleted = false, IsDeleted = false,
AllowSearch = true, AllowSearch = true,
EditorOptions = EditorOptionValues.PhoneEditorOptions, EditorOptions = EditorOptionValues.PhoneEditorOptions,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders), PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders),
}, },
@ -3004,6 +3036,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
IsDeleted = false, IsDeleted = false,
AllowSearch = true, AllowSearch = true,
EditorOptions = EditorOptionValues.PhoneEditorOptions, EditorOptions = EditorOptionValues.PhoneEditorOptions,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders), PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders),
}, },
@ -3029,12 +3062,13 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "Website", FieldName = "Website",
Width = 100, Width = 200,
ListOrderNo = 14, ListOrderNo = 14,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
IsDeleted = false, IsDeleted = false,
AllowSearch = true, AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders), PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders),
}, },
@ -3052,6 +3086,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
IsActive = true, IsActive = true,
IsDeleted = false, IsDeleted = false,
AllowSearch = true, AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders), PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders),
}, },
@ -3069,6 +3104,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
IsActive = true, IsActive = true,
IsDeleted = false, IsDeleted = false,
AllowSearch = true, AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders), PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders),
}, },
@ -3086,6 +3122,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
IsActive = true, IsActive = true,
IsDeleted = false, IsDeleted = false,
AllowSearch = true, AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders), PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders),
}, },
@ -3095,7 +3132,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.Guid, SourceDbType = DbType.Guid,
FieldName = "PaymentMethodId", FieldName = "PaymentMethodId",
Width = 100, Width = 150,
ListOrderNo = 18, ListOrderNo = 18,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -3108,6 +3145,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
ValueExpr = "Key", ValueExpr = "Key",
LookupQuery = LookupQueryValues.PaymentMethodValues LookupQuery = LookupQueryValues.PaymentMethodValues
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders), PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders),
}, },
@ -3130,6 +3168,22 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
ValueExpr = "Key", ValueExpr = "Key",
LookupQuery = LookupQueryValues.InstallmentValues LookupQuery = LookupQueryValues.InstallmentValues
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders),
},
new()
{
ListFormCode = listFormPurchaseOrder.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Boolean,
FieldName = "IsActive",
Width = 100,
ListOrderNo = 20,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders), PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders),
} }
@ -3196,9 +3250,9 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
new EditingFormItemDto { Order = 1, DataField = "Name", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order = 1, DataField = "Name", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order = 2, DataField = "Slug", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxTextBox }, new EditingFormItemDto { Order = 2, DataField = "Slug", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 3, DataField = "Description", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order = 3, DataField = "Description", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order = 4, DataField = "Icon", ColSpan = 2, IsRequired = false, EditorType2 = EditorTypes.dxTextBox }, new EditingFormItemDto { Order = 4, DataField = "Icon", ColSpan = 2, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 5, DataField = "DisplayOrder", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox }, new EditingFormItemDto { Order = 5, DataField = "DisplayOrder", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox },
new EditingFormItemDto { Order = 6, DataField = "IsActive", ColSpan = 2, IsRequired = false, EditorType2 = EditorTypes.dxCheckBox } new EditingFormItemDto { Order = 6, DataField = "IsActive", ColSpan = 2, EditorType2 = EditorTypes.dxCheckBox }
] ]
} }
}), }),
@ -3273,7 +3327,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.String, SourceDbType = DbType.String,
FieldName = "Description", FieldName = "Description",
Width = 400, Width = 500,
ListOrderNo = 4, ListOrderNo = 4,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
@ -3302,7 +3356,6 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
IsActive = true, IsActive = true,
IsDeleted = false, IsDeleted = false,
AllowSearch = true, AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.BlogManagement.BlogCategory), PermissionJson = DefaultFieldPermissionJson(AppCodes.BlogManagement.BlogCategory),
}, },
@ -3318,6 +3371,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
IsActive = true, IsActive = true,
IsDeleted = false, IsDeleted = false,
AllowSearch = true, AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.BlogManagement.BlogCategory), PermissionJson = DefaultFieldPermissionJson(AppCodes.BlogManagement.BlogCategory),
}, },
@ -3399,14 +3453,14 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
new EditingFormItemDto { Order = 1, DataField = "Title", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order = 1, DataField = "Title", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order = 2, DataField = "Slug", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxTextBox }, new EditingFormItemDto { Order = 2, DataField = "Slug", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 3, DataField = "Summary", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order = 3, DataField = "Summary", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order = 4, DataField = "CoverImage", ColSpan = 2, IsRequired = false, EditorType2 = EditorTypes.dxTextBox }, new EditingFormItemDto { Order = 4, DataField = "CoverImage", ColSpan = 2, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 5, DataField = "ReadTime", ColSpan = 2, IsRequired = false, EditorType2 = EditorTypes.dxTextBox }, new EditingFormItemDto { Order = 5, DataField = "ReadTime", ColSpan = 2, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 6, DataField = "CategoryId", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order = 6, DataField = "CategoryId", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order = 7, DataField = "ViewCount", ColSpan = 2, IsRequired = false, EditorType2 = EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat }, new EditingFormItemDto { Order = 7, DataField = "ViewCount", ColSpan = 2, EditorType2 = EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat },
new EditingFormItemDto { Order = 8, DataField = "LikeCount", ColSpan = 2, IsRequired = false, EditorType2 = EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat }, new EditingFormItemDto { Order = 8, DataField = "LikeCount", ColSpan = 2, EditorType2 = EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat },
new EditingFormItemDto { Order = 9, DataField = "CommentCount", ColSpan = 2, IsRequired = false, EditorType2 = EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat }, new EditingFormItemDto { Order = 9, DataField = "CommentCount", ColSpan = 2, EditorType2 = EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat },
new EditingFormItemDto { Order = 10, DataField = "IsPublished", ColSpan = 2, IsRequired = false, EditorType2 = EditorTypes.dxCheckBox }, new EditingFormItemDto { Order = 10, DataField = "IsPublished", ColSpan = 2, EditorType2 = EditorTypes.dxCheckBox },
new EditingFormItemDto { Order = 11, DataField = "PublishedAt", ColSpan = 2, IsRequired = false, EditorType2 = EditorTypes.dxDateBox }, new EditingFormItemDto { Order = 11, DataField = "PublishedAt", ColSpan = 2, EditorType2 = EditorTypes.dxDateBox },
new EditingFormItemDto { Order = 12, DataField = "ContentTr", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxHtmlEditor, EditorOptions=EditorOptionValues.HtmlEditorOptions }, new EditingFormItemDto { Order = 12, DataField = "ContentTr", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxHtmlEditor, EditorOptions=EditorOptionValues.HtmlEditorOptions },
new EditingFormItemDto { Order = 13, DataField = "ContentEn", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxHtmlEditor, EditorOptions=EditorOptionValues.HtmlEditorOptions } new EditingFormItemDto { Order = 13, DataField = "ContentEn", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxHtmlEditor, EditorOptions=EditorOptionValues.HtmlEditorOptions }
] ]
@ -4648,7 +4702,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
[ [
new EditingFormItemDto { Order = 1, DataField = "Name", ColSpan = 2, IsRequired = true, EditorType2=EditorTypes.dxTextBox }, new EditingFormItemDto { Order = 1, DataField = "Name", ColSpan = 2, IsRequired = true, EditorType2=EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 2, DataField = "Progress", ColSpan = 2, IsRequired = true, EditorType2=EditorTypes.dxNumberBox }, new EditingFormItemDto { Order = 2, DataField = "Progress", ColSpan = 2, IsRequired = true, EditorType2=EditorTypes.dxNumberBox },
new EditingFormItemDto { Order = 3, DataField = "IsDefault", ColSpan = 2, IsRequired = false, EditorType2=EditorTypes.dxCheckBox }, new EditingFormItemDto { Order = 3, DataField = "IsDefault", ColSpan = 2, EditorType2=EditorTypes.dxCheckBox },
new EditingFormItemDto { Order = 4, DataField = "SkillTypeId", ColSpan = 2, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order = 4, DataField = "SkillTypeId", ColSpan = 2, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
] ]
} }

View file

@ -317,6 +317,12 @@ public static class LookupQueryValues
$"WHERE \"IsEnabled\" = 'true' " + $"WHERE \"IsEnabled\" = 'true' " +
$"ORDER BY \"Name\";"; $"ORDER BY \"Name\";";
public static string PermissionGroupValues =
$"SELECT \"Name\" AS \"Key\", " +
$"\"DisplayName\" AS \"Name\" " +
$"FROM \"AbpPermissionGroups\" " +
$"ORDER BY \"Name\";";
public static string MenuCodeValues = public static string MenuCodeValues =
$"SELECT " + $"SELECT " +
$"\"Code\" AS \"Key\", " + $"\"Code\" AS \"Key\", " +

View file

@ -14,12 +14,13 @@ public class BlogPost : FullAuditedEntity<Guid>, IMultiTenant
public string ContentEn { get; set; } public string ContentEn { get; set; }
public string Summary { get; set; } public string Summary { get; set; }
public string CoverImage { get; set; } public string CoverImage { get; set; }
public DateTime ReadTime { get; set; } public string ReadTime { get; set; }
public Guid CategoryId { get; set; } public Guid CategoryId { get; set; }
public virtual BlogCategory Category { get; set; } public virtual BlogCategory Category { get; set; }
public Guid AuthorId { get; set; } public Guid EmployeeId { get; set; }
public virtual Employee Employee { get; set; }
public int? ViewCount { get; set; } = 0; public int? ViewCount { get; set; } = 0;
public int? LikeCount { get; set; } = 0; public int? LikeCount { get; set; } = 0;

View file

@ -74,5 +74,6 @@ public class Employee : FullAuditedEntity<Guid>, IMultiTenant
public ICollection<Expense> ExpenseRequests { get; set; } public ICollection<Expense> ExpenseRequests { get; set; }
public ICollection<SurveyResponse> SurveyResponses { get; set; } public ICollection<SurveyResponse> SurveyResponses { get; set; }
public ICollection<Partner> Partners { get; set; } public ICollection<Partner> Partners { get; set; }
public ICollection<BlogPost> BlogPosts { get; set; }
} }

View file

@ -1516,6 +1516,11 @@ public class PlatformDbContext :
.WithMany(x => x.Posts) .WithMany(x => x.Posts)
.HasForeignKey(x => x.CategoryId) .HasForeignKey(x => x.CategoryId)
.OnDelete(DeleteBehavior.Restrict); .OnDelete(DeleteBehavior.Restrict);
b.HasOne(x => x.Employee)
.WithMany(x => x.BlogPosts)
.HasForeignKey(x => x.EmployeeId)
.OnDelete(DeleteBehavior.Restrict);
}); });
builder.Entity<Demo>(b => builder.Entity<Demo>(b =>

View file

@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore;
namespace Kurs.Platform.Migrations namespace Kurs.Platform.Migrations
{ {
[DbContext(typeof(PlatformDbContext))] [DbContext(typeof(PlatformDbContext))]
[Migration("20251104083431_Initial")] [Migration("20251104115742_Initial")]
partial class Initial partial class Initial
{ {
/// <inheritdoc /> /// <inheritdoc />
@ -1389,9 +1389,6 @@ namespace Kurs.Platform.Migrations
b.Property<Guid>("Id") b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.Property<Guid>("AuthorId")
.HasColumnType("uniqueidentifier");
b.Property<Guid>("CategoryId") b.Property<Guid>("CategoryId")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
@ -1426,6 +1423,9 @@ namespace Kurs.Platform.Migrations
.HasColumnType("datetime2") .HasColumnType("datetime2")
.HasColumnName("DeletionTime"); .HasColumnName("DeletionTime");
b.Property<Guid>("EmployeeId")
.HasColumnType("uniqueidentifier");
b.Property<bool>("IsDeleted") b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd() .ValueGeneratedOnAdd()
.HasColumnType("bit") .HasColumnType("bit")
@ -1449,8 +1449,8 @@ namespace Kurs.Platform.Migrations
b.Property<DateTime?>("PublishedAt") b.Property<DateTime?>("PublishedAt")
.HasColumnType("datetime2"); .HasColumnType("datetime2");
b.Property<DateTime>("ReadTime") b.Property<string>("ReadTime")
.HasColumnType("datetime2"); .HasColumnType("nvarchar(max)");
b.Property<string>("Slug") b.Property<string>("Slug")
.IsRequired() .IsRequired()
@ -1478,6 +1478,8 @@ namespace Kurs.Platform.Migrations
b.HasIndex("CategoryId"); b.HasIndex("CategoryId");
b.HasIndex("EmployeeId");
b.HasIndex("IsPublished"); b.HasIndex("IsPublished");
b.HasIndex("PublishedAt"); b.HasIndex("PublishedAt");
@ -12415,7 +12417,15 @@ namespace Kurs.Platform.Migrations
.OnDelete(DeleteBehavior.Restrict) .OnDelete(DeleteBehavior.Restrict)
.IsRequired(); .IsRequired();
b.HasOne("Kurs.Platform.Entities.Employee", "Employee")
.WithMany()
.HasForeignKey("EmployeeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Category"); b.Navigation("Category");
b.Navigation("Employee");
}); });
modelBuilder.Entity("Kurs.Platform.Entities.BranchUsers", b => modelBuilder.Entity("Kurs.Platform.Entities.BranchUsers", b =>

View file

@ -2618,45 +2618,6 @@ namespace Kurs.Platform.Migrations
onDelete: ReferentialAction.Restrict); onDelete: ReferentialAction.Restrict);
}); });
migrationBuilder.CreateTable(
name: "Adm_T_BlogPost",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Title = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: false),
Slug = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: false),
ContentTr = table.Column<string>(type: "nvarchar(max)", nullable: false),
ContentEn = table.Column<string>(type: "nvarchar(max)", nullable: false),
Summary = table.Column<string>(type: "nvarchar(512)", maxLength: 512, nullable: false),
CoverImage = table.Column<string>(type: "nvarchar(512)", maxLength: 512, nullable: true),
ReadTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CategoryId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
AuthorId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
ViewCount = table.Column<int>(type: "int", nullable: true),
LikeCount = table.Column<int>(type: "int", nullable: true),
CommentCount = table.Column<int>(type: "int", nullable: true),
IsPublished = table.Column<bool>(type: "bit", nullable: false),
PublishedAt = table.Column<DateTime>(type: "datetime2", nullable: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false),
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Adm_T_BlogPost", x => x.Id);
table.ForeignKey(
name: "FK_Adm_T_BlogPost_Adm_T_BlogCategory_CategoryId",
column: x => x.CategoryId,
principalTable: "Adm_T_BlogCategory",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
});
migrationBuilder.CreateTable( migrationBuilder.CreateTable(
name: "Adm_T_OrderItem", name: "Adm_T_OrderItem",
columns: table => new columns: table => new
@ -4080,6 +4041,45 @@ namespace Kurs.Platform.Migrations
onDelete: ReferentialAction.Restrict); onDelete: ReferentialAction.Restrict);
}); });
migrationBuilder.CreateTable(
name: "Adm_T_BlogPost",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Title = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: false),
Slug = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: false),
ContentTr = table.Column<string>(type: "nvarchar(max)", nullable: false),
ContentEn = table.Column<string>(type: "nvarchar(max)", nullable: false),
Summary = table.Column<string>(type: "nvarchar(512)", maxLength: 512, nullable: false),
CoverImage = table.Column<string>(type: "nvarchar(512)", maxLength: 512, nullable: true),
ReadTime = table.Column<string>(type: "nvarchar(max)", nullable: true),
CategoryId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
EmployeeId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
ViewCount = table.Column<int>(type: "int", nullable: true),
LikeCount = table.Column<int>(type: "int", nullable: true),
CommentCount = table.Column<int>(type: "int", nullable: true),
IsPublished = table.Column<bool>(type: "bit", nullable: false),
PublishedAt = table.Column<DateTime>(type: "datetime2", nullable: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false),
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Adm_T_BlogPost", x => x.Id);
table.ForeignKey(
name: "FK_Adm_T_BlogPost_Adm_T_BlogCategory_CategoryId",
column: x => x.CategoryId,
principalTable: "Adm_T_BlogCategory",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
});
migrationBuilder.CreateTable( migrationBuilder.CreateTable(
name: "Adm_T_Partner", name: "Adm_T_Partner",
columns: table => new columns: table => new
@ -5371,6 +5371,11 @@ namespace Kurs.Platform.Migrations
table: "Adm_T_BlogPost", table: "Adm_T_BlogPost",
column: "CategoryId"); column: "CategoryId");
migrationBuilder.CreateIndex(
name: "IX_Adm_T_BlogPost_EmployeeId",
table: "Adm_T_BlogPost",
column: "EmployeeId");
migrationBuilder.CreateIndex( migrationBuilder.CreateIndex(
name: "IX_Adm_T_BlogPost_IsPublished", name: "IX_Adm_T_BlogPost_IsPublished",
table: "Adm_T_BlogPost", table: "Adm_T_BlogPost",
@ -6024,6 +6029,14 @@ namespace Kurs.Platform.Migrations
table: "Scp_T_MaterialGroup", table: "Scp_T_MaterialGroup",
column: "ParentGroupId"); column: "ParentGroupId");
migrationBuilder.AddForeignKey(
name: "FK_Adm_T_BlogPost_Hr_T_Employee_EmployeeId",
table: "Adm_T_BlogPost",
column: "EmployeeId",
principalTable: "Hr_T_Employee",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey( migrationBuilder.AddForeignKey(
name: "FK_Adm_T_Partner_Hr_T_Employee_AssignedEmployeeId", name: "FK_Adm_T_Partner_Hr_T_Employee_AssignedEmployeeId",
table: "Adm_T_Partner", table: "Adm_T_Partner",

View file

@ -1386,9 +1386,6 @@ namespace Kurs.Platform.Migrations
b.Property<Guid>("Id") b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.Property<Guid>("AuthorId")
.HasColumnType("uniqueidentifier");
b.Property<Guid>("CategoryId") b.Property<Guid>("CategoryId")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
@ -1423,6 +1420,9 @@ namespace Kurs.Platform.Migrations
.HasColumnType("datetime2") .HasColumnType("datetime2")
.HasColumnName("DeletionTime"); .HasColumnName("DeletionTime");
b.Property<Guid>("EmployeeId")
.HasColumnType("uniqueidentifier");
b.Property<bool>("IsDeleted") b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd() .ValueGeneratedOnAdd()
.HasColumnType("bit") .HasColumnType("bit")
@ -1446,8 +1446,8 @@ namespace Kurs.Platform.Migrations
b.Property<DateTime?>("PublishedAt") b.Property<DateTime?>("PublishedAt")
.HasColumnType("datetime2"); .HasColumnType("datetime2");
b.Property<DateTime>("ReadTime") b.Property<string>("ReadTime")
.HasColumnType("datetime2"); .HasColumnType("nvarchar(max)");
b.Property<string>("Slug") b.Property<string>("Slug")
.IsRequired() .IsRequired()
@ -1475,6 +1475,8 @@ namespace Kurs.Platform.Migrations
b.HasIndex("CategoryId"); b.HasIndex("CategoryId");
b.HasIndex("EmployeeId");
b.HasIndex("IsPublished"); b.HasIndex("IsPublished");
b.HasIndex("PublishedAt"); b.HasIndex("PublishedAt");
@ -12412,7 +12414,15 @@ namespace Kurs.Platform.Migrations
.OnDelete(DeleteBehavior.Restrict) .OnDelete(DeleteBehavior.Restrict)
.IsRequired(); .IsRequired();
b.HasOne("Kurs.Platform.Entities.Employee", "Employee")
.WithMany()
.HasForeignKey("EmployeeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Category"); b.Navigation("Category");
b.Navigation("Employee");
}); });
modelBuilder.Entity("Kurs.Platform.Entities.BranchUsers", b => modelBuilder.Entity("Kurs.Platform.Entities.BranchUsers", b =>

View file

@ -533,7 +533,7 @@
"Summary": "blog.posts.ai.excerpt", "Summary": "blog.posts.ai.excerpt",
"CoverImage": "https://images.pexels.com/photos/8386434/pexels-photo-8386434.jpeg?auto=compress&cs=tinysrgb&w=1920", "CoverImage": "https://images.pexels.com/photos/8386434/pexels-photo-8386434.jpeg?auto=compress&cs=tinysrgb&w=1920",
"CategoryName": "blog.categories.technology", "CategoryName": "blog.categories.technology",
"AuthorId": "1668adf0-fd2a-5216-9834-6b6874ec2a05" "EmployeeCode": "EMP-001"
}, },
{ {
"Title": "blog.posts.web.title", "Title": "blog.posts.web.title",
@ -544,7 +544,7 @@
"Summary": "blog.posts.web.excerpt", "Summary": "blog.posts.web.excerpt",
"CoverImage": "https://images.pexels.com/photos/11035471/pexels-photo-11035471.jpeg?auto=compress&cs=tinysrgb&w=1920", "CoverImage": "https://images.pexels.com/photos/11035471/pexels-photo-11035471.jpeg?auto=compress&cs=tinysrgb&w=1920",
"CategoryName": "blog.categories.webdev", "CategoryName": "blog.categories.webdev",
"AuthorId": "7df16a77-92ed-50e6-8749-ae34345c01b9" "EmployeeCode": "EMP-002"
}, },
{ {
"Title": "blog.posts.security.title", "Title": "blog.posts.security.title",
@ -555,7 +555,7 @@
"Summary": "blog.posts.security.excerpt", "Summary": "blog.posts.security.excerpt",
"CoverImage": "https://images.pexels.com/photos/5380642/pexels-photo-5380642.jpeg?auto=compress&cs=tinysrgb&w=1920", "CoverImage": "https://images.pexels.com/photos/5380642/pexels-photo-5380642.jpeg?auto=compress&cs=tinysrgb&w=1920",
"CategoryName": "blog.categories.security", "CategoryName": "blog.categories.security",
"AuthorId": "c107a187-5e41-51e1-a5b3-5bf85c16b39e" "EmployeeCode": "EMP-003"
}, },
{ {
"Title": "blog.posts.mobile.title", "Title": "blog.posts.mobile.title",
@ -566,7 +566,7 @@
"ReadTime": "4 dk", "ReadTime": "4 dk",
"CoverImage": "https://images.pexels.com/photos/13017583/pexels-photo-13017583.jpeg?auto=compress&cs=tinysrgb&w=1920", "CoverImage": "https://images.pexels.com/photos/13017583/pexels-photo-13017583.jpeg?auto=compress&cs=tinysrgb&w=1920",
"CategoryName": "blog.categories.mobile", "CategoryName": "blog.categories.mobile",
"AuthorId": "c107a187-5e41-51e1-a5b3-5bf85c16b39e" "EmployeeCode": "EMP-002"
}, },
{ {
"Title": "blog.posts.database.title", "Title": "blog.posts.database.title",
@ -577,7 +577,7 @@
"ReadTime": "8 dk", "ReadTime": "8 dk",
"CoverImage": "https://images.pexels.com/photos/325229/pexels-photo-325229.jpeg?auto=compress&cs=tinysrgb&w=1920", "CoverImage": "https://images.pexels.com/photos/325229/pexels-photo-325229.jpeg?auto=compress&cs=tinysrgb&w=1920",
"CategoryName": "blog.categories.database", "CategoryName": "blog.categories.database",
"AuthorId": "8f49d028-69d0-5d2b-abc3-559b7dee180f" "EmployeeCode": "EMP-004"
}, },
{ {
"Title": "blog.posts.digital.title", "Title": "blog.posts.digital.title",
@ -588,7 +588,7 @@
"ReadTime": "6 dk", "ReadTime": "6 dk",
"CoverImage": "https://images.pexels.com/photos/7681091/pexels-photo-7681091.jpeg?auto=compress&cs=tinysrgb&w=1920", "CoverImage": "https://images.pexels.com/photos/7681091/pexels-photo-7681091.jpeg?auto=compress&cs=tinysrgb&w=1920",
"CategoryName": "blog.categories.digital", "CategoryName": "blog.categories.digital",
"AuthorId": "727ec3f0-75dd-54e2-8ae6-13d49727ff58" "EmployeeCode": "EMP-005"
} }
], ],
"Contacts": [ "Contacts": [

View file

@ -385,52 +385,6 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
} }
} }
foreach (var item in items.BlogCategories)
{
var exists = await _blogCategoryRepository.AnyAsync(x => x.Name == item.Name);
if (!exists)
{
var newCategory = new BlogCategory
{
Name = item.Name,
Slug = item.Slug,
Description = item.Description,
DisplayOrder = item.DisplayOrder,
PostCount = item.PostCount
};
await _blogCategoryRepository.InsertAsync(newCategory, autoSave: true);
}
}
foreach (var item in items.BlogPosts)
{
var exists = await _blogPostsRepository.AnyAsync(x => x.Title == item.Title);
if (!exists)
{
var category = await _blogCategoryRepository.FirstOrDefaultAsync(x => x.Name == item.CategoryName);
if (category != null)
{
await _blogPostsRepository.InsertAsync(new BlogPost
{
Title = item.Title,
Slug = item.Slug,
ContentTr = item.ContentTr,
ContentEn = item.ContentEn,
Summary = item.Summary,
CoverImage = item.CoverImage,
ReadTime = item.ReadTime,
CategoryId = category.Id,
AuthorId = item.AuthorId,
IsPublished = true,
PublishedAt = DateTime.UtcNow
});
}
}
}
foreach (var item in items.ForumCategories) foreach (var item in items.ForumCategories)
{ {
var exists = await _forumCategoryRepository.AnyAsync(x => x.Name == item.Name); var exists = await _forumCategoryRepository.AnyAsync(x => x.Name == item.Name);
@ -1080,6 +1034,54 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
}, autoSave: true); }, autoSave: true);
} }
foreach (var item in items.BlogCategories)
{
var exists = await _blogCategoryRepository.AnyAsync(x => x.Name == item.Name);
if (!exists)
{
var newCategory = new BlogCategory
{
Name = item.Name,
Slug = item.Slug,
Description = item.Description,
DisplayOrder = item.DisplayOrder,
PostCount = item.PostCount
};
await _blogCategoryRepository.InsertAsync(newCategory, autoSave: true);
}
}
foreach (var item in items.BlogPosts)
{
var exists = await _blogPostsRepository.AnyAsync(x => x.Title == item.Title);
if (!exists)
{
var category = await _blogCategoryRepository.FirstOrDefaultAsync(x => x.Name == item.CategoryName);
var employee = await _employeeRepository.FirstOrDefaultAsync(x => x.Code == item.EmployeeCode);
if (category != null && employee != null)
{
await _blogPostsRepository.InsertAsync(new BlogPost
{
Title = item.Title,
Slug = item.Slug,
ContentTr = item.ContentTr,
ContentEn = item.ContentEn,
Summary = item.Summary,
CoverImage = item.CoverImage,
ReadTime = item.ReadTime,
CategoryId = category.Id,
EmployeeId = employee.Id,
IsPublished = true,
PublishedAt = DateTime.UtcNow
});
}
}
}
foreach (var item in items.Leaves) foreach (var item in items.Leaves)
{ {
var employee = await _employeeRepository.FirstOrDefaultAsync(x => x.Code == item.EmployeeCode); var employee = await _employeeRepository.FirstOrDefaultAsync(x => x.Code == item.EmployeeCode);
@ -1099,7 +1101,7 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
IsHalfDay = item.IsHalfDay, IsHalfDay = item.IsHalfDay,
Reason = item.Reason, Reason = item.Reason,
Status = item.Status, Status = item.Status,
AppliedDate = _clock.Now, AppliedDate = _clock.Now,
}, autoSave: true); }, autoSave: true);
} }
} }

View file

@ -513,12 +513,12 @@ public class BlogPostSeedDto
public string Slug { get; set; } public string Slug { get; set; }
public string ContentTr { get; set; } public string ContentTr { get; set; }
public string ContentEn { get; set; } public string ContentEn { get; set; }
public DateTime ReadTime { get; set; } public string ReadTime { get; set; }
public string Summary { get; set; } public string Summary { get; set; }
public string CoverImage { get; set; } public string CoverImage { get; set; }
public string CategoryName { get; set; } public string CategoryName { get; set; }
public Guid AuthorId { get; set; } public string EmployeeCode { get; set; }
public Boolean IsPublished { get; set; } public bool IsPublished { get; set; }
public DateTime PublishedAt { get; set; } public DateTime PublishedAt { get; set; }
} }

View file

@ -5,6 +5,7 @@ import './index.css'
import { UiEvalService } from './services/UiEvalService' import { UiEvalService } from './services/UiEvalService'
import 'devextreme-react/text-area' import 'devextreme-react/text-area'
import 'devextreme-react/html-editor' import 'devextreme-react/html-editor'
import 'devextreme-react/autocomplete'
// import config from 'devextreme/core/config' // import config from 'devextreme/core/config'
// import { licenseKey } from './devextreme-license' // import { licenseKey } from './devextreme-license'

View file

@ -8,7 +8,7 @@ export interface BlogPost {
contentEn?: string contentEn?: string
summary: string summary: string
coverImage?: string coverImage?: string
author: { employee: {
id: string id: string
name: string name: string
avatar?: string avatar?: string
@ -75,6 +75,6 @@ export interface BlogListParams {
categoryId?: string categoryId?: string
tag?: string tag?: string
search?: string search?: string
authorId?: string employeeId?: string
sortBy?: 'latest' | 'popular' | 'trending' sortBy?: 'latest' | 'popular' | 'trending'
} }

View file

@ -53,7 +53,7 @@ export interface EventDto {
// Etkinlik Yorumu // Etkinlik Yorumu
export interface EventCommentDto { export interface EventCommentDto {
id: string id: string
author: EmployeeDto employee: EmployeeDto
content: string content: string
creationTime: Date creationTime: Date
likes: number likes: number

View file

@ -1,4 +1,4 @@
import { FaTimes } from 'react-icons/fa'; import { FaTimes } from 'react-icons/fa'
import { useStoreState } from '@/store/store' import { useStoreState } from '@/store/store'
import { useLocalization } from '@/utils/hooks/useLocalization' import { useLocalization } from '@/utils/hooks/useLocalization'
import { Field, FieldProps, Form, Formik } from 'formik' import { Field, FieldProps, Form, Formik } from 'formik'
@ -61,6 +61,7 @@ export function CreateTopicModal({ onClose, onSubmit }: CreateTopicModalProps) {
label={translate('::App.Forum.TopicManagement.Baslik')} label={translate('::App.Forum.TopicManagement.Baslik')}
invalid={errors.title && touched.title} invalid={errors.title && touched.title}
errorMessage={errors.title} errorMessage={errors.title}
asterisk
> >
<Field <Field
type="text" type="text"
@ -73,10 +74,10 @@ export function CreateTopicModal({ onClose, onSubmit }: CreateTopicModalProps) {
</FormItem> </FormItem>
<FormItem <FormItem
asterisk
label={translate('::App.Forum.TopicManagement.Content')} label={translate('::App.Forum.TopicManagement.Content')}
invalid={errors.content && touched.content} invalid={errors.content && touched.content}
errorMessage={errors.content} errorMessage={errors.content}
asterisk
> >
<Field name="content"> <Field name="content">
{({ field }: FieldProps) => ( {({ field }: FieldProps) => (

View file

@ -194,7 +194,7 @@ const Blog = () => {
<div className="flex items-center text-sm text-gray-500 space-x-4"> <div className="flex items-center text-sm text-gray-500 space-x-4">
<div className="flex items-center"> <div className="flex items-center">
<FaUser size={16} className="mr-1" /> <FaUser size={16} className="mr-1" />
{post.author.name} {post.employee.name}
</div> </div>
<div className="flex items-center"> <div className="flex items-center">
<FaCalendarAlt size={16} className="mr-1" /> <FaCalendarAlt size={16} className="mr-1" />

View file

@ -11,7 +11,7 @@ import { Loading } from '@/components/shared'
interface PostData { interface PostData {
image?: string image?: string
author?: { employee?: {
id: string id: string
name: string name: string
avatar?: string avatar?: string
@ -38,7 +38,7 @@ const BlogDetail: React.FC = () => {
setBlogPost(response) setBlogPost(response)
setPostData({ setPostData({
image: response.coverImage, image: response.coverImage,
author: response.author, employee: response.employee,
}) })
} else { } else {
setError('Blog post ID is missing.') setError('Blog post ID is missing.')
@ -106,7 +106,7 @@ const BlogDetail: React.FC = () => {
</h1> </h1>
<div className="flex items-center text-sm text-gray-500 space-x-4 mb-8"> <div className="flex items-center text-sm text-gray-500 space-x-4 mb-8">
<div className="flex items-center"> <div className="flex items-center">
<span>{postData.author?.name}</span> <span>{postData.employee?.name}</span>
</div> </div>
<div className="flex items-center"> <div className="flex items-center">
{blogPost.publishedAt && showDbDateAsIs(blogPost.publishedAt)} {blogPost.publishedAt && showDbDateAsIs(blogPost.publishedAt)}