erp-platform/api/src/Kurs.Platform.DbMigrator/Seeds/MenuSeeder.cs

523 lines
18 KiB
C#
Raw Normal View History

2025-05-06 06:45:49 +00:00
using System;
using System.Threading.Tasks;
using Kurs.Platform.Entities;
using Volo.Abp.Data;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.TenantManagement;
using static Kurs.Platform.Data.Seeds.SeedConsts;
using static Volo.Abp.Identity.IdentityPermissions;
namespace Kurs.Platform.Data.Seeds;
public class MenuSeeder : IDataSeedContributor, ITransientDependency
{
private readonly IRepository<Menu, Guid> _repository;
public MenuSeeder(
IRepository<Menu, Guid> repository)
{
_repository = repository;
}
public async Task SeedAsync(DataSeedContext context)
{
if (await _repository.GetCountAsync() > 0)
{
return;
}
#region Home
var menuHome = await _repository.InsertAsync(new Menu
{
Code = AppCodes.Home,
DisplayName = AppCodes.Home,
Order = 0,
IsDisabled = false,
ParentCode = null,
Icon = "FcHome",
Target = null,
ElementId = null,
CssClass = null,
Url = "/"
});
#endregion
#region Settings
await _repository.InsertAsync(new Menu
{
Code = AppCodes.Setting,
DisplayName = AppCodes.Setting,
Order = 2,
IsDisabled = false,
Icon = "FcList",
Url = "/settings",
RequiredPermissionName = AppCodes.Setting
});
#endregion
#region Platform
await _repository.InsertAsync(new Menu
{
Code = SeedConsts.Platform,
DisplayName = SeedConsts.Platform,
Order = 9,
IsDisabled = false,
Icon = "FcTabletAndroid"
});
#endregion
//Administrator
#region Administration
var menuAdministration = await _repository.InsertAsync(new Menu
{
Code = AppCodes.Administration,
DisplayName = AppCodes.Administration,
Order = 3,
IsDisabled = false,
ParentCode = null,
Icon = "FcOrganization",
Target = null,
ElementId = null,
CssClass = null
});
//Tenant Management
await _repository.InsertAsync(new Menu
{
Code = TenantManagementPermissions.Tenants.Default,
DisplayName = TenantManagementPermissions.Tenants.Default,
Order = -2,
2025-05-06 06:45:49 +00:00
IsDisabled = false,
ParentCode = menuAdministration.Code,
Icon = "FcDepartment",
Target = null,
ElementId = null,
CssClass = null,
Url = $"/list/{PlatformConsts.ListFormCodes.Tenants}",
RequiredPermissionName = TenantManagementPermissions.Tenants.Default
});
//Branch Management
await _repository.InsertAsync(new Menu
{
Code = AppCodes.Branches,
DisplayName = AppCodes.Branches,
Order = -1,
IsDisabled = false,
ParentCode = menuAdministration.Code,
Icon = "FcShop",
Target = null,
ElementId = null,
CssClass = null,
Url = $"/list/{PlatformConsts.ListFormCodes.Branch}",
RequiredPermissionName = AppCodes.Branches
});
2025-05-06 06:45:49 +00:00
//Setting Management
var menuSettings = await _repository.InsertAsync(new Menu
{
Code = AppCodes.Settings.Default,
DisplayName = AppCodes.Settings.Default,
Order = 0,
IsDisabled = false,
ParentCode = menuAdministration.Code,
Icon = "FcCircuit",
Target = null,
ElementId = null,
CssClass = null
});
await _repository.InsertManyAsync([
new Menu //SettingDefinitions Management
{
Code = AppCodes.Settings.SettingDefinitions,
DisplayName = AppCodes.Settings.SettingDefinitions,
Order = 1,
IsDisabled = false,
ParentCode = menuSettings.Code,
Icon = "FcSupport",
Target = null,
ElementId = null,
CssClass = null,
Url = $"/list/{PlatformConsts.ListFormCodes.SettingDefinition}",
RequiredPermissionName = AppCodes.Settings.SettingDefinitions
},
new Menu //Global Search Ayarları
{
Code = AppCodes.Settings.GlobalSearch,
DisplayName = AppCodes.Settings.GlobalSearch,
Order = 2,
IsDisabled = false,
ParentCode = menuSettings.Code,
Icon = "FcSearch",
Target = null,
ElementId = null,
CssClass = null,
Url = $"/list/{PlatformConsts.ListFormCodes.GlobalSearch}",
RequiredPermissionName = AppCodes.Settings.GlobalSearch
},
]);
//Languages Management
var menuLanguages = await _repository.InsertAsync(new Menu
{
Code = AppCodes.Languages.Default,
DisplayName = AppCodes.Languages.Default,
Order = 1,
IsDisabled = false,
ParentCode = menuAdministration.Code,
Icon = "FcGlobe",
Target = null,
ElementId = null,
CssClass = null
});
await _repository.InsertManyAsync([
new Menu
{
Code = AppCodes.Languages.Language,
DisplayName= AppCodes.Languages.Language,
Order = 1,
IsDisabled = false,
ParentCode = menuLanguages.Code,
Icon = "FcGraduationCap",
Target = null,
ElementId = null,
CssClass = null,
Url = $"/list/{PlatformConsts.ListFormCodes.Language}",
RequiredPermissionName= AppCodes.Languages.Language
},
new Menu
{
Code = AppCodes.Languages.LanguageText,
DisplayName= AppCodes.Languages.LanguageText,
Order = 2,
IsDisabled = false,
ParentCode = menuLanguages.Code,
Icon = "FcMindMap",
Target = null,
ElementId = null,
CssClass = null,
Url = $"/list/{PlatformConsts.ListFormCodes.LanguageText}",
RequiredPermissionName = AppCodes.Languages.LanguageText
},
]);
//Identity Management
var menuIdentity = await _repository.InsertAsync(new Menu
{
Code = AbpIdentity.GroupName,
DisplayName = AbpIdentity.GroupName,
Order = 2,
IsDisabled = false,
ParentCode = menuAdministration.Code,
Icon = "FcConferenceCall",
Target = null,
ElementId = null,
CssClass = null
});
await _repository.InsertManyAsync([
new Menu
{
Code = AbpIdentity.PermissionGroups.Default,
DisplayName= AbpIdentity.PermissionGroups.Default,
Order = 0,
IsDisabled = false,
ParentCode = menuIdentity.Code,
Icon = "FcEngineering",
Target = null,
ElementId = null,
CssClass = null,
Url = $"/list/{PlatformConsts.ListFormCodes.PermissionGroup}",
RequiredPermissionName = AbpIdentity.PermissionGroups.Default
},
new Menu
{
Code = AbpIdentity.Permissions.Default,
DisplayName= AbpIdentity.Permissions.Default,
Order = 1,
IsDisabled = false,
ParentCode = menuIdentity.Code,
Icon = "FcSupport",
Target = null,
ElementId = null,
CssClass = null,
Url = $"/list/{PlatformConsts.ListFormCodes.Permission}",
RequiredPermissionName = AbpIdentity.Permissions.Default
},
new Menu
{
Code = Roles.Default,
DisplayName = Roles.Default,
Order = 2,
IsDisabled = false,
ParentCode = menuIdentity.Code,
Icon = "FcFlowChart",
Target = null,
ElementId = null,
CssClass = null,
Url = $"/list/{PlatformConsts.ListFormCodes.Roles}",
RequiredPermissionName = Roles.Default
},
new Menu
{
Code = Users.Default,
DisplayName= Users.Default,
Order = 3,
IsDisabled = false,
ParentCode = menuIdentity.Code,
Icon = "FcBusinessman",
Target = null,
ElementId = null,
CssClass = null,
Url = $"/list/{PlatformConsts.ListFormCodes.Users}",
RequiredPermissionName = Users.Default
},
new Menu
{
Code = AbpIdentity.OrganizationUnits.Default,
DisplayName= AbpIdentity.OrganizationUnits.Default,
Order = 4,
IsDisabled = false,
ParentCode = menuIdentity.Code,
Icon = "FcOrganization",
Target = null,
ElementId = null,
CssClass = null,
Url = $"/admin/ous",
RequiredPermissionName = AbpIdentity.OrganizationUnits.Default
},
new Menu
{
Code = AppCodes.IpRestrictions,
DisplayName = AppCodes.IpRestrictions,
Order = 5,
IsDisabled = false,
ParentCode = menuIdentity.Code,
Icon = "FcNfcSign",
Target = null,
ElementId = null,
CssClass = null,
Url = $"/list/{PlatformConsts.ListFormCodes.IpRestriction}",
RequiredPermissionName = AppCodes.IpRestrictions
},
2025-06-11 14:21:51 +00:00
new Menu
{
Code = AppCodes.IdentityPermissions.Users.SecurityLogs,
DisplayName = AppCodes.IdentityPermissions.Users.SecurityLogs,
Order = 6,
IsDisabled = false,
ParentCode = menuIdentity.Code,
Icon = "FcPrivacy",
Target = null,
ElementId = null,
CssClass = null,
Url = $"/list/{PlatformConsts.ListFormCodes.SecurityLog}",
RequiredPermissionName = AppCodes.IdentityPermissions.Users.SecurityLogs
},
2025-05-06 06:45:49 +00:00
]);
//Menu Management
await _repository.InsertAsync(new Menu
{
Code = AppCodes.Menus,
DisplayName = AppCodes.Menus,
Order = 3,
IsDisabled = false,
ParentCode = menuAdministration.Code,
Icon = "FcMenu",
Target = null,
ElementId = null,
CssClass = null,
Url = $"/list/{PlatformConsts.ListFormCodes.Menu}",
RequiredPermissionName = AppCodes.Menus
});
//Listform Management
var menuListFormManagement = await _repository.InsertAsync(new Menu
{
Code = AppCodes.Listforms.Default,
DisplayName = AppCodes.Listforms.Default,
Order = 4,
IsDisabled = false,
ParentCode = menuAdministration.Code,
Icon = "FcList",
Target = null,
ElementId = null,
CssClass = null
});
await _repository.InsertManyAsync([
new Menu
{
Code = AppCodes.Listforms.DataSource,
DisplayName= AppCodes.Listforms.DataSource,
Order = 0,
IsDisabled = false,
ParentCode = menuListFormManagement.Code,
Icon = "FcAcceptDatabase",
Target = null,
ElementId = null,
CssClass = null,
Url = $"/list/{PlatformConsts.ListFormCodes.DataSource}",
RequiredPermissionName = AppCodes.Listforms.DataSource
2025-06-11 14:21:51 +00:00
},
2025-05-06 06:45:49 +00:00
new Menu
{
Code = AppCodes.Listforms.Wizard,
DisplayName= AppCodes.Listforms.Wizard,
Order = 1,
IsDisabled = false,
ParentCode = menuListFormManagement.Code,
Icon = "FcFlashAuto",
Target = null,
ElementId = null,
CssClass = null,
Url = $"/admin/listform/wizard",
RequiredPermissionName = AppCodes.Listforms.Wizard
},
new Menu
{
Code = AppCodes.Listforms.Listform,
DisplayName = AppCodes.Listforms.Listform,
Order = 2,
IsDisabled = false,
ParentCode = menuListFormManagement.Code,
Icon = "FcDataSheet",
Target = null,
ElementId = null,
CssClass = null,
Url = $"/list/{PlatformConsts.ListFormCodes.Listform}",
RequiredPermissionName = AppCodes.Listforms.Listform
},
new Menu
{
Code = AppCodes.Listforms.Chart,
DisplayName= AppCodes.Listforms.Chart,
Order = 3,
IsDisabled = false,
ParentCode = menuListFormManagement.Code,
Icon = "FcTodoList",
Target = null,
ElementId = null,
CssClass = null,
Url = $"/list/{PlatformConsts.ListFormCodes.Chart}",
RequiredPermissionName= AppCodes.Listforms.Chart
},
]);
//Notification Management
var menuNotifications = await _repository.InsertAsync(new Menu
{
Code = AppCodes.Notifications.Default,
DisplayName = AppCodes.Notifications.Default,
Order = 5,
IsDisabled = false,
ParentCode = menuAdministration.Code,
Icon = "FcWorkflow",
Target = null,
ElementId = null,
CssClass = null
});
await _repository.InsertManyAsync([
new Menu
{
Code = AppCodes.Notifications.NotificationRules,
DisplayName = AppCodes.Notifications.NotificationRules,
Order = 1,
IsDisabled = false,
ParentCode = menuNotifications.Code,
Icon = "FcLibrary",
Target = null,
ElementId = null,
CssClass = null,
Url = $"/list/{PlatformConsts.ListFormCodes.NotificationRule}",
RequiredPermissionName = AppCodes.Notifications.NotificationRules
},
new Menu
{
Code = AppCodes.Notifications.Notification,
DisplayName = AppCodes.Notifications.Notification,
Order = 2,
IsDisabled = false,
ParentCode = menuNotifications.Code,
Icon = "FcBrokenLink",
Target = null,
ElementId = null,
CssClass = null,
Url = $"/list/{PlatformConsts.ListFormCodes.Notification}",
RequiredPermissionName = AppCodes.Notifications.Notification
},
]);
//BackgroundWorkers Management
await _repository.InsertAsync(new Menu
{
Code = AppCodes.BackgroundWorkers,
DisplayName = AppCodes.BackgroundWorkers,
Order = 6,
IsDisabled = false,
ParentCode = menuAdministration.Code,
Icon = "FcSettings",
Target = null,
ElementId = null,
CssClass = null,
Url = $"/list/{PlatformConsts.ListFormCodes.BackgroundWorker}",
RequiredPermissionName = AppCodes.BackgroundWorkers
});
2025-06-11 14:21:51 +00:00
//Public Apis Management
2025-05-06 06:45:49 +00:00
await _repository.InsertAsync(new Menu
{
Code = AppCodes.PublicApis,
DisplayName = AppCodes.PublicApis,
Order = 7,
IsDisabled = false,
ParentCode = menuAdministration.Code,
Icon = "FcMindMap",
Target = null,
ElementId = null,
CssClass = null,
Url = $"/list/{PlatformConsts.ListFormCodes.PublicApi}",
RequiredPermissionName = AppCodes.PublicApis
});
2025-06-11 14:21:51 +00:00
//Audit Logs
await _repository.InsertAsync(new Menu
{
Code = AppCodes.AuditLogs,
DisplayName = AppCodes.AuditLogs,
Order = 8,
IsDisabled = false,
ParentCode = menuAdministration.Code,
Icon = "FcMultipleInputs",
Target = null,
ElementId = null,
CssClass = null,
Url = $"/list/{PlatformConsts.ListFormCodes.AuditLog}",
RequiredPermissionName = AppCodes.AuditLogs
});
//Entity Changes
await _repository.InsertAsync(new Menu
{
Code = AppCodes.EntityChanges,
DisplayName = AppCodes.EntityChanges,
Order = 9,
IsDisabled = false,
ParentCode = menuAdministration.Code,
Icon = "FcSurvey",
Target = null,
ElementId = null,
CssClass = null,
Url = $"/list/{PlatformConsts.ListFormCodes.EntityChange}",
RequiredPermissionName = AppCodes.EntityChanges
});
2025-05-06 06:45:49 +00:00
#endregion
}
}