Initial Commit
This commit is contained in:
4
Server/AssemblyInfo.cs
Normal file
4
Server/AssemblyInfo.cs
Normal file
@@ -0,0 +1,4 @@
|
||||
using System.Resources;
|
||||
using Microsoft.Extensions.Localization;
|
||||
|
||||
[assembly: RootNamespace("SZUAbsolventenverein.Module.AdminModules.Server")]
|
||||
132
Server/Controllers/AdminModulesController.cs
Normal file
132
Server/Controllers/AdminModulesController.cs
Normal file
@@ -0,0 +1,132 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Oqtane.Shared;
|
||||
using Oqtane.Enums;
|
||||
using Oqtane.Infrastructure;
|
||||
using SZUAbsolventenverein.Module.AdminModules.Services;
|
||||
using Oqtane.Controllers;
|
||||
using System.Net;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SZUAbsolventenverein.Module.AdminModules.Controllers
|
||||
{
|
||||
[Route(ControllerRoutes.ApiRoute)]
|
||||
public class AdminModulesController : ModuleControllerBase
|
||||
{
|
||||
private readonly IAdminModulesService _AdminModulesService;
|
||||
|
||||
public AdminModulesController(IAdminModulesService AdminModulesService, ILogManager logger, IHttpContextAccessor accessor) : base(logger, accessor)
|
||||
{
|
||||
_AdminModulesService = AdminModulesService;
|
||||
}
|
||||
|
||||
// GET: api/<controller>?moduleid=x
|
||||
[HttpGet]
|
||||
[Authorize(Policy = PolicyNames.ViewModule)]
|
||||
public async Task<IEnumerable<Models.AdminModules>> Get(string moduleid)
|
||||
{
|
||||
int ModuleId;
|
||||
if (int.TryParse(moduleid, out ModuleId) && IsAuthorizedEntityId(EntityNames.Module, ModuleId))
|
||||
{
|
||||
return await _AdminModulesService.GetAdminModulessAsync(ModuleId);
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Log(LogLevel.Error, this, LogFunction.Security, "Unauthorized AdminModules Get Attempt {ModuleId}", moduleid);
|
||||
HttpContext.Response.StatusCode = (int)HttpStatusCode.Forbidden;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// GET api/<controller>/5
|
||||
[HttpGet("{id}/{moduleid}")]
|
||||
[Authorize(Policy = PolicyNames.ViewModule)]
|
||||
public async Task<Models.AdminModules> Get(int id, int moduleid)
|
||||
{
|
||||
Models.AdminModules AdminModules = await _AdminModulesService.GetAdminModulesAsync(id, moduleid);
|
||||
if (AdminModules != null && IsAuthorizedEntityId(EntityNames.Module, AdminModules.ModuleId))
|
||||
{
|
||||
return AdminModules;
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Log(LogLevel.Error, this, LogFunction.Security, "Unauthorized AdminModules Get Attempt {AdminModulesId} {ModuleId}", id, moduleid);
|
||||
HttpContext.Response.StatusCode = (int)HttpStatusCode.Forbidden;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// POST api/<controller>
|
||||
[HttpPost]
|
||||
[Authorize(Policy = PolicyNames.EditModule)]
|
||||
public async Task<Models.AdminModules> Post([FromBody] Models.AdminModules AdminModules)
|
||||
{
|
||||
if (ModelState.IsValid && IsAuthorizedEntityId(EntityNames.Module, AdminModules.ModuleId))
|
||||
{
|
||||
AdminModules = await _AdminModulesService.AddAdminModulesAsync(AdminModules);
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Log(LogLevel.Error, this, LogFunction.Security, "Unauthorized AdminModules Post Attempt {AdminModules}", AdminModules);
|
||||
HttpContext.Response.StatusCode = (int)HttpStatusCode.Forbidden;
|
||||
AdminModules = null;
|
||||
}
|
||||
return AdminModules;
|
||||
}
|
||||
|
||||
// PUT api/<controller>/5
|
||||
[HttpPut("{id}")]
|
||||
[Authorize(Policy = PolicyNames.EditModule)]
|
||||
public async Task<Models.AdminModules> Put(int id, [FromBody] Models.AdminModules AdminModules)
|
||||
{
|
||||
if (ModelState.IsValid && AdminModules.AdminModulesId == id && IsAuthorizedEntityId(EntityNames.Module, AdminModules.ModuleId))
|
||||
{
|
||||
AdminModules = await _AdminModulesService.UpdateAdminModulesAsync(AdminModules);
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Log(LogLevel.Error, this, LogFunction.Security, "Unauthorized AdminModules Put Attempt {AdminModules}", AdminModules);
|
||||
HttpContext.Response.StatusCode = (int)HttpStatusCode.Forbidden;
|
||||
AdminModules = null;
|
||||
}
|
||||
return AdminModules;
|
||||
}
|
||||
|
||||
// DELETE api/<controller>/5
|
||||
[HttpDelete("{id}/{moduleid}")]
|
||||
[Authorize(Policy = PolicyNames.EditModule)]
|
||||
public async Task Delete(int id, int moduleid)
|
||||
{
|
||||
Models.AdminModules AdminModules = await _AdminModulesService.GetAdminModulesAsync(id, moduleid);
|
||||
if (AdminModules != null && IsAuthorizedEntityId(EntityNames.Module, AdminModules.ModuleId))
|
||||
{
|
||||
await _AdminModulesService.DeleteAdminModulesAsync(id, AdminModules.ModuleId);
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Log(LogLevel.Error, this, LogFunction.Security, "Unauthorized AdminModules Delete Attempt {AdminModulesId} {ModuleId}", id, moduleid);
|
||||
HttpContext.Response.StatusCode = (int)HttpStatusCode.Forbidden;
|
||||
}
|
||||
}
|
||||
|
||||
// GET api/<controller>/5/roles
|
||||
[HttpGet("roles/{id}")]
|
||||
[Authorize(Policy = PolicyNames.EditModule)]
|
||||
public async Task<int> GetUserCount(int id, [FromBody] Models.EmailFields EmailFields)
|
||||
{
|
||||
if (ModelState.IsValid && EmailFields.AdminModulesId == id && IsAuthorizedEntityId(EntityNames.Module, EmailFields.ModuleId))
|
||||
{
|
||||
return await _AdminModulesService.GetUsercountInRole(EmailFields);
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Log(LogLevel.Error, this, LogFunction.Security, "Unauthorized AdminModules Put Attempt {AdminModules}", EmailFields);
|
||||
HttpContext.Response.StatusCode = (int)HttpStatusCode.Forbidden;
|
||||
EmailFields = null;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
87
Server/Manager/AdminModulesManager.cs
Normal file
87
Server/Manager/AdminModulesManager.cs
Normal file
@@ -0,0 +1,87 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text.Json;
|
||||
using Oqtane.Modules;
|
||||
using Oqtane.Models;
|
||||
using Oqtane.Infrastructure;
|
||||
using Oqtane.Interfaces;
|
||||
using Oqtane.Enums;
|
||||
using Oqtane.Repository;
|
||||
using SZUAbsolventenverein.Module.AdminModules.Repository;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SZUAbsolventenverein.Module.AdminModules.Manager
|
||||
{
|
||||
public class AdminModulesManager : MigratableModuleBase, IInstallable, IPortable, ISearchable
|
||||
{
|
||||
private readonly IAdminModulesRepository _AdminModulesRepository;
|
||||
private readonly IDBContextDependencies _DBContextDependencies;
|
||||
|
||||
public AdminModulesManager(IAdminModulesRepository AdminModulesRepository, IDBContextDependencies DBContextDependencies)
|
||||
{
|
||||
_AdminModulesRepository = AdminModulesRepository;
|
||||
_DBContextDependencies = DBContextDependencies;
|
||||
}
|
||||
|
||||
public bool Install(Tenant tenant, string version)
|
||||
{
|
||||
return Migrate(new AdminModulesContext(_DBContextDependencies), tenant, MigrationType.Up);
|
||||
}
|
||||
|
||||
public bool Uninstall(Tenant tenant)
|
||||
{
|
||||
return Migrate(new AdminModulesContext(_DBContextDependencies), tenant, MigrationType.Down);
|
||||
}
|
||||
|
||||
public string ExportModule(Oqtane.Models.Module module)
|
||||
{
|
||||
string content = "";
|
||||
List<Models.AdminModules> AdminModuless = _AdminModulesRepository.GetAdminModuless(module.ModuleId).ToList();
|
||||
if (AdminModuless != null)
|
||||
{
|
||||
content = JsonSerializer.Serialize(AdminModuless);
|
||||
}
|
||||
return content;
|
||||
}
|
||||
|
||||
public void ImportModule(Oqtane.Models.Module module, string content, string version)
|
||||
{
|
||||
List<Models.AdminModules> AdminModuless = null;
|
||||
if (!string.IsNullOrEmpty(content))
|
||||
{
|
||||
AdminModuless = JsonSerializer.Deserialize<List<Models.AdminModules>>(content);
|
||||
}
|
||||
if (AdminModuless != null)
|
||||
{
|
||||
foreach(var AdminModules in AdminModuless)
|
||||
{
|
||||
_AdminModulesRepository.AddAdminModules(new Models.AdminModules { ModuleId = module.ModuleId, Name = AdminModules.Name });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Task<List<SearchContent>> GetSearchContentsAsync(PageModule pageModule, DateTime lastIndexedOn)
|
||||
{
|
||||
var searchContentList = new List<SearchContent>();
|
||||
|
||||
foreach (var AdminModules in _AdminModulesRepository.GetAdminModuless(pageModule.ModuleId))
|
||||
{
|
||||
if (AdminModules.ModifiedOn >= lastIndexedOn)
|
||||
{
|
||||
searchContentList.Add(new SearchContent
|
||||
{
|
||||
EntityName = "SZUAbsolventenvereinAdminModules",
|
||||
EntityId = AdminModules.AdminModulesId.ToString(),
|
||||
Title = AdminModules.Name,
|
||||
Body = AdminModules.Name,
|
||||
ContentModifiedBy = AdminModules.ModifiedBy,
|
||||
ContentModifiedOn = AdminModules.ModifiedOn
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return Task.FromResult(searchContentList);
|
||||
}
|
||||
}
|
||||
}
|
||||
30
Server/Migrations/01000000_InitializeModule.cs
Normal file
30
Server/Migrations/01000000_InitializeModule.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
using Oqtane.Databases.Interfaces;
|
||||
using Oqtane.Migrations;
|
||||
using SZUAbsolventenverein.Module.AdminModules.Migrations.EntityBuilders;
|
||||
using SZUAbsolventenverein.Module.AdminModules.Repository;
|
||||
|
||||
namespace SZUAbsolventenverein.Module.AdminModules.Migrations
|
||||
{
|
||||
[DbContext(typeof(AdminModulesContext))]
|
||||
[Migration("SZUAbsolventenverein.Module.AdminModules.01.00.00.00")]
|
||||
public class InitializeModule : MultiDatabaseMigration
|
||||
{
|
||||
public InitializeModule(IDatabase database) : base(database)
|
||||
{
|
||||
}
|
||||
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
var entityBuilder = new AdminModulesEntityBuilder(migrationBuilder, ActiveDatabase);
|
||||
entityBuilder.Create();
|
||||
}
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
var entityBuilder = new AdminModulesEntityBuilder(migrationBuilder, ActiveDatabase);
|
||||
entityBuilder.Drop();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
using Microsoft.EntityFrameworkCore.Migrations.Operations;
|
||||
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
|
||||
using Oqtane.Databases.Interfaces;
|
||||
using Oqtane.Migrations;
|
||||
using Oqtane.Migrations.EntityBuilders;
|
||||
|
||||
namespace SZUAbsolventenverein.Module.AdminModules.Migrations.EntityBuilders
|
||||
{
|
||||
public class AdminModulesEntityBuilder : AuditableBaseEntityBuilder<AdminModulesEntityBuilder>
|
||||
{
|
||||
private const string _entityTableName = "SZUAbsolventenvereinAdminModules";
|
||||
private readonly PrimaryKey<AdminModulesEntityBuilder> _primaryKey = new("PK_SZUAbsolventenvereinAdminModules", x => x.AdminModulesId);
|
||||
private readonly ForeignKey<AdminModulesEntityBuilder> _moduleForeignKey = new("FK_SZUAbsolventenvereinAdminModules_Module", x => x.ModuleId, "Module", "ModuleId", ReferentialAction.Cascade);
|
||||
|
||||
public AdminModulesEntityBuilder(MigrationBuilder migrationBuilder, IDatabase database) : base(migrationBuilder, database)
|
||||
{
|
||||
EntityTableName = _entityTableName;
|
||||
PrimaryKey = _primaryKey;
|
||||
ForeignKeys.Add(_moduleForeignKey);
|
||||
}
|
||||
|
||||
protected override AdminModulesEntityBuilder BuildTable(ColumnsBuilder table)
|
||||
{
|
||||
AdminModulesId = AddAutoIncrementColumn(table,"AdminModulesId");
|
||||
ModuleId = AddIntegerColumn(table,"ModuleId");
|
||||
Name = AddMaxStringColumn(table,"Name");
|
||||
Content = AddMaxStringColumn(table,"Content");
|
||||
AddAuditableColumns(table);
|
||||
return this;
|
||||
}
|
||||
|
||||
public OperationBuilder<AddColumnOperation> AdminModulesId { get; set; }
|
||||
public OperationBuilder<AddColumnOperation> ModuleId { get; set; }
|
||||
public OperationBuilder<AddColumnOperation> Name { get; set; }
|
||||
public OperationBuilder<AddColumnOperation> Content { get; set; }
|
||||
}
|
||||
}
|
||||
26
Server/Repository/AdminModulesContext.cs
Normal file
26
Server/Repository/AdminModulesContext.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Oqtane.Modules;
|
||||
using Oqtane.Repository;
|
||||
using Oqtane.Infrastructure;
|
||||
using Oqtane.Repository.Databases.Interfaces;
|
||||
|
||||
namespace SZUAbsolventenverein.Module.AdminModules.Repository
|
||||
{
|
||||
public class AdminModulesContext : DBContextBase, ITransientService, IMultiDatabase
|
||||
{
|
||||
public virtual DbSet<Models.AdminModules> AdminModules { get; set; }
|
||||
|
||||
public AdminModulesContext(IDBContextDependencies DBContextDependencies) : base(DBContextDependencies)
|
||||
{
|
||||
// ContextBase handles multi-tenant database connections
|
||||
}
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder builder)
|
||||
{
|
||||
base.OnModelCreating(builder);
|
||||
|
||||
builder.Entity<Models.AdminModules>().ToTable(ActiveDatabase.RewriteName("SZUAbsolventenvereinAdminModules"));
|
||||
}
|
||||
}
|
||||
}
|
||||
75
Server/Repository/AdminModulesRepository.cs
Normal file
75
Server/Repository/AdminModulesRepository.cs
Normal file
@@ -0,0 +1,75 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System.Linq;
|
||||
using System.Collections.Generic;
|
||||
using Oqtane.Modules;
|
||||
|
||||
namespace SZUAbsolventenverein.Module.AdminModules.Repository
|
||||
{
|
||||
public interface IAdminModulesRepository
|
||||
{
|
||||
IEnumerable<Models.AdminModules> GetAdminModuless(int ModuleId);
|
||||
Models.AdminModules GetAdminModules(int AdminModulesId);
|
||||
Models.AdminModules GetAdminModules(int AdminModulesId, bool tracking);
|
||||
Models.AdminModules AddAdminModules(Models.AdminModules AdminModules);
|
||||
Models.AdminModules UpdateAdminModules(Models.AdminModules AdminModules);
|
||||
void DeleteAdminModules(int AdminModulesId);
|
||||
}
|
||||
|
||||
public class AdminModulesRepository : IAdminModulesRepository, ITransientService
|
||||
{
|
||||
private readonly IDbContextFactory<AdminModulesContext> _factory;
|
||||
|
||||
public AdminModulesRepository(IDbContextFactory<AdminModulesContext> factory)
|
||||
{
|
||||
_factory = factory;
|
||||
}
|
||||
|
||||
public IEnumerable<Models.AdminModules> GetAdminModuless(int ModuleId)
|
||||
{
|
||||
using var db = _factory.CreateDbContext();
|
||||
return db.AdminModules.Where(item => item.ModuleId == ModuleId).ToList();
|
||||
}
|
||||
|
||||
public Models.AdminModules GetAdminModules(int AdminModulesId)
|
||||
{
|
||||
return GetAdminModules(AdminModulesId, true);
|
||||
}
|
||||
|
||||
public Models.AdminModules GetAdminModules(int AdminModulesId, bool tracking)
|
||||
{
|
||||
using var db = _factory.CreateDbContext();
|
||||
if (tracking)
|
||||
{
|
||||
return db.AdminModules.Find(AdminModulesId);
|
||||
}
|
||||
else
|
||||
{
|
||||
return db.AdminModules.AsNoTracking().FirstOrDefault(item => item.AdminModulesId == AdminModulesId);
|
||||
}
|
||||
}
|
||||
|
||||
public Models.AdminModules AddAdminModules(Models.AdminModules AdminModules)
|
||||
{
|
||||
using var db = _factory.CreateDbContext();
|
||||
db.AdminModules.Add(AdminModules);
|
||||
db.SaveChanges();
|
||||
return AdminModules;
|
||||
}
|
||||
|
||||
public Models.AdminModules UpdateAdminModules(Models.AdminModules AdminModules)
|
||||
{
|
||||
using var db = _factory.CreateDbContext();
|
||||
db.Entry(AdminModules).State = EntityState.Modified;
|
||||
db.SaveChanges();
|
||||
return AdminModules;
|
||||
}
|
||||
|
||||
public void DeleteAdminModules(int AdminModulesId)
|
||||
{
|
||||
using var db = _factory.CreateDbContext();
|
||||
Models.AdminModules AdminModules = db.AdminModules.Find(AdminModulesId);
|
||||
db.AdminModules.Remove(AdminModules);
|
||||
db.SaveChanges();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Razor">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<AddRazorSupportForMvc>true</AddRazorSupportForMvc>
|
||||
<Version>1.0.0</Version>
|
||||
<Product>SZUAbsolventenverein.Module.AdminModules</Product>
|
||||
<Authors>SZUAbsolventenverein</Authors>
|
||||
<Company>SZUAbsolventenverein</Company>
|
||||
<Description>Admin Tools</Description>
|
||||
<Copyright>SZUAbsolventenverein</Copyright>
|
||||
<AssemblyName>SZUAbsolventenverein.Module.AdminModules.Server.Oqtane</AssemblyName>
|
||||
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Content Remove="wwwroot\_content\**\*.*" />
|
||||
<None Include="wwwroot\_content\**\*.*" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="9.0.8" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="9.0.8" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.8" />
|
||||
<PackageReference Include="Microsoft.Extensions.Localization" Version="9.0.8" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Client\SZUAbsolventenverein.Module.AdminModules.Client.csproj" />
|
||||
<ProjectReference Include="..\Shared\SZUAbsolventenverein.Module.AdminModules.Shared.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="Oqtane.Server"><HintPath>..\..\oqtane.framework\Oqtane.Server\bin\Debug\net9.0\Oqtane.Server.dll</HintPath></Reference>
|
||||
<Reference Include="Oqtane.Shared"><HintPath>..\..\oqtane.framework\Oqtane.Server\bin\Debug\net9.0\Oqtane.Shared.dll</HintPath></Reference>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
138
Server/Services/AdminModulesService.cs
Normal file
138
Server/Services/AdminModulesService.cs
Normal file
@@ -0,0 +1,138 @@
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Oqtane.Enums;
|
||||
using Oqtane.Extensions;
|
||||
using Oqtane.Infrastructure;
|
||||
using Oqtane.Models;
|
||||
using Oqtane.Repository;
|
||||
using Oqtane.Security;
|
||||
using Oqtane.Shared;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Threading.Tasks;
|
||||
using SZUAbsolventenverein.Module.AdminModules.Models;
|
||||
using SZUAbsolventenverein.Module.AdminModules.Repository;
|
||||
|
||||
namespace SZUAbsolventenverein.Module.AdminModules.Services
|
||||
{
|
||||
public class ServerAdminModulesService : IAdminModulesService
|
||||
{
|
||||
private readonly IAdminModulesRepository _AdminModulesRepository;
|
||||
private readonly IUserPermissions _userPermissions;
|
||||
private readonly IRoleRepository _roleRepository;
|
||||
private readonly IUserRepository _userRepository;
|
||||
private readonly IUserRoleRepository _userRoleRepository;
|
||||
private readonly ILogManager _logger;
|
||||
private readonly IHttpContextAccessor _accessor;
|
||||
private readonly Alias _alias;
|
||||
|
||||
public ServerAdminModulesService(IAdminModulesRepository AdminModulesRepository, IUserPermissions userPermissions, IRoleRepository roleRepository, IUserRepository userRepository, IUserRoleRepository userRoleRepository, ITenantManager tenantManager, ILogManager logger, IHttpContextAccessor accessor)
|
||||
{
|
||||
_AdminModulesRepository = AdminModulesRepository;
|
||||
_userPermissions = userPermissions;
|
||||
_roleRepository = roleRepository;
|
||||
_userRepository = userRepository;
|
||||
_userRoleRepository = userRoleRepository;
|
||||
_logger = logger;
|
||||
_accessor = accessor;
|
||||
_alias = tenantManager.GetAlias();
|
||||
}
|
||||
|
||||
public Task<List<Models.AdminModules>> GetAdminModulessAsync(int ModuleId)
|
||||
{
|
||||
if (_userPermissions.IsAuthorized(_accessor.HttpContext.User, _alias.SiteId, EntityNames.Module, ModuleId, PermissionNames.View))
|
||||
{
|
||||
return Task.FromResult(_AdminModulesRepository.GetAdminModuless(ModuleId).ToList());
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Log(LogLevel.Error, this, LogFunction.Security, "Unauthorized AdminModules Get Attempt {ModuleId}", ModuleId);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public Task<Models.AdminModules> GetAdminModulesAsync(int AdminModulesId, int ModuleId)
|
||||
{
|
||||
if (_userPermissions.IsAuthorized(_accessor.HttpContext.User, _alias.SiteId, EntityNames.Module, ModuleId, PermissionNames.View))
|
||||
{
|
||||
return Task.FromResult(_AdminModulesRepository.GetAdminModules(AdminModulesId));
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Log(LogLevel.Error, this, LogFunction.Security, "Unauthorized AdminModules Get Attempt {AdminModulesId} {ModuleId}", AdminModulesId, ModuleId);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public Task<Models.AdminModules> AddAdminModulesAsync(Models.AdminModules AdminModules)
|
||||
{
|
||||
if (_userPermissions.IsAuthorized(_accessor.HttpContext.User, _alias.SiteId, EntityNames.Module, AdminModules.ModuleId, PermissionNames.Edit))
|
||||
{
|
||||
AdminModules = _AdminModulesRepository.AddAdminModules(AdminModules);
|
||||
_logger.Log(LogLevel.Information, this, LogFunction.Create, "AdminModules Added {AdminModules}", AdminModules);
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Log(LogLevel.Error, this, LogFunction.Security, "Unauthorized AdminModules Add Attempt {AdminModules}", AdminModules);
|
||||
AdminModules = null;
|
||||
}
|
||||
return Task.FromResult(AdminModules);
|
||||
}
|
||||
|
||||
public Task<Models.AdminModules> UpdateAdminModulesAsync(Models.AdminModules AdminModules)
|
||||
{
|
||||
if (_userPermissions.IsAuthorized(_accessor.HttpContext.User, _alias.SiteId, EntityNames.Module, AdminModules.ModuleId, PermissionNames.Edit))
|
||||
{
|
||||
AdminModules = _AdminModulesRepository.UpdateAdminModules(AdminModules);
|
||||
_logger.Log(LogLevel.Information, this, LogFunction.Update, "AdminModules Updated {AdminModules}", AdminModules);
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Log(LogLevel.Error, this, LogFunction.Security, "Unauthorized AdminModules Update Attempt {AdminModules}", AdminModules);
|
||||
AdminModules = null;
|
||||
}
|
||||
return Task.FromResult(AdminModules);
|
||||
}
|
||||
|
||||
public Task DeleteAdminModulesAsync(int AdminModulesId, int ModuleId)
|
||||
{
|
||||
if (_userPermissions.IsAuthorized(_accessor.HttpContext.User, _alias.SiteId, EntityNames.Module, ModuleId, PermissionNames.Edit))
|
||||
{
|
||||
_AdminModulesRepository.DeleteAdminModules(AdminModulesId);
|
||||
_logger.Log(LogLevel.Information, this, LogFunction.Delete, "AdminModules Deleted {AdminModulesId}", AdminModulesId);
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Log(LogLevel.Error, this, LogFunction.Security, "Unauthorized AdminModules Delete Attempt {AdminModulesId} {ModuleId}", AdminModulesId, ModuleId);
|
||||
}
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
public Task<int> GetUsercountInRole(EmailFields EmailFields)
|
||||
{
|
||||
if (_userPermissions.IsAuthorized(_accessor.HttpContext.User, _alias.SiteId, EntityNames.Module, EmailFields.ModuleId, PermissionNames.View))
|
||||
{
|
||||
return Task.FromResult(_userRoleRepository.GetUserRoles(EmailFields.Role.Name, _alias.SiteId).Where(ur => ur.Role == EmailFields.Role).Select(ur => ur.UserId).Distinct().Count());
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Log(LogLevel.Error, this, LogFunction.Security, "Unauthorized AdminModules Get Roles Attempt {AdminModulesId} {ModuleId}", EmailFields.AdminModulesId, EmailFields.ModuleId);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public Task<EmailFields> SendMassNotification(EmailFields EmailFields)
|
||||
{
|
||||
if (_userPermissions.IsAuthorized(_accessor.HttpContext.User, _alias.SiteId, EntityNames.Module, EmailFields.ModuleId, PermissionNames.View))
|
||||
{
|
||||
_userRoleRepository.GetUserRoles(_accessor.HttpContext.User.UserId(), _alias.SiteId).Where(ur => ur.Role == EmailFields.Role).Select(ur => ur.UserId);
|
||||
return null;
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Log(LogLevel.Error, this, LogFunction.Security, "Unauthorized AdminModules Get Roles Attempt {AdminModulesId} {ModuleId}", EmailFields.AdminModulesId, EmailFields.ModuleId);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
28
Server/Startup/ServerStartup.cs
Normal file
28
Server/Startup/ServerStartup.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Oqtane.Infrastructure;
|
||||
using SZUAbsolventenverein.Module.AdminModules.Repository;
|
||||
using SZUAbsolventenverein.Module.AdminModules.Services;
|
||||
|
||||
namespace SZUAbsolventenverein.Module.AdminModules.Startup
|
||||
{
|
||||
public class ServerStartup : IServerStartup
|
||||
{
|
||||
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
|
||||
{
|
||||
// not implemented
|
||||
}
|
||||
|
||||
public void ConfigureMvc(IMvcBuilder mvcBuilder)
|
||||
{
|
||||
// not implemented
|
||||
}
|
||||
|
||||
public void ConfigureServices(IServiceCollection services)
|
||||
{
|
||||
services.AddTransient<IAdminModulesService, ServerAdminModulesService>();
|
||||
services.AddDbContextFactory<AdminModulesContext>(opt => { }, ServiceLifetime.Transient);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]
|
||||
Binary file not shown.
1
Server/obj/Debug/net9.0/rbcswa.dswa.cache.json
Normal file
1
Server/obj/Debug/net9.0/rbcswa.dswa.cache.json
Normal file
@@ -0,0 +1 @@
|
||||
{"GlobalPropertiesHash":"2ilJ2M8+ZdH0swl4cXFj9Ji8kay0R08ISE/fEc+OL0o=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["08Xya9u6IUNzOeGEgc4zdd1Hg5y56VW0t7lMcIxBNJw=","BRIlDUau3Zc4UOJw/vQzgn8AWS7v8r1\u002BifBiGxNKAy8=","sF501/zz\u002BnIWQ2QvE48nYHz43WBtom0RNkJH3YrdXMU="],"CachedAssets":{"sF501/zz\u002BnIWQ2QvE48nYHz43WBtom0RNkJH3YrdXMU=":{"Identity":"C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Server\\obj\\Debug\\net9.0\\compressed\\rt007kvfms-r3sb2zw076.gz","SourceId":"SZUAbsolventenverein.Module.AdminModules.Server.Oqtane","SourceType":"Discovered","ContentRoot":"C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Server\\obj\\Debug\\net9.0\\compressed\\","BasePath":"_content/SZUAbsolventenverein.Module.AdminModules.Server.Oqtane","RelativePath":"Module#[.{fingerprint=r3sb2zw076}]?.js.gz","AssetKind":"All","AssetMode":"All","AssetRole":"Alternative","AssetMergeBehavior":null,"AssetMergeSource":"","RelatedAsset":"C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Server\\wwwroot\\Module.js","AssetTraitName":"Content-Encoding","AssetTraitValue":"gzip","Fingerprint":"4nbyixhp0t","Integrity":"kMry23BvAUP/fD7ARfFOER5IxAyir7bjEgxrPol8EJU=","CopyToOutputDirectory":"Never","CopyToPublishDirectory":"PreserveNewest","OriginalItemSpec":"C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Server\\wwwroot\\Module.js","FileLength":97,"LastWriteTime":"2025-10-14T14:52:27.597213+00:00"},"BRIlDUau3Zc4UOJw/vQzgn8AWS7v8r1\u002BifBiGxNKAy8=":{"Identity":"C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Server\\obj\\Debug\\net9.0\\compressed\\goxt6qdqrf-fursb7fvhw.gz","SourceId":"SZUAbsolventenverein.Module.AdminModules.Server.Oqtane","SourceType":"Discovered","ContentRoot":"C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Server\\obj\\Debug\\net9.0\\compressed\\","BasePath":"_content/SZUAbsolventenverein.Module.AdminModules.Server.Oqtane","RelativePath":"Module#[.{fingerprint=fursb7fvhw}]?.css.gz","AssetKind":"All","AssetMode":"All","AssetRole":"Alternative","AssetMergeBehavior":null,"AssetMergeSource":"","RelatedAsset":"C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Server\\wwwroot\\Module.css","AssetTraitName":"Content-Encoding","AssetTraitValue":"gzip","Fingerprint":"ccyv3k0uox","Integrity":"ZA1whd6v\u002BNH9oT2VVY4O\u002BS/QSCf/y7Mtl4GSYHNpJMA=","CopyToOutputDirectory":"Never","CopyToPublishDirectory":"PreserveNewest","OriginalItemSpec":"C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Server\\wwwroot\\Module.css","FileLength":46,"LastWriteTime":"2025-10-14T14:52:27.597213+00:00"},"08Xya9u6IUNzOeGEgc4zdd1Hg5y56VW0t7lMcIxBNJw=":{"Identity":"C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Server\\obj\\Debug\\net9.0\\compressed\\f32kn295nz-gcvjxldlff.gz","SourceId":"Microsoft.AspNetCore.Components.WebAssembly.Authentication","SourceType":"Package","ContentRoot":"C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Server\\obj\\Debug\\net9.0\\compressed\\","BasePath":"_content/Microsoft.AspNetCore.Components.WebAssembly.Authentication","RelativePath":"AuthenticationService.js.gz","AssetKind":"All","AssetMode":"All","AssetRole":"Alternative","AssetMergeBehavior":null,"AssetMergeSource":"","RelatedAsset":"C:\\Users\\Konstantin\\.nuget\\packages\\microsoft.aspnetcore.components.webassembly.authentication\\9.0.8\\staticwebassets\\AuthenticationService.js","AssetTraitName":"Content-Encoding","AssetTraitValue":"gzip","Fingerprint":"bl7261sy3y","Integrity":"EcPEzZq/MnP6aPd65UU\u002BhuGs143nnN3gdVpQgChQm8g=","CopyToOutputDirectory":"Never","CopyToPublishDirectory":"PreserveNewest","OriginalItemSpec":"C:\\Users\\Konstantin\\.nuget\\packages\\microsoft.aspnetcore.components.webassembly.authentication\\9.0.8\\staticwebassets\\AuthenticationService.js","FileLength":74044,"LastWriteTime":"2025-10-14T14:52:27.6145578+00:00"}},"CachedCopyCandidates":{}}
|
||||
@@ -0,0 +1,23 @@
|
||||
C:\Users\Konstantin\source\repos\SZUAbsolventenverein.Module.AdminModules\Client\obj\Debug\net9.0\staticwebassets.build.json
|
||||
C:\Users\Konstantin\source\repos\SZUAbsolventenverein.Module.AdminModules\Client\obj\Debug\net9.0\staticwebassets.build.json
|
||||
C:\Users\Konstantin\source\repos\SZUAbsolventenverein.Module.AdminModules\Client\obj\Debug\net9.0\staticwebassets.build.json
|
||||
C:\Users\Konstantin\source\repos\SZUAbsolventenverein.Module.AdminModules\Client\obj\Debug\net9.0\staticwebassets.build.json
|
||||
C:\Users\Konstantin\source\repos\SZUAbsolventenverein.Module.AdminModules\Client\obj\Debug\net9.0\staticwebassets.build.json
|
||||
C:\Users\Konstantin\source\repos\SZUAbsolventenverein.Module.AdminModules\Client\obj\Debug\net9.0\staticwebassets.build.json
|
||||
C:\Users\Konstantin\source\repos\SZUAbsolventenverein.Module.AdminModules\Client\obj\Debug\net9.0\staticwebassets.build.json
|
||||
C:\Users\Konstantin\source\repos\SZUAbsolventenverein.Module.AdminModules\Client\obj\Debug\net9.0\staticwebassets.build.json
|
||||
C:\Users\Konstantin\source\repos\SZUAbsolventenverein.Module.AdminModules\Client\obj\Debug\net9.0\staticwebassets.build.json
|
||||
C:\Users\Konstantin\source\repos\SZUAbsolventenverein.Module.AdminModules\Client\obj\Debug\net9.0\staticwebassets.build.json
|
||||
C:\Users\Konstantin\source\repos\SZUAbsolventenverein.Module.AdminModules\Client\obj\Debug\net9.0\staticwebassets.build.json
|
||||
C:\Users\Konstantin\source\repos\SZUAbsolventenverein.Module.AdminModules\Client\obj\Debug\net9.0\staticwebassets.build.json
|
||||
C:\Users\Konstantin\source\repos\SZUAbsolventenverein.Module.AdminModules\Client\obj\Debug\net9.0\staticwebassets.build.json
|
||||
C:\Users\Konstantin\source\repos\SZUAbsolventenverein.Module.AdminModules\Client\obj\Debug\net9.0\staticwebassets.build.json
|
||||
C:\Users\Konstantin\source\repos\SZUAbsolventenverein.Module.AdminModules\Client\obj\Debug\net9.0\staticwebassets.build.json
|
||||
C:\Users\Konstantin\source\repos\SZUAbsolventenverein.Module.AdminModules\Client\obj\Debug\net9.0\staticwebassets.build.json
|
||||
C:\Users\Konstantin\source\repos\SZUAbsolventenverein.Module.AdminModules\Client\obj\Debug\net9.0\staticwebassets.build.json
|
||||
C:\Users\Konstantin\source\repos\SZUAbsolventenverein.Module.AdminModules\Client\obj\Debug\net9.0\staticwebassets.build.json
|
||||
C:\Users\Konstantin\source\repos\SZUAbsolventenverein.Module.AdminModules\Client\obj\Debug\net9.0\staticwebassets.build.json
|
||||
C:\Users\Konstantin\source\repos\SZUAbsolventenverein.Module.AdminModules\Client\obj\Debug\net9.0\staticwebassets.build.json
|
||||
C:\Users\Konstantin\source\repos\SZUAbsolventenverein.Module.AdminModules\Client\obj\Debug\net9.0\staticwebassets.build.json
|
||||
C:\Users\Konstantin\source\repos\SZUAbsolventenverein.Module.AdminModules\Client\obj\Debug\net9.0\staticwebassets.build.json
|
||||
C:\Users\Konstantin\source\repos\SZUAbsolventenverein.Module.AdminModules\Client\obj\Debug\net9.0\staticwebassets.build.json
|
||||
0
Server/obj/Debug/net9.0/staticwebassets.removed.txt
Normal file
0
Server/obj/Debug/net9.0/staticwebassets.removed.txt
Normal file
@@ -0,0 +1,260 @@
|
||||
{
|
||||
"format": 1,
|
||||
"restore": {
|
||||
"C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Server\\SZUAbsolventenverein.Module.AdminModules.Server.csproj": {}
|
||||
},
|
||||
"projects": {
|
||||
"C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Client\\SZUAbsolventenverein.Module.AdminModules.Client.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Client\\SZUAbsolventenverein.Module.AdminModules.Client.csproj",
|
||||
"projectName": "SZUAbsolventenverein.Module.AdminModules.Client.Oqtane",
|
||||
"projectPath": "C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Client\\SZUAbsolventenverein.Module.AdminModules.Client.csproj",
|
||||
"packagesPath": "C:\\Users\\Konstantin\\.nuget\\packages\\",
|
||||
"outputPath": "C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Client\\obj\\",
|
||||
"projectStyle": "PackageReference",
|
||||
"fallbackFolders": [
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||
],
|
||||
"configFilePaths": [
|
||||
"C:\\Users\\Konstantin\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
|
||||
],
|
||||
"originalTargetFrameworks": [
|
||||
"net9.0"
|
||||
],
|
||||
"sources": {
|
||||
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
|
||||
"https://api.nuget.org/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"net9.0": {
|
||||
"targetAlias": "net9.0",
|
||||
"projectReferences": {
|
||||
"C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Shared\\SZUAbsolventenverein.Module.AdminModules.Shared.csproj": {
|
||||
"projectPath": "C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Shared\\SZUAbsolventenverein.Module.AdminModules.Shared.csproj"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
"warnAsError": [
|
||||
"NU1605"
|
||||
]
|
||||
},
|
||||
"restoreAuditProperties": {
|
||||
"enableAudit": "true",
|
||||
"auditLevel": "low",
|
||||
"auditMode": "direct"
|
||||
},
|
||||
"SdkAnalysisLevel": "9.0.300"
|
||||
},
|
||||
"frameworks": {
|
||||
"net9.0": {
|
||||
"targetAlias": "net9.0",
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Components.WebAssembly": {
|
||||
"target": "Package",
|
||||
"version": "[9.0.8, )"
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.WebAssembly.Authentication": {
|
||||
"target": "Package",
|
||||
"version": "[9.0.8, )"
|
||||
},
|
||||
"Microsoft.Extensions.Http": {
|
||||
"target": "Package",
|
||||
"version": "[9.0.8, )"
|
||||
},
|
||||
"Microsoft.Extensions.Localization": {
|
||||
"target": "Package",
|
||||
"version": "[9.0.8, )"
|
||||
},
|
||||
"System.Net.Http.Json": {
|
||||
"target": "Package",
|
||||
"version": "[9.0.8, )"
|
||||
}
|
||||
},
|
||||
"imports": [
|
||||
"net461",
|
||||
"net462",
|
||||
"net47",
|
||||
"net471",
|
||||
"net472",
|
||||
"net48",
|
||||
"net481"
|
||||
],
|
||||
"assetTargetFallback": true,
|
||||
"warn": true,
|
||||
"frameworkReferences": {
|
||||
"Microsoft.NETCore.App": {
|
||||
"privateAssets": "all"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.305/PortableRuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
},
|
||||
"C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Server\\SZUAbsolventenverein.Module.AdminModules.Server.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Server\\SZUAbsolventenverein.Module.AdminModules.Server.csproj",
|
||||
"projectName": "SZUAbsolventenverein.Module.AdminModules.Server.Oqtane",
|
||||
"projectPath": "C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Server\\SZUAbsolventenverein.Module.AdminModules.Server.csproj",
|
||||
"packagesPath": "C:\\Users\\Konstantin\\.nuget\\packages\\",
|
||||
"outputPath": "C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Server\\obj\\",
|
||||
"projectStyle": "PackageReference",
|
||||
"fallbackFolders": [
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||
],
|
||||
"configFilePaths": [
|
||||
"C:\\Users\\Konstantin\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
|
||||
],
|
||||
"originalTargetFrameworks": [
|
||||
"net9.0"
|
||||
],
|
||||
"sources": {
|
||||
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
|
||||
"https://api.nuget.org/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"net9.0": {
|
||||
"targetAlias": "net9.0",
|
||||
"projectReferences": {
|
||||
"C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Client\\SZUAbsolventenverein.Module.AdminModules.Client.csproj": {
|
||||
"projectPath": "C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Client\\SZUAbsolventenverein.Module.AdminModules.Client.csproj"
|
||||
},
|
||||
"C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Shared\\SZUAbsolventenverein.Module.AdminModules.Shared.csproj": {
|
||||
"projectPath": "C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Shared\\SZUAbsolventenverein.Module.AdminModules.Shared.csproj"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
"warnAsError": [
|
||||
"NU1605"
|
||||
]
|
||||
},
|
||||
"restoreAuditProperties": {
|
||||
"enableAudit": "true",
|
||||
"auditLevel": "low",
|
||||
"auditMode": "direct"
|
||||
},
|
||||
"SdkAnalysisLevel": "9.0.300"
|
||||
},
|
||||
"frameworks": {
|
||||
"net9.0": {
|
||||
"targetAlias": "net9.0",
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Components.WebAssembly.Server": {
|
||||
"target": "Package",
|
||||
"version": "[9.0.8, )"
|
||||
},
|
||||
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": {
|
||||
"target": "Package",
|
||||
"version": "[9.0.8, )"
|
||||
},
|
||||
"Microsoft.EntityFrameworkCore": {
|
||||
"target": "Package",
|
||||
"version": "[9.0.8, )"
|
||||
},
|
||||
"Microsoft.Extensions.Localization": {
|
||||
"target": "Package",
|
||||
"version": "[9.0.8, )"
|
||||
}
|
||||
},
|
||||
"imports": [
|
||||
"net461",
|
||||
"net462",
|
||||
"net47",
|
||||
"net471",
|
||||
"net472",
|
||||
"net48",
|
||||
"net481"
|
||||
],
|
||||
"assetTargetFallback": true,
|
||||
"warn": true,
|
||||
"frameworkReferences": {
|
||||
"Microsoft.NETCore.App": {
|
||||
"privateAssets": "all"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.305/PortableRuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
},
|
||||
"C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Shared\\SZUAbsolventenverein.Module.AdminModules.Shared.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Shared\\SZUAbsolventenverein.Module.AdminModules.Shared.csproj",
|
||||
"projectName": "SZUAbsolventenverein.Module.AdminModules.Shared.Oqtane",
|
||||
"projectPath": "C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Shared\\SZUAbsolventenverein.Module.AdminModules.Shared.csproj",
|
||||
"packagesPath": "C:\\Users\\Konstantin\\.nuget\\packages\\",
|
||||
"outputPath": "C:\\Users\\Konstantin\\source\\repos\\SZUAbsolventenverein.Module.AdminModules\\Shared\\obj\\",
|
||||
"projectStyle": "PackageReference",
|
||||
"fallbackFolders": [
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||
],
|
||||
"configFilePaths": [
|
||||
"C:\\Users\\Konstantin\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
|
||||
],
|
||||
"originalTargetFrameworks": [
|
||||
"net9.0"
|
||||
],
|
||||
"sources": {
|
||||
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
|
||||
"https://api.nuget.org/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"net9.0": {
|
||||
"targetAlias": "net9.0",
|
||||
"projectReferences": {}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
"warnAsError": [
|
||||
"NU1605"
|
||||
]
|
||||
},
|
||||
"restoreAuditProperties": {
|
||||
"enableAudit": "true",
|
||||
"auditLevel": "low",
|
||||
"auditMode": "direct"
|
||||
},
|
||||
"SdkAnalysisLevel": "9.0.300"
|
||||
},
|
||||
"frameworks": {
|
||||
"net9.0": {
|
||||
"targetAlias": "net9.0",
|
||||
"dependencies": {
|
||||
"System.ComponentModel.Annotations": {
|
||||
"target": "Package",
|
||||
"version": "[5.0.0, )"
|
||||
}
|
||||
},
|
||||
"imports": [
|
||||
"net461",
|
||||
"net462",
|
||||
"net47",
|
||||
"net471",
|
||||
"net472",
|
||||
"net48",
|
||||
"net481"
|
||||
],
|
||||
"assetTargetFallback": true,
|
||||
"warn": true,
|
||||
"frameworkReferences": {
|
||||
"Microsoft.NETCore.App": {
|
||||
"privateAssets": "all"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.305/PortableRuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
||||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Konstantin\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
|
||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.14.1</NuGetToolVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<SourceRoot Include="C:\Users\Konstantin\.nuget\packages\" />
|
||||
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
|
||||
</ItemGroup>
|
||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.aspnetcore.components.webassembly.authentication\9.0.8\buildTransitive\Microsoft.AspNetCore.Components.WebAssembly.Authentication.props" Condition="Exists('$(NuGetPackageRoot)microsoft.aspnetcore.components.webassembly.authentication\9.0.8\buildTransitive\Microsoft.AspNetCore.Components.WebAssembly.Authentication.props')" />
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.entityframeworkcore\9.0.8\buildTransitive\net8.0\Microsoft.EntityFrameworkCore.props" Condition="Exists('$(NuGetPackageRoot)microsoft.entityframeworkcore\9.0.8\buildTransitive\net8.0\Microsoft.EntityFrameworkCore.props')" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<PkgMicrosoft_AspNetCore_Components_WebAssembly_Server Condition=" '$(PkgMicrosoft_AspNetCore_Components_WebAssembly_Server)' == '' ">C:\Users\Konstantin\.nuget\packages\microsoft.aspnetcore.components.webassembly.server\9.0.8</PkgMicrosoft_AspNetCore_Components_WebAssembly_Server>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.extensions.options\9.0.8\buildTransitive\net8.0\Microsoft.Extensions.Options.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.options\9.0.8\buildTransitive\net8.0\Microsoft.Extensions.Options.targets')" />
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.binder\9.0.8\buildTransitive\netstandard2.0\Microsoft.Extensions.Configuration.Binder.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.binder\9.0.8\buildTransitive\netstandard2.0\Microsoft.Extensions.Configuration.Binder.targets')" />
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\9.0.8\buildTransitive\net8.0\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\9.0.8\buildTransitive\net8.0\Microsoft.Extensions.Logging.Abstractions.targets')" />
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.aspnetcore.components.analyzers\9.0.8\buildTransitive\netstandard2.0\Microsoft.AspNetCore.Components.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.aspnetcore.components.analyzers\9.0.8\buildTransitive\netstandard2.0\Microsoft.AspNetCore.Components.Analyzers.targets')" />
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.aspnetcore.components.webassembly.server\9.0.8\build\Microsoft.AspNetCore.Components.WebAssembly.Server.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.aspnetcore.components.webassembly.server\9.0.8\build\Microsoft.AspNetCore.Components.WebAssembly.Server.targets')" />
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
2109
Server/obj/project.assets.json
Normal file
2109
Server/obj/project.assets.json
Normal file
File diff suppressed because it is too large
Load Diff
1
Server/wwwroot/Module.css
Normal file
1
Server/wwwroot/Module.css
Normal file
@@ -0,0 +1 @@
|
||||
/* Module Custom Styles */
|
||||
5
Server/wwwroot/Module.js
Normal file
5
Server/wwwroot/Module.js
Normal file
@@ -0,0 +1,5 @@
|
||||
/* Module Script */
|
||||
var SZUAbsolventenverein = SZUAbsolventenverein || {};
|
||||
|
||||
SZUAbsolventenverein.AdminModules = {
|
||||
};
|
||||
Reference in New Issue
Block a user