Renamed model repo to provider + provider registration check

This commit is contained in:
2024-11-23 15:29:46 +01:00
parent beac2aa20c
commit f8995ca990
12 changed files with 31 additions and 29 deletions

View File

@@ -128,7 +128,7 @@
private Dictionary<AdminPageProperty, FieldIdentifier> _validationIdentifiers;
private IDictionary<AdminPageProperty, object> _values;
private Dictionary<AdminPageProperty, object[]> _selectorValues;
private IModelRepository _repository;
private IModelProvider _provider;
private AdminPage _currentPage;
private object _entry;
@@ -143,7 +143,7 @@
_currentPage = page;
_entry = entryToEdit;
_isEdit = entryToEdit is not null;
_repository = _currentPage.LoadModelRepository(Provider);
_provider = _currentPage.LoadModelProvider(Provider);
_entry ??= Activator.CreateInstance(_currentPage.ModelType);
_context = new EditContext(_entry);
@@ -246,7 +246,7 @@
foreach (var value in _values) {
if (value.Key.Unique) {
if (value.Value == value.Key.GetValue(_entry)) continue;
var data = _repository!.ReadAllO().GetAwaiter().GetResult();
var data = _provider!.ReadAllO().GetAwaiter().GetResult();
foreach (var entry in data) {
var other = value.Key.GetValue(entry);
if (!other.Equals(value.Value)) continue;
@@ -293,7 +293,7 @@
throw new ArgumentException($"'{property.Name}' cannot be a selector because a admin page for '{type.Name}' does not exist!");
}
var repo = page.LoadModelRepository(Provider);
var repo = page.LoadModelProvider(Provider);
var objects = (await repo!.ReadAllO()).ToArray();
_selectorValues[property] = objects;
@@ -346,7 +346,7 @@
}
if (!_isEdit) {
await _repository.CreateO(_entry);
await _provider.CreateO(_entry);
Alerts.FireAsync(new SweetAlertOptions {
Title = "New entry added!",
@@ -356,7 +356,7 @@
});
}
else {
await _repository.UpdateO(_entry);
await _provider.UpdateO(_entry);
Alerts.FireAsync(new SweetAlertOptions {
Title = "Entry updated!",

View File

@@ -5,7 +5,7 @@ using HopFrame.Web.Admin;
using HopFrame.Web.Admin.Attributes;
using HopFrame.Web.Admin.Generators;
using HopFrame.Web.Admin.Models;
using HopFrame.Web.Repositories;
using HopFrame.Web.Provider;
namespace HopFrame.Web;
@@ -20,7 +20,7 @@ internal class HopAdminContext : AdminPagesContext {
public override void OnModelCreating(IAdminContextGenerator generator) {
generator.Page<User>()
.Description("On this page you can manage all user accounts.")
.ConfigureRepository<UserProvider>()
.ConfigureProvider<UserProvider>()
.ViewPermission(AdminPermissions.ViewUsers)
.CreatePermission(AdminPermissions.AddUser)
.UpdatePermission(AdminPermissions.EditUser)
@@ -63,7 +63,7 @@ internal class HopAdminContext : AdminPagesContext {
generator.Page<PermissionGroup>()
.Description("On this page you can view, create, edit and delete permission groups.")
.ConfigureRepository<GroupProvider>()
.ConfigureProvider<GroupProvider>()
.ViewPermission(AdminPermissions.ViewGroups)
.CreatePermission(AdminPermissions.AddGroup)
.UpdatePermission(AdminPermissions.EditGroup)

View File

@@ -113,7 +113,7 @@
public string Url { get; set; }
private AdminPage _pageData;
private IModelRepository _modelRepository;
private IModelProvider _modelProvider;
private IEnumerable<object> _modelBuffer;
private AdminPageModal _modal;
@@ -138,7 +138,7 @@
if (_pageData.RepositoryProvider is null)
throw new ArgumentException($"AdminPage '{_pageData.Title}' does not specify a model repository!'");
_modelRepository = _pageData.LoadModelRepository(Provider);
_modelProvider = _pageData.LoadModelProvider(Provider);
_hasEditPermission = _pageData.Permissions.Update is null || await Permissions.HasPermission(Auth.User, _pageData.Permissions.Update);
_hasDeletePermission = _pageData.Permissions.Delete is null || await Permissions.HasPermission(Auth.User, _pageData.Permissions.Delete);
@@ -154,7 +154,7 @@
}
private async Task Reload() {
_modelBuffer = await _modelRepository.ReadAllO();
_modelBuffer = await _modelProvider.ReadAllO();
_displayedModels = _modelBuffer.ToList();
_currentSortDirection = _pageData.DefaultSortDirection;
@@ -238,7 +238,7 @@
});
if (result.IsConfirmed) {
await _modelRepository.DeleteO(entry);
await _modelProvider.DeleteO(entry);
await Reload();
await Alerts.FireAsync(new SweetAlertOptions {

View File

@@ -2,9 +2,9 @@ using HopFrame.Database.Models;
using HopFrame.Database.Repositories;
using HopFrame.Web.Admin;
namespace HopFrame.Web.Repositories;
namespace HopFrame.Web.Provider;
internal sealed class GroupProvider(IGroupRepository repo) : ModelRepository<PermissionGroup> {
internal sealed class GroupProvider(IGroupRepository repo) : ModelProvider<PermissionGroup> {
public override async Task<IEnumerable<PermissionGroup>> ReadAll() {
return await repo.GetPermissionGroups();
}

View File

@@ -2,9 +2,9 @@ using HopFrame.Database.Models;
using HopFrame.Database.Repositories;
using HopFrame.Web.Admin;
namespace HopFrame.Web.Repositories;
namespace HopFrame.Web.Provider;
internal sealed class UserProvider(IUserRepository repo) : ModelRepository<User> {
internal sealed class UserProvider(IUserRepository repo) : ModelProvider<User> {
public override async Task<IEnumerable<User>> ReadAll() {
return await repo.GetUsers();
}