Have you looked into this?
Not the commercial version but it does in the open source and I added it to my commercial product 2 years ago so you should accomondate for this also.
If I then just comment all the File "stuff" out to in the UI (just the UI) I get the following error when running
Autofac.Core.DependencyResolutionException: An exception was thrown while activating ContractWorkModule.JobFiles.JobFilesAppService.
---> Autofac.Core.DependencyResolutionException: None of the constructors found on type 'ContractWorkModule.JobFiles.JobFilesAppService' can be invoked with the available services and parameters:
Cannot resolve parameter 'Volo.Abp.Domain.Repositories.IRepository`2[ContractWorkModule.AppFileDescriptors.AppFileDescriptor,System.Guid] appFileDescriptorRepository' of constructor 'Void .ctor(ContractWorkModule.JobFiles.IJobFileRepository, ContractWorkModule.JobFiles.JobFileManager, Volo.Abp.Caching.IDistributedCache`2[ContractWorkModule.JobFiles.JobFileDownloadTokenCacheItem,System.String], Volo.Abp.Domain.Repositories.IRepository`2[ContractWorkModule.AppFileDescriptors.AppFileDescriptor,System.Guid], Volo.Abp.BlobStoring.IBlobContainer`1[ContractWorkModule.JobFiles.JobFileFileContainer])'.
so now I´m trying to track that down... It seems that the suite part has not been tested that much for this File thing..
UPDATE
I solved that one by adding this line to my ContractWorkModuleApplicationModule
but then I had to add my EntityFrameworkCore project that has my database context as a reference. Is that the way to go for a module?
context.Services.AddTransient<IRepository<AppFileDescriptor, Guid>, EfCoreRepository<ShowCasasDbContext, AppFileDescriptor, Guid>>();
BUT now I´m getting the following error
[10:55:21 DBG] Get dynamic claims cache for user: 56e99f30-fe1a-429f-44c4-3a137061d937
[10:55:21 INF] Request finished HTTP/2 GET https://localhost:44369/Pages/Jobs.razor.js - 404 0 null 34.0081ms
[10:55:21 INF] Request reached the end of the middleware pipeline without being handled by application code. Request path: GET https://localhost:44369/Pages/Jobs.razor.js, Response status code: 404
[10:55:22 WRN] Unhandled exception rendering component: Failed to fetch dynamically imported module: https://localhost:44369/Pages/Jobs.razor.js
TypeError: Failed to fetch dynamically imported module: https://localhost:44369/Pages/Jobs.razor.js
Microsoft.JSInterop.JSException: Failed to fetch dynamically imported module: https://localhost:44369/Pages/Jobs.razor.js
TypeError: Failed to fetch dynamically imported module: https://localhost:44369/Pages/Jobs.razor.js
at Microsoft.JSInterop.JSRuntime.InvokeAsync[TValue](Int64 targetInstanceId, String identifier, Object[] args)
at ContractWorkModule.Blazor.Pages.ContractWorkModule.Jobs.OnAfterRenderAsync(Boolean firstRender) in C:\Dev\NineKeys.ShowCasas\aspnet-core\modules\ContractWorkModule\src\ContractWorkModule.Blazor\Pages\ContractWorkModule\Jobs.razor.cs:line 111
at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle, ComponentState owningComponentState)
[10:55:22 ERR] Unhandled exception in circuit 'zCPhR6vkqJKDFKyFgew8tT-7NvbRH6KsYgbbCL9rOII'.
Microsoft.JSInterop.JSException: Failed to fetch dynamically imported module: https://localhost:44369/Pages/Jobs.razor.js
TypeError: Failed to fetch dynamically imported module: https://localhost:44369/Pages/Jobs.razor.js
at Microsoft.JSInterop.JSRuntime.InvokeAsync[TValue](Int64 targetInstanceId, String identifier, Object[] args)
at ContractWorkModule.Blazor.Pages.ContractWorkModule.Jobs.OnAfterRenderAsync(Boolean firstRender) in C:\Dev\NineKeys.ShowCasas\aspnet-core\modules\ContractWorkModule\src\ContractWorkModule.Blazor\Pages\ContractWorkModule\Jobs.razor.cs:line 111
at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle, ComponentState owningComponentState)
[10:55:22 DBG] Get dynamic claims cache for user: 56e99f30-fe1a-429f-44c4-3a137061d937
[10:55:22 INF] Executed endpoint 'Microsoft.AspNetCore.Routing.RouteEndpoint'
[10:55:22 INF] Request finished HTTP/2 CONNECT https://localhost:44369/_blazor?id=A5k3AEkOw7p_-WHpWIf1HA - 200 null null 10154.4415ms
[10:55:22 INF] Connection id "0HN4O57KU2NH1", Request id "0HN4O57KU2NH1:00000015": the application completed without reading the entire request body.
UPDATE 2 I figured why the js was not being loaded.. it was trying to reference the js file from a totally wrong path (notice that my module has a module folder under pages (all genereated with Suite)
BUT after pointing it to the .js I get the following error
[11:11:32 WRN] Unhandled exception rendering component: JavaScript interop calls cannot be issued at this time. This is because the circuit has disconnected and is being disposed.
Microsoft.JSInterop.JSDisconnectedException: JavaScript interop calls cannot be issued at this time. This is because the circuit has disconnected and is being disposed.
at Microsoft.AspNetCore.Components.Server.Circuits.RemoteJSRuntime.BeginInvokeJS(Int64 asyncHandle, String identifier, String argsJson, JSCallResultType resultType, Int64 targetInstanceId)
at Microsoft.JSInterop.JSRuntime.InvokeAsync[TValue](Int64 targetInstanceId, String identifier, CancellationToken cancellationToken, Object[] args)
at Microsoft.JSInterop.JSRuntime.InvokeAsync[TValue](Int64 targetInstanceId, String identifier, Object[] args)
at Microsoft.JSInterop.JSObjectReferenceExtensions.InvokeVoidAsync(IJSObjectReference jsObjectReference, String identifier, Object[] args)
at Blazorise.DataGrid.JSDataGridModule.Initialize(ElementReference elementRef, String elementId)
at Blazorise.DataGrid.DataGrid`1.OnAfterRenderAsync(Boolean firstRender)
at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle, ComponentState owningComponentState)
[11:11:32 ERR] Unhandled exception in circuit 'cNIk9AF7tB-ZzTyDjjAGRWxePnRGsr20JCvkzZwBHk4'.
Microsoft.JSInterop.JSDisconnectedException: JavaScript interop calls cannot be issued at this time. This is because the circuit has disconnected and is being disposed.
at Microsoft.AspNetCore.Components.Server.Circuits.RemoteJSRuntime.BeginInvokeJS(Int64 asyncHandle, String identifier, String argsJson, JSCallResultType resultType, Int64 targetInstanceId)
at Microsoft.JSInterop.JSRuntime.InvokeAsync[TValue](Int64 targetInstanceId, String identifier, CancellationToken cancellationToken, Object[] args)
at Microsoft.JSInterop.JSRuntime.InvokeAsync[TValue](Int64 targetInstanceId, String identifier, Object[] args)
at Microsoft.JSInterop.JSObjectReferenceExtensions.InvokeVoidAsync(IJSObjectReference jsObjectReference, String identifier, Object[] args)
at Blazorise.DataGrid.JSDataGridModule.Initialize(ElementReference elementRef, String elementId)
at Blazorise.DataGrid.DataGrid`1.OnAfterRenderAsync(Boolean firstRender)
at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle, ComponentState owningComponentState)
UPDATE 3 I could not fix the error above so I just commented all out BUT now I sometimes get this error
[11:31:38 WRN] Unhandled exception rendering component: Collection was modified; enumeration operation may not execute.
System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
at System.Collections.Generic.List`1.Enumerator.MoveNextRare()
at Volo.Abp.AspNetCore.Components.Web.LeptonXTheme.Components.ApplicationLayout.Common.ContentToolbar.mvtNVO0Qjc(RenderTreeBuilder )
at Blazorise.Row.<BuildRenderTree>b__24_2(RenderTreeBuilder __builder3)
at Microsoft.AspNetCore.Components.CascadingValue`1.Render(RenderTreeBuilder builder)
at Microsoft.AspNetCore.Components.Rendering.ComponentState.RenderIntoBatch(RenderBatchBuilder batchBuilder, RenderFragment renderFragment, Exception& renderFragmentException)
[11:31:38 ERR] Unhandled exception in circuit 'b8SskGnvorXXbNMQgrv2vO6JHWfGZCHdeQPmqprrUr0'.
System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
at System.Collections.Generic.List`1.Enumerator.MoveNextRare()
at Volo.Abp.AspNetCore.Components.Web.LeptonXTheme.Components.ApplicationLayout.Common.ContentToolbar.mvtNVO0Qjc(RenderTreeBuilder )
at Blazorise.Row.<BuildRenderTree>b__24_2(RenderTreeBuilder __builder3)
at Microsoft.AspNetCore.Components.CascadingValue`1.Render(RenderTreeBuilder builder)
at Microsoft.AspNetCore.Components.Rendering.ComponentState.RenderIntoBatch(RenderBatchBuilder batchBuilder, RenderFragment renderFragment, Exception& renderFragmentException)
I want to be able to turn off cmsKit features for all blogs (e.g comments) for all tenants but now I can only turn everything on or add all features and skip the ones I don´t want (what happens when there is a new feature and I miss it!)
Can we have something like this?
GlobalFeatureManager.Instance.Modules.CmsKit(cmsKit =>
{
cmsKit.EnableAllExcept(x => {
x.Comment.Disable();
});
});
The Quick Navigation Bar In Blog Post is picking up something totally different from what is in the blog post. Take a look