Check the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples, to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, please use the search on the homepage.
Hello
I've got a question.. Abp Suite offers a nice solution to upgrade all packages etc to a new version, but how should we manage the interface (angular side?) If a new UI would be available, how could we implement it in our application withouth having to remake it all?
Kind regards Lotte
Or if code in the backend changes, how can we gently merge our code and the new version of abp.io?
Thank you for this response, this will help a lot :)
Hello
All automatic generated classes and repositories seem invalid. A piece of the summary seems to be included every time it should just need 'DynamicFieldEntityType type'
entity:
{ "Id": "0c368538-43bf-4bc3-81b8-9ea81fc7d7d5", "Name": "DynamicFieldGroup", "OriginalName": "DynamicFieldGroup", "NamePlural": "DynamicFieldGroups", "DatabaseTableName": "DynamicFieldGroups", "Namespace": "DynamicFieldGroups", "BaseClass": "FullAuditedAggregateRoot", "PrimaryKeyType": "Guid", "IsMultiTenant": true, "ShouldCreateUserInterface": false, "ShouldCreateBackend": false, "ShouldAddMigration": true, "ShouldUpdateDatabase": true, "CreateTests": true, "Properties": [ { "Id": "e7f10311-d742-47d5-b767-57082c28d9a0", "Name": "Name", "Type": "string", "EnumType": "", "EnumNamespace": "", "EnumAngularImport": "shared/enums", "IsNullable": false, "IsRequired": true, "MinLength": null, "MaxLength": null, "SortOrder": 0, "SortType": 0, "Regex": "", "EmailValidation": false, "EnumValues": null }, { "Id": "e5020837-cd7f-40c6-8e01-ee66bdde73f9", "Name": "Order", "Type": "int", "EnumType": "", "EnumNamespace": "", "EnumAngularImport": "shared/enums", "IsNullable": false, "IsRequired": true, "MinLength": null, "MaxLength": null, "SortOrder": 0, "SortType": 0, "Regex": "", "EmailValidation": false, "EnumValues": null }, { "Id": "01727782-35c5-4b65-a587-d81314d92d06", "Name": "Type", "Type": "enum", "EnumType": "will define the discriminator for a dynamic field.\r\n /// </summary>\r\n public enum DynamicFieldEntityType", "EnumNamespace": "InduwareIO.Shared", "EnumAngularImport": "shared/enums/will-define-the-discriminator-for-a-dynamic-field-summary-public-enum-dynamic-field-entity-type", "IsNullable": false, "IsRequired": true, "MinLength": null, "MaxLength": null, "SortOrder": 0, "SortType": 0, "Regex": "", "EmailValidation": false, "EnumValues": { "Product": 0, "Supplier": 1, "Project": 2, "Employee": 3 } } ], "NavigationProperties": [], "PhysicalFileName": "DynamicFieldGroup.json" }
enum:
namespace InduwareIO.Shared { public enum DynamicFieldEntityType { Product = 0, Supplier = 1, Project = 2, Employee = 3 } }
Hello
I had a working solution, then I've added the AccountModule and ThemeModule as a project to my solution (cfr. Link), but now the tests are broken. EFCoreTests are still fine.
Application tests fail with following message: Volo.Abp.AbpInitializationException : An error occurred during the initialize Volo.Abp.Modularity.OnApplicationInitializationModuleLifecycleContributor phase of the module Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule, Volo.Abp.AspNetCore.Mvc, Version=4.2.1.0, Culture=neutral, PublicKeyToken=null: Could not find singleton service: Microsoft.AspNetCore.Hosting.IWebHostEnvironment, Microsoft.AspNetCore.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60. See the inner exception for details. ---- System.InvalidOperationException : Could not find singleton service: Microsoft.AspNetCore.Hosting.IWebHostEnvironment, Microsoft.AspNetCore.Hosting.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
Stacktrace:
ModuleManager.InitializeModules(ApplicationInitializationContext context)
AbpApplicationBase.InitializeModules()
AbpApplicationWithExternalServiceProvider.Initialize(IServiceProvider serviceProvider)
AbpIntegratedTest1.ctor() InduwareIOTestBase
1.ctor()
InduwareIOApplicationTestBase.ctor()
CollectiveLeaveAppServiceTests.ctor() line 18
----- Inner Stack Trace -----
ServiceCollectionCommonExtensions.GetSingletonInstance[T](IServiceCollection services)
AbpAspNetCoreServiceCollectionExtensions.GetHostingEnvironment(IServiceCollection services)
<>c__DisplayClass1_0.<ConfigureServices>b__2(AbpAspNetCoreMvcOptions options)
PostConfigureOptions1.PostConfigure(String name, TOptions options) OptionsFactory
1.Create(String name)
<>c__DisplayClass5_0.<Get>b__0()
Lazy1.ViaFactory(LazyThreadSafetyMode mode) Lazy
1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)
Lazy1.CreateValue() Lazy
1.get_Value()
OptionsCache1.GetOrAdd(String name, Func
1 createOptions)
OptionsManager1.Get(String name) OptionsManager
1.get_Value()
AbpAspNetCoreMvcModule.AddApplicationParts(ApplicationInitializationContext context)
AbpAspNetCoreMvcModule.OnApplicationInitialization(ApplicationInitializationContext context)
OnApplicationInitializationModuleLifecycleContributor.Initialize(ApplicationInitializationContext context, IAbpModule module)
ModuleManager.InitializeModules(ApplicationInitializationContext context)
The module AbpAspnetCoreMvcModule is only used in the seperate AccountModule and ThemeModule. What do I do to fix this?
We'd like to have different swagger files for sections of our code. I've added following items in the hostmodule to add a second swagger definition:
options.SwaggerDoc("v1-backoffice", new OpenApiInfo { Title = "DLV_TC_Platform API Backoffice", Version = "v1" });
options.SwaggerDoc("v1-frontend", new OpenApiInfo { Title = "DLV_TC_Platform API Frontend", Version = "v1" });
options.SwaggerEndpoint("/swagger/v1-backoffice/swagger.json", "DLV_TC_Platform API BackOffice");
options.SwaggerEndpoint("/swagger/v1-frontend/swagger.json", "DLV_TC_Platform API Frontend");
With this setup you get two versions but they are the same.
How can I now indicate which services may appear on which swagger? Preferably with a convention-like method, so it can be setup once and then 'forgotten'.
Kind regards Lotte