erp-platform/api/src/Kurs.Platform.DbMigrator/Seeds/MenuSeeder.cs
2025-06-15 11:55:10 +03:00

522 lines
18 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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,
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
});
//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
},
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
},
]);
//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
},
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
});
//Public Apis Management
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
});
//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
});
#endregion
}
}