diff --git a/zero.Backoffice/_legacy/Models/ActionCopyModel.cs b/zero.Backoffice/Models/_legacy/ActionCopyModel.cs similarity index 100% rename from zero.Backoffice/_legacy/Models/ActionCopyModel.cs rename to zero.Backoffice/Models/_legacy/ActionCopyModel.cs diff --git a/zero.Backoffice/_legacy/Models/ListItemModel.cs b/zero.Backoffice/Models/_legacy/ListItemModel.cs similarity index 100% rename from zero.Backoffice/_legacy/Models/ListItemModel.cs rename to zero.Backoffice/Models/_legacy/ListItemModel.cs diff --git a/zero.Backoffice/_legacy/Models/ListModel.cs b/zero.Backoffice/Models/_legacy/ListModel.cs similarity index 100% rename from zero.Backoffice/_legacy/Models/ListModel.cs rename to zero.Backoffice/Models/_legacy/ListModel.cs diff --git a/zero.Backoffice/_legacy/Models/LoginModel.cs b/zero.Backoffice/Models/_legacy/LoginModel.cs similarity index 100% rename from zero.Backoffice/_legacy/Models/LoginModel.cs rename to zero.Backoffice/Models/_legacy/LoginModel.cs diff --git a/zero.Backoffice/_legacy/Models/ObsoleteEditModel.cs b/zero.Backoffice/Models/_legacy/ObsoleteEditModel.cs similarity index 100% rename from zero.Backoffice/_legacy/Models/ObsoleteEditModel.cs rename to zero.Backoffice/Models/_legacy/ObsoleteEditModel.cs diff --git a/zero.Backoffice/_legacy/Models/PageEditModel.cs b/zero.Backoffice/Models/_legacy/PageEditModel.cs similarity index 100% rename from zero.Backoffice/_legacy/Models/PageEditModel.cs rename to zero.Backoffice/Models/_legacy/PageEditModel.cs diff --git a/zero.Backoffice/_legacy/Models/ZeroBackofficeModel.cs b/zero.Backoffice/Models/_legacy/ZeroBackofficeModel.cs similarity index 100% rename from zero.Backoffice/_legacy/Models/ZeroBackofficeModel.cs rename to zero.Backoffice/Models/_legacy/ZeroBackofficeModel.cs diff --git a/zero.Backoffice/_legacy/Models/ApplicationEditModel.cs b/zero.Backoffice/Modules/Applications/ApplicationEditModel.cs similarity index 100% rename from zero.Backoffice/_legacy/Models/ApplicationEditModel.cs rename to zero.Backoffice/Modules/Applications/ApplicationEditModel.cs diff --git a/zero.Backoffice/_legacy/Models/ApplicationListModel.cs b/zero.Backoffice/Modules/Applications/ApplicationListModel.cs similarity index 100% rename from zero.Backoffice/_legacy/Models/ApplicationListModel.cs rename to zero.Backoffice/Modules/Applications/ApplicationListModel.cs diff --git a/zero.Backoffice/_legacy/Controllers/ApplicationsController.cs b/zero.Backoffice/Modules/Applications/ApplicationsController.cs similarity index 100% rename from zero.Backoffice/_legacy/Controllers/ApplicationsController.cs rename to zero.Backoffice/Modules/Applications/ApplicationsController.cs diff --git a/zero.Backoffice/_legacy/Controllers/BlueprintController.cs b/zero.Backoffice/Modules/Blueprints/BlueprintController.cs similarity index 100% rename from zero.Backoffice/_legacy/Controllers/BlueprintController.cs rename to zero.Backoffice/Modules/Blueprints/BlueprintController.cs diff --git a/zero.Backoffice/_legacy/Controllers/IntegrationsController.cs b/zero.Backoffice/Modules/Integrations/IntegrationsController.cs similarity index 100% rename from zero.Backoffice/_legacy/Controllers/IntegrationsController.cs rename to zero.Backoffice/Modules/Integrations/IntegrationsController.cs diff --git a/zero.Backoffice/_legacy/Controllers/LinksController.cs b/zero.Backoffice/Modules/Links/LinksController.cs similarity index 100% rename from zero.Backoffice/_legacy/Controllers/LinksController.cs rename to zero.Backoffice/Modules/Links/LinksController.cs diff --git a/zero.Backoffice/_legacy/Controllers/MediaController.cs b/zero.Backoffice/Modules/Media/MediaController.cs similarity index 100% rename from zero.Backoffice/_legacy/Controllers/MediaController.cs rename to zero.Backoffice/Modules/Media/MediaController.cs diff --git a/zero.Backoffice/_legacy/Models/MediaEditModel.cs b/zero.Backoffice/Modules/Media/MediaEditModel.cs similarity index 100% rename from zero.Backoffice/_legacy/Models/MediaEditModel.cs rename to zero.Backoffice/Modules/Media/MediaEditModel.cs diff --git a/zero.Backoffice/_legacy/Controllers/MediaFolderController.cs b/zero.Backoffice/Modules/Media/MediaFolderController.cs similarity index 100% rename from zero.Backoffice/_legacy/Controllers/MediaFolderController.cs rename to zero.Backoffice/Modules/Media/MediaFolderController.cs diff --git a/zero.Backoffice/_legacy/Models/MediaFolderEditModel.cs b/zero.Backoffice/Modules/Media/MediaFolderEditModel.cs similarity index 100% rename from zero.Backoffice/_legacy/Models/MediaFolderEditModel.cs rename to zero.Backoffice/Modules/Media/MediaFolderEditModel.cs diff --git a/zero.Backoffice/_legacy/Models/MediaListModel.cs b/zero.Backoffice/Modules/Media/MediaListModel.cs similarity index 100% rename from zero.Backoffice/_legacy/Models/MediaListModel.cs rename to zero.Backoffice/Modules/Media/MediaListModel.cs diff --git a/zero.Backoffice/_legacy/Models/MediaListResultModel.cs b/zero.Backoffice/Modules/Media/MediaListResultModel.cs similarity index 100% rename from zero.Backoffice/_legacy/Models/MediaListResultModel.cs rename to zero.Backoffice/Modules/Media/MediaListResultModel.cs diff --git a/zero.Backoffice/_legacy/Controllers/ModulesController.cs b/zero.Backoffice/Modules/Pages/ModulesController.cs similarity index 100% rename from zero.Backoffice/_legacy/Controllers/ModulesController.cs rename to zero.Backoffice/Modules/Pages/ModulesController.cs diff --git a/zero.Backoffice/_legacy/Controllers/PagesController.cs b/zero.Backoffice/Modules/Pages/_PagesController.cs similarity index 100% rename from zero.Backoffice/_legacy/Controllers/PagesController.cs rename to zero.Backoffice/Modules/Pages/_PagesController.cs diff --git a/zero.Backoffice/_legacy/Controllers/PreviewController.cs b/zero.Backoffice/Modules/Previews/PreviewController.cs similarity index 100% rename from zero.Backoffice/_legacy/Controllers/PreviewController.cs rename to zero.Backoffice/Modules/Previews/PreviewController.cs diff --git a/zero.Backoffice/_legacy/Controllers/RecycleBinController.cs b/zero.Backoffice/Modules/RecycleBin/RecycleBinController.cs similarity index 100% rename from zero.Backoffice/_legacy/Controllers/RecycleBinController.cs rename to zero.Backoffice/Modules/RecycleBin/RecycleBinController.cs diff --git a/zero.Backoffice/_legacy/Controllers/AuthenticationController.cs b/zero.Backoffice/Modules/Security/AuthenticationController.cs similarity index 100% rename from zero.Backoffice/_legacy/Controllers/AuthenticationController.cs rename to zero.Backoffice/Modules/Security/AuthenticationController.cs diff --git a/zero.Backoffice/_legacy/Controllers/SectionsController.cs b/zero.Backoffice/Modules/UI/SectionsController.cs similarity index 100% rename from zero.Backoffice/_legacy/Controllers/SectionsController.cs rename to zero.Backoffice/Modules/UI/SectionsController.cs diff --git a/zero.Backoffice/_legacy/Controllers/SettingsController.cs b/zero.Backoffice/Modules/UI/SettingsController.cs similarity index 100% rename from zero.Backoffice/_legacy/Controllers/SettingsController.cs rename to zero.Backoffice/Modules/UI/SettingsController.cs diff --git a/zero.Backoffice/_legacy/Models/UserEditModel.cs b/zero.Backoffice/Modules/Users/UserEditModel.cs similarity index 100% rename from zero.Backoffice/_legacy/Models/UserEditModel.cs rename to zero.Backoffice/Modules/Users/UserEditModel.cs diff --git a/zero.Backoffice/_legacy/Models/UserListModel.cs b/zero.Backoffice/Modules/Users/UserListModel.cs similarity index 100% rename from zero.Backoffice/_legacy/Models/UserListModel.cs rename to zero.Backoffice/Modules/Users/UserListModel.cs diff --git a/zero.Backoffice/_legacy/Models/UserPasswordEditModel.cs b/zero.Backoffice/Modules/Users/UserPasswordEditModel.cs similarity index 100% rename from zero.Backoffice/_legacy/Models/UserPasswordEditModel.cs rename to zero.Backoffice/Modules/Users/UserPasswordEditModel.cs diff --git a/zero.Backoffice/_legacy/Models/UserRoleEditModel.cs b/zero.Backoffice/Modules/Users/UserRoleEditModel.cs similarity index 100% rename from zero.Backoffice/_legacy/Models/UserRoleEditModel.cs rename to zero.Backoffice/Modules/Users/UserRoleEditModel.cs diff --git a/zero.Backoffice/_legacy/Models/UserRoleListModel.cs b/zero.Backoffice/Modules/Users/UserRoleListModel.cs similarity index 100% rename from zero.Backoffice/_legacy/Models/UserRoleListModel.cs rename to zero.Backoffice/Modules/Users/UserRoleListModel.cs diff --git a/zero.Backoffice/_legacy/Controllers/UserRolesController.cs b/zero.Backoffice/Modules/Users/UserRolesController.cs similarity index 100% rename from zero.Backoffice/_legacy/Controllers/UserRolesController.cs rename to zero.Backoffice/Modules/Users/UserRolesController.cs diff --git a/zero.Backoffice/_legacy/Controllers/UsersController.cs b/zero.Backoffice/Modules/Users/UsersController.cs similarity index 100% rename from zero.Backoffice/_legacy/Controllers/UsersController.cs rename to zero.Backoffice/Modules/Users/UsersController.cs diff --git a/zero.Backoffice/Plugin.cs b/zero.Backoffice/Plugin.cs index cd4cc83e..dee88f6c 100644 --- a/zero.Backoffice/Plugin.cs +++ b/zero.Backoffice/Plugin.cs @@ -27,12 +27,17 @@ public class ZeroBackofficePlugin : ZeroPlugin services.AddHostedService(); services.AddTransient(); - // register all modules - ZeroModuleConfiguration moduleConfig = new(services, configuration); - foreach (ZeroModule module in Registrations.Modules) - { - module.Register(moduleConfig); - } + services.AddZeroBackofficeUIComposition(); + + //services.AddTransient(); + //services.AddTransient(); + //services.AddTransient(); + //services.AddTransient(); + + //services.AddTransient(); + //services.AddTransient(); + + //services.AddScoped(); PostConfigureServices?.Invoke(services, configuration); } @@ -40,7 +45,6 @@ public class ZeroBackofficePlugin : ZeroPlugin protected void ConfigureOptions(BackofficeOptions options, IWebHostEnvironment env) { - options.Path = "/zero"; options.Search.Enabled = true; options.DevServer.WorkingDirectory = Path.Combine(env.ContentRootPath, "..", "Zero.Web.UI", "App"); diff --git a/zero.Backoffice/Registrations.cs b/zero.Backoffice/Registrations.cs index edcdecab..b03565f0 100644 --- a/zero.Backoffice/Registrations.cs +++ b/zero.Backoffice/Registrations.cs @@ -5,8 +5,6 @@ internal class Registrations public static List Modules { get; } = new() { new CountriesModule(), - new SearchModule(), - new BackofficeUICompositionModule(), - new BackofficeDevServerModule() + new SearchModule() }; } \ No newline at end of file diff --git a/zero.Backoffice/UIComposition/Module.cs b/zero.Backoffice/UIComposition/Module.cs deleted file mode 100644 index 308e5338..00000000 --- a/zero.Backoffice/UIComposition/Module.cs +++ /dev/null @@ -1,28 +0,0 @@ -using Microsoft.Extensions.DependencyInjection; - -namespace zero.Backoffice.UIComposition; - -internal class BackofficeUICompositionModule : ZeroModule -{ - /// - public override void Register(IZeroModuleConfiguration config) - { - config.Services.AddSingleton(); - config.Services.AddSingleton(); - config.Services.AddSingleton(); - config.Services.AddSingleton(); - config.Services.AddSingleton(); - - config.Services.AddSingleton(); - config.Services.AddSingleton(); - - config.Services.AddScoped(); - } - - - /// - public override void Configure(IZeroOptions options) - { - - } -} \ No newline at end of file diff --git a/zero.Backoffice/UIComposition/ServiceCollectionExtensions.cs b/zero.Backoffice/UIComposition/ServiceCollectionExtensions.cs new file mode 100644 index 00000000..1a0bf8da --- /dev/null +++ b/zero.Backoffice/UIComposition/ServiceCollectionExtensions.cs @@ -0,0 +1,22 @@ +using Microsoft.Extensions.DependencyInjection; + +namespace zero.Backoffice.UIComposition; + +public static class ServiceCollectionExtensions +{ + public static IServiceCollection AddZeroBackofficeUIComposition(this IServiceCollection services) + { + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + + services.AddSingleton(); + services.AddSingleton(); + + services.AddScoped(); + + return services; + } +} \ No newline at end of file diff --git a/zero.Backoffice/_legacy/Controllers/UtilsController.cs b/zero.Backoffice/_legacy/Controllers/UtilsController.cs deleted file mode 100644 index d49f2e0a..00000000 --- a/zero.Backoffice/_legacy/Controllers/UtilsController.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using zero.Core.Api; - -namespace zero.Web.Controllers -{ - public class UtilsController : BackofficeController - { - public string GenerateAlias([FromQuery] string name) => Safenames.Alias(name); - } -} diff --git a/zero.Backoffice/_legacy/Defaults/ZeroBackofficePlugin.cs b/zero.Backoffice/_legacy/Defaults/ZeroBackofficePlugin.cs deleted file mode 100644 index e4dd2169..00000000 --- a/zero.Backoffice/_legacy/Defaults/ZeroBackofficePlugin.cs +++ /dev/null @@ -1,52 +0,0 @@ -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using zero.Web.ViewHelpers; - -namespace zero.Web.Defaults -{ - internal class ZeroBackofficePlugin : ZeroPlugin - { - public override void Configure(IZeroOptions zero) - { - zero.Permissions.AddCollection(); - - zero.Pages.Add(Constants.Pages.FolderAlias, "@page.folder.name", "@page.folder.description", "fth-folder"); - } - - - public override void ConfigureServices(IServiceCollection services, IConfiguration configuration) - { - //services.AddAll(typeof(IValidator<>), ServiceLifetime.Scoped); - //services.AddAll(typeof(IValidator), ServiceLifetime.Scoped); - - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - - services.AddScoped(); - - services.AddTransient(); - services.AddTransient(); - - services.AddScoped(); - } - } -} \ No newline at end of file diff --git a/zero.Core/_legacy/Collections/Integrations/IntegrationsCollection.cs b/zero.Core/Configuration/Integrations/IntegrationsCollection.cs similarity index 100% rename from zero.Core/_legacy/Collections/Integrations/IntegrationsCollection.cs rename to zero.Core/Configuration/Integrations/IntegrationsCollection.cs diff --git a/zero.Core/_legacy/Collections/Media/MediaCollection.cs b/zero.Core/Media/MediaCollection.cs similarity index 100% rename from zero.Core/_legacy/Collections/Media/MediaCollection.cs rename to zero.Core/Media/MediaCollection.cs diff --git a/zero.Core/_legacy/Collections/Media/MediaFolderCollection.cs b/zero.Core/Media/MediaFolderCollection.cs similarity index 100% rename from zero.Core/_legacy/Collections/Media/MediaFolderCollection.cs rename to zero.Core/Media/MediaFolderCollection.cs diff --git a/zero.Core/Media/MediaFolderStore.cs b/zero.Core/Media/MediaFolderStore.cs new file mode 100644 index 00000000..58cb0192 --- /dev/null +++ b/zero.Core/Media/MediaFolderStore.cs @@ -0,0 +1,14 @@ +namespace zero.Media; + +public class MediaFolderStore : EntityStore, IMediaFolderStore +{ + public MediaFolderStore(IStoreContext context) : base(context) + { + + } +} + + +public interface IMediaFolderStore : IEntityStore +{ +} \ No newline at end of file diff --git a/zero.Core/Media/MediaStore.cs b/zero.Core/Media/MediaStore.cs new file mode 100644 index 00000000..902489d1 --- /dev/null +++ b/zero.Core/Media/MediaStore.cs @@ -0,0 +1,14 @@ +namespace zero.Media; + +public class MediaStore : EntityStore, IMediaStore +{ + public MediaStore(IStoreContext context) : base(context) + { + + } +} + + +public interface IMediaStore : IEntityStore +{ +} \ No newline at end of file diff --git a/zero.Core/Media/Models/MediaFolder.cs b/zero.Core/Media/Models/MediaFolder.cs index f5390412..79f18e4f 100644 --- a/zero.Core/Media/Models/MediaFolder.cs +++ b/zero.Core/Media/Models/MediaFolder.cs @@ -4,7 +4,7 @@ /// A media folder contains media and other folders /// [RavenCollection("MediaFolders")] -public class MediaFolder : ZeroEntity +public class MediaFolder : ZeroEntity, IZeroTreeEntity { /// /// Parent folder id diff --git a/zero.Core/Media/ServiceCollectionExtensions.cs b/zero.Core/Media/ServiceCollectionExtensions.cs new file mode 100644 index 00000000..868524b0 --- /dev/null +++ b/zero.Core/Media/ServiceCollectionExtensions.cs @@ -0,0 +1,22 @@ +using Microsoft.Extensions.DependencyInjection; + +namespace zero.Media; + +internal static class ServiceCollectionExtensions +{ + public static IServiceCollection AddZeroMedia(this IServiceCollection services) + { + services.AddScoped(); + services.AddScoped(); + + services.Configure(opts => + { + RavenOptions raven = opts.For(); + raven.Indexes.Add(); + raven.Indexes.Add(); + raven.Indexes.Add(); + raven.Indexes.Add(); + }); + return services; + } +} \ No newline at end of file diff --git a/zero.Core/_legacy/Entities/Modules/Module.cs b/zero.Core/Pages/Modules/Module.cs similarity index 100% rename from zero.Core/_legacy/Entities/Modules/Module.cs rename to zero.Core/Pages/Modules/Module.cs diff --git a/zero.Backoffice/_legacy/Defaults/ModulePermissions.cs b/zero.Core/Pages/Modules/ModulePermissions.cs similarity index 100% rename from zero.Backoffice/_legacy/Defaults/ModulePermissions.cs rename to zero.Core/Pages/Modules/ModulePermissions.cs diff --git a/zero.Core/_legacy/Entities/Modules/ModuleType.cs b/zero.Core/Pages/Modules/ModuleType.cs similarity index 100% rename from zero.Core/_legacy/Entities/Modules/ModuleType.cs rename to zero.Core/Pages/Modules/ModuleType.cs diff --git a/zero.Core/_legacy/Api/ModulesApi.cs b/zero.Core/Pages/Modules/ModulesApi.cs similarity index 100% rename from zero.Core/_legacy/Api/ModulesApi.cs rename to zero.Core/Pages/Modules/ModulesApi.cs diff --git a/zero.Core/Pages/ServiceCollectionExtensions.cs b/zero.Core/Pages/ServiceCollectionExtensions.cs index ae0bd934..6174ef35 100644 --- a/zero.Core/Pages/ServiceCollectionExtensions.cs +++ b/zero.Core/Pages/ServiceCollectionExtensions.cs @@ -16,6 +16,8 @@ internal static class ServiceCollectionExtensions raven.Indexes.Add(); raven.Indexes.Add(); raven.Indexes.Add(); + + opts.For().Add(Constants.Pages.FolderAlias, "@page.folder.name", "@page.folder.description", "fth-folder"); }); return services; } diff --git a/zero.Core/_legacy/Entities/Spaces/Space.cs b/zero.Core/Spaces/Models/Space.cs similarity index 100% rename from zero.Core/_legacy/Entities/Spaces/Space.cs rename to zero.Core/Spaces/Models/Space.cs diff --git a/zero.Core/_legacy/Entities/Spaces/SpaceContent.cs b/zero.Core/Spaces/Models/SpaceContent.cs similarity index 100% rename from zero.Core/_legacy/Entities/Spaces/SpaceContent.cs rename to zero.Core/Spaces/Models/SpaceContent.cs diff --git a/zero.Core/_legacy/Entities/Spaces/SpaceView.cs b/zero.Core/Spaces/Models/SpaceView.cs similarity index 100% rename from zero.Core/_legacy/Entities/Spaces/SpaceView.cs rename to zero.Core/Spaces/Models/SpaceView.cs diff --git a/zero.Core/_legacy/Api/SpacesApi.cs b/zero.Core/Spaces/SpacesApi.cs similarity index 100% rename from zero.Core/_legacy/Api/SpacesApi.cs rename to zero.Core/Spaces/SpacesApi.cs diff --git a/zero.Core/_legacy/Entities/Features/Feature.cs b/zero.Core/Unimplemented/Feature.cs similarity index 100% rename from zero.Core/_legacy/Entities/Features/Feature.cs rename to zero.Core/Unimplemented/Feature.cs diff --git a/zero.Core/Usings.cs b/zero.Core/Usings.cs index 8333a8d5..14787701 100644 --- a/zero.Core/Usings.cs +++ b/zero.Core/Usings.cs @@ -16,6 +16,7 @@ global using zero.FileStorage; global using zero.Identity; global using zero.Localization; global using zero.Mails; +global using zero.Media; global using zero.Pages; global using zero.Persistence; global using zero.Rendering; diff --git a/zero.Core/ZeroBuilder.cs b/zero.Core/ZeroBuilder.cs index f1296a32..c5e04116 100644 --- a/zero.Core/ZeroBuilder.cs +++ b/zero.Core/ZeroBuilder.cs @@ -44,6 +44,7 @@ public class ZeroBuilder services.AddZeroLocalization(); services.AddZeroMails(); services.AddZeroPages(); + services.AddZeroMedia(); services.AddZeroPersistence(); services.AddZeroRendering(); services.AddZeroRouting();