Activities of "cezary.bojko"

So, is this a bug? Could I get question refund?

  • ABP Framework version: v5.2.2
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes
  • Exception message and stack trace:
at Volo.Abp.Check.NotNull[T](T value, String parameterName)
   at Volo.Abp.ObjectExtending.ExtensibleObjectMapper.MapExtraPropertiesTo[TSource,TDestination](TSource source, TDestination destination, Nullable`1 definitionChecks, String[] ignoredProperties)
   at Volo.Abp.ObjectExtending.HasExtraPropertiesObjectExtendingExtensions.MapExtraPropertiesTo[TSource,TDestination](TSource source, TDestination destination, Nullable`1 definitionChecks, String[] ignoredProperties)
   at Volo.FileManagement.Files.FileManager.<SaveFileDescriptorAsync>d__12.MoveNext()
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
   at Volo.FileManagement.Files.FileManager.&lt;CreateAsync&gt;d__11.MoveNext()
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
  • Steps to reproduce the issue:"

After update from 5.1.4 to 5.2.2 I must pass optional parameter (extensibleObject) to avoid exception.

        await _fileManager.CreateAsync(errorFileName, "text/plain", new RemoteStreamContent(stream), directoryId, extensibleObject: new ExtensibleObject());
  • ABP Framework version: v5.2.2
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes
  • Exception message and stack trace:
  • Steps to reproduce the issue:"

When menu has only 1 level, and we navigate to the page by typing url, or clickind refresh in a browser then opened page is reflected in a menu

When we are on a submenu page and we refresh or we get there by typing url then the menu isn't expanded

It seems that this worked in earlier (4.x.x) versions.

Unfortunately angular shows us only this full screen 403 error page.

At the moment my workaround is to extend AbpExceptionFilter by below method to format AbpAuthorizationException like others exceptions. In base class this code is ommited for that kind of exception.

With this everything works as expected, so maybe returning only 403 isn't enough for an angular in some cases?

private void HandleAbpAuthorizationException(ExceptionContext context)
{
    var exceptionHandlingOptions = context.GetRequiredService&lt;IOptions&lt;AbpExceptionHandlingOptions&gt;>().Value;
    var exceptionToErrorInfoConverter = context.GetRequiredService&lt;IExceptionToErrorInfoConverter&gt;();
    var remoteServiceErrorInfo = exceptionToErrorInfoConverter.Convert(context.Exception, options =>
    {
        options.SendExceptionsDetailsToClients = exceptionHandlingOptions.SendExceptionsDetailsToClients;
        options.SendStackTraceToClients = exceptionHandlingOptions.SendStackTraceToClients;
    });

    var remoteServiceErrorInfoBuilder = new StringBuilder();
    remoteServiceErrorInfoBuilder.AppendLine($"---------- {nameof(RemoteServiceErrorInfo)} ----------");
    remoteServiceErrorInfoBuilder.AppendLine(context.GetRequiredService&lt;IJsonSerializer&gt;().Serialize(remoteServiceErrorInfo, indented: true));

    context.HttpContext.Response.Headers.Add(AbpHttpConsts.AbpErrorFormat, "true");
    context.HttpContext.Response.StatusCode = (int) context
        .GetRequiredService&lt;IHttpExceptionStatusCodeFinder&gt;()
        .GetStatusCode(context.HttpContext, context.Exception);

    context.Result = new ObjectResult(new RemoteServiceErrorResponse(remoteServiceErrorInfo));
}

You can directly display an error message.

Hi,

What do you mean by directly display message? I have full screen 403 error without any message (when I use HttpErrorComponent) . My error config:

I use Angular 13.3 and .NET 6.0

I found out that my problem is related to the changes in a AbpExceptionFilter

https://github.com/abpframework/abp/commit/74001e550e5921fdf558b9eb57996c254ccf1064

If I replace implementation of AbpExceptionFilter and remove dedicated AbpAuthorizationException handling then it's working as before. Looks like IAbpAuthorizationExceptionHandler doesn't format 403 response as a valid abp format error reponse. Not sure why.

Any idea what should I check next?

  • ABP Framework version: v5.1.4

  • UI type: Angular

  • DB provider: EF Core

  • Tiered (MVC) or Identity Server Separated (Angular): yes

  • Exception message and stack trace:

  • Steps to reproduce the issue:"

      	httpErrorConfig: {
      		errorScreen: {
      			component: HttpErrorComponent,
      			forWhichErrors: [401, 403, 404, 500],
      			hideCloseIcon: true,
      		},
    

We use HttpErrorComponent with a specified errors. After upgrade from 4.x.x to 5.1.4 some errors stopped showing as a dialog with translated message, and started showing as a fullscreen component with http code only. example:

Previously after api call from typescript, when user had an error (for example 403) user would see something similiar to It still works with our BusinessExceptions and AbpValidationExceptions

But now user sees only this

Full screen component without error message.

Is it correct behaviour? If I want previous behavior then should I map AbpAuthorizationException to AbpValidationException?

Api method:

[HttpGet("")]
public async Task&lt;PagedResultDto&lt;SearchDeficitListDto&gt;> SearchDeficitList([FromQuery] SearchDeficitList model)
{
    var query = new SearchDeficitListQuery(model.CustomerIds, model.MaterialIds, model.FilterText, model.MaxResultCount, model.SkipCount, model.Sorting);
    var result = await _mediator.Query&lt;SearchDeficitListQuery, PagedResultDto&lt;SearchDeficitListDto&gt;>(query);
    return result;
}

Query is consumed by MassTransit IConsumer. In consumer we use Dapper to retrieve data and return it to the controller.

Sample stacktrace (1 redis call) TracedRedisCache.Get()at C:\dev\Neuca\src\aspnet-core\src\Neuca.OrderManagementSystem.HttpApi.Host\OmsExtensions\TracedRedisCache.cs:line 27 DistributedCache<LanguageTextCacheItem, string>.Get() DistributedCache<LanguageTextCacheItem, string>.GetOrAdd() DynamicResourceLocalizer.GetCacheItem() DynamicResourceLocalizer.GetOrNull() DynamicLocalizationResourceContributor.GetOrNull() LocalizationResourceContributorList.GetOrNull() AbpDictionaryBasedStringLocalizer.GetLocalizedStringOrNull() AbpDictionaryBasedStringLocalizer.GetLocalizedString() [2] AbpDictionaryBasedStringLocalizer.GetLocalizedString() [2] AbpDictionaryBasedStringLocalizer.get_Item() [2] AbpDictionaryBasedStringLocalizer.GetLocalizedString() [1] AbpDictionaryBasedStringLocalizer.GetLocalizedString() [1] AbpDictionaryBasedStringLocalizer.get_Item() [1] AbpDataAnnotationAutoLocalizationMetadataDetailsProvider.<>c__DisplayClass4_0.<CreateDisplayMetadata>b__0() DefaultModelMetadata.get_DisplayName() ModelMetadata.GetDisplayName() DataAnnotationsModelValidator.Validate() ValidationVisitor.ValidateNode() ValidationVisitor.VisitSimpleType() ValidationVisitor.VisitImplementation() [2] ValidationVisitor.Visit() [2] ValidationVisitor.VisitChildren() ValidationVisitor.VisitComplexType() ValidationVisitor.VisitImplementation() [1] ValidationVisitor.Visit() [1] ValidationVisitor.Validate() ObjectModelValidator.Validate() ParameterBinder.EnforceBindRequiredAndValidate() ParameterBinder.<BindModelAsync>d__8.MoveNext() AsyncMethodBuilderCore.Start<Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder.<BindModelAsync>d__8>() AsyncValueTaskMethodBuilder<ModelBindingResult>.Start<Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder.<BindModelAsync>d__8>() ParameterBinder.BindModelAsync() ControllerBinderDelegateProvider.<>c__DisplayClass0_0.<<CreateBinderDelegate>g__Bind|0>d.MoveNext() AsyncMethodBuilderCore.Start<Microsoft.AspNetCore.Mvc.Controllers.ControllerBinderDelegateProvider.<>c__DisplayClass0_0.<<CreateBinderDelegate>g__Bind|0>d>() AsyncTaskMethodBuilder.Start<Microsoft.AspNetCore.Mvc.Controllers.ControllerBinderDelegateProvider.<>c__DisplayClass0_0.<<CreateBinderDelegate>g__Bind|0>d>() ControllerBinderDelegateProvider.<>c__DisplayClass0_0.<CreateBinderDelegate>g__Bind|0() ControllerActionInvoker.BindArgumentsAsync() ControllerActionInvoker.Next() ControllerActionInvoker.InvokeInnerFilterAsync() ResourceInvoker.Next() [3] ResourceInvoker.InvokeNextExceptionFilterAsync() ResourceInvoker.Next() [2] ResourceInvoker.InvokeNextResourceFilter() ResourceInvoker.Next() [1] ResourceInvoker.InvokeFilterPipelineAsync() ResourceInvoker.<<InvokeAsync>g__Logged|17_1>d.MoveNext() AsyncMethodBuilderCore.Start<Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<<InvokeAsync>g__Logged|17_1>d>() AsyncTaskMethodBuilder.Start<Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<<InvokeAsync>g__Logged|17_1>d>() ResourceInvoker.<InvokeAsync>g__Logged|17_1() ResourceInvoker.InvokeAsync() ControllerRequestDelegateFactory.<>c__DisplayClass10_0.<CreateRequestDelegate>b__0() EndpointMiddleware.Invoke() AbpUnitOfWorkMiddleware.<InvokeAsync>d__3.MoveNext() AsyncMethodBuilderCore.Start<Volo.Abp.AspNetCore.Uow.AbpUnitOfWorkMiddleware.<InvokeAsync>d__3>() AsyncTaskMethodBuilder.Start<Volo.Abp.AspNetCore.Uow.AbpUnitOfWorkMiddleware.<InvokeAsync>d__3>() AbpUnitOfWorkMiddleware.InvokeAsync() UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext() [5] AsyncMethodBuilderCore.Start<Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d>() [5] AsyncTaskMethodBuilder.Start<Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d>() [5] UseMiddlewareExtensions.<>c__DisplayClass6_1.<UseMiddlewareInterface>b__1() [5] AbpExceptionHandlingMiddleware.<InvokeAsync>d__3.MoveNext() AsyncMethodBuilderCore.Start<Volo.Abp.AspNetCore.ExceptionHandling.AbpExceptionHandlingMiddleware.<InvokeAsync>d__3>() AsyncTaskMethodBuilder.Start<Volo.Abp.AspNetCore.ExceptionHandling.AbpExceptionHandlingMiddleware.<InvokeAsync>d__3>() AbpExceptionHandlingMiddleware.InvokeAsync() UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext() [4] AsyncMethodBuilderCore.Start<Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d>() [4] AsyncTaskMethodBuilder.Start<Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d>() [4] UseMiddlewareExtensions.<>c__DisplayClass6_1.<UseMiddlewareInterface>b__1() [4] AbpAuditingMiddleware.<InvokeAsync>d__14.MoveNext() AsyncMethodBuilderCore.Start<Volo.Abp.AspNetCore.Auditing.AbpAuditingMiddleware.<InvokeAsync>d__14>() AsyncTaskMethodBuilder.Start<Volo.Abp.AspNetCore.Auditing.AbpAuditingMiddleware.<InvokeAsync>d__14>() AbpAuditingMiddleware.InvokeAsync() UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext() [3] AsyncMethodBuilderCore.Start<Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d>() [3] AsyncTaskMethodBuilder.Start<Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d>() [3] UseMiddlewareExtensions.<>c__DisplayClass6_1.<UseMiddlewareInterface>b__1() [3] StaticFileMiddleware.Invoke() [2] SwaggerUIMiddleware.<Invoke>d__5.MoveNext() AsyncMethodBuilderCore.Start<Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.<Invoke>d__5>() AsyncTaskMethodBuilder.Start<Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.<Invoke>d__5>() SwaggerUIMiddleware.Invoke() SwaggerMiddleware.<Invoke>d__4.MoveNext() AsyncMethodBuilderCore.Start<Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.<Invoke>d__4>() AsyncTaskMethodBuilder.Start<Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.<Invoke>d__4>() SwaggerMiddleware.Invoke() [Lightweight Method Call] UseMiddlewareExtensions.<>c__DisplayClass5_1.<UseMiddleware>b__2() [5] AuthorizationMiddleware.<Invoke>d__6.MoveNext() AsyncMethodBuilderCore.Start<Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.<Invoke>d__6>() AsyncTaskMethodBuilder.Start<Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.<Invoke>d__6>() AuthorizationMiddleware.Invoke() IdentityServerMiddleware.<Invoke>d__3.MoveNext() AsyncMethodBuilderCore.Start<IdentityServer4.Hosting.IdentityServerMiddleware.<Invoke>d__3>() AsyncTaskMethodBuilder.Start<IdentityServer4.Hosting.IdentityServerMiddleware.<Invoke>d__3>() IdentityServerMiddleware.Invoke() [Lightweight Method Call] UseMiddlewareExtensions.<>c__DisplayClass5_1.<UseMiddleware>b__2() [4] MutualTlsEndpointMiddleware.<Invoke>d__4.MoveNext() AsyncMethodBuilderCore.Start<IdentityServer4.Hosting.MutualTlsEndpointMiddleware.<Invoke>d__4>() AsyncTaskMethodBuilder.Start<IdentityServer4.Hosting.MutualTlsEndpointMiddleware.<Invoke>d__4>() MutualTlsEndpointMiddleware.Invoke() [Lightweight Method Call] UseMiddlewareExtensions.<>c__DisplayClass5_1.<UseMiddleware>b__2() [3] AuthenticationMiddleware.<Invoke>d__6.MoveNext() [2] AsyncMethodBuilderCore.Start<Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.<Invoke>d__6>() [2] AsyncTaskMethodBuilder.Start<Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.<Invoke>d__6>() [2] AuthenticationMiddleware.Invoke() [2] CorsMiddleware.Invoke() [2] [Lightweight Method Call] UseMiddlewareExtensions.<>c__DisplayClass5_1.<UseMiddleware>b__2() [2] BaseUrlMiddleware.<Invoke>d__3.MoveNext() AsyncMethodBuilderCore.Start<IdentityServer4.Hosting.BaseUrlMiddleware.<Invoke>d__3>() AsyncTaskMethodBuilder.Start<IdentityServer4.Hosting.BaseUrlMiddleware.<Invoke>d__3>() BaseUrlMiddleware.Invoke() UseExtensions.<>c__DisplayClass0_2.<Use>b__2() ApplicationBuilderAbpJwtTokenMiddlewareExtension.<>c__DisplayClass0_0.<<UseJwtTokenMiddleware>b__0>d.MoveNext() AsyncMethodBuilderCore.Start<Microsoft.AspNetCore.Builder.ApplicationBuilderAbpJwtTokenMiddlewareExtension.<>c__DisplayClass0_0.<<UseJwtTokenMiddleware>b__0>d>() AsyncTaskMethodBuilder.Start<Microsoft.AspNetCore.Builder.ApplicationBuilderAbpJwtTokenMiddlewareExtension.<>c__DisplayClass0_0.<<UseJwtTokenMiddleware>b__0>d>() ApplicationBuilderAbpJwtTokenMiddlewareExtension.<>c__DisplayClass0_0.<UseJwtTokenMiddleware>b__0() UseExtensions.<>c__DisplayClass0_1.<Use>b__1() AuthenticationMiddleware.<Invoke>d__6.MoveNext() [1] AsyncMethodBuilderCore.Start<Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.<Invoke>d__6>() [1] AsyncTaskMethodBuilder.Start<Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.<Invoke>d__6>() [1] AuthenticationMiddleware.Invoke() [1] CookiePolicyMiddleware.Invoke() HttpRequestDurationMiddleware.<Invoke>d__2.MoveNext() AsyncMethodBuilderCore.Start<Prometheus.HttpMetrics.HttpRequestDurationMiddleware.<Invoke>d__2>() AsyncTaskMethodBuilder.Start<Prometheus.HttpMetrics.HttpRequestDurationMiddleware.<Invoke>d__2>() HttpRequestDurationMiddleware.Invoke() HttpRequestCountMiddleware.<Invoke>d__2.MoveNext() AsyncMethodBuilderCore.Start<Prometheus.HttpMetrics.HttpRequestCountMiddleware.<Invoke>d__2>() AsyncTaskMethodBuilder.Start<Prometheus.HttpMetrics.HttpRequestCountMiddleware.<Invoke>d__2>() HttpRequestCountMiddleware.Invoke() HttpInProgressMiddleware.<Invoke>d__2.MoveNext() AsyncMethodBuilderCore.Start<Prometheus.HttpMetrics.HttpInProgressMiddleware.<Invoke>d__2>() AsyncTaskMethodBuilder.Start<Prometheus.HttpMetrics.HttpInProgressMiddleware.<Invoke>d__2>() HttpInProgressMiddleware.Invoke() CaptureRouteDataMiddleware.Invoke() UseWhenExtensions.<>c__DisplayClass0_1.<UseWhen>b__1() EndpointRoutingMiddleware.Invoke() StaticFileMiddleware.Invoke() [1] CorsMiddleware.Invoke() [1] [Lightweight Method Call] UseMiddlewareExtensions.<>c__DisplayClass5_1.<UseMiddleware>b__2() [1] RequestLocalizationMiddleware.<Invoke>d__5.MoveNext() AsyncMethodBuilderCore.Start<Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.<Invoke>d__5>() AsyncTaskMethodBuilder.Start<Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.<Invoke>d__5>() RequestLocalizationMiddleware.Invoke() AbpRequestLocalizationMiddleware.<InvokeAsync>d__4.MoveNext() AsyncMethodBuilderCore.Start<Microsoft.AspNetCore.RequestLocalization.AbpRequestLocalizationMiddleware.<InvokeAsync>d__4>() AsyncTaskMethodBuilder.Start<Microsoft.AspNetCore.RequestLocalization.AbpRequestLocalizationMiddleware.<InvokeAsync>d__4>() AbpRequestLocalizationMiddleware.InvokeAsync() UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext() [2] AsyncMethodBuilderCore.Start<Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d>() [2] AsyncTaskMethodBuilder.Start<Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d>() [2] UseMiddlewareExtensions.<>c__DisplayClass6_1.<UseMiddlewareInterface>b__1() [2] async OmsExportGridMiddleware.Invoke()at C:\dev\Neuca\src\aspnet-core\src\Neuca.OrderManagementSystem.HttpApi.Host\OmsExtensions\OmsExportGridMiddleware.cs:line 69 AsyncMethodBuilderCore.Start<System.__Canon>() AsyncTaskMethodBuilder.Start<Neuca.OrderManagementSystem.HttpApi.Host.OmsExtensions.OmsExportGridMiddleware.<Invoke>d__2>() OmsExportGridMiddleware.Invoke() AbpCorrelationIdMiddleware.<InvokeAsync>d__3.MoveNext() AsyncMethodBuilderCore.Start<Volo.Abp.AspNetCore.Tracing.AbpCorrelationIdMiddleware.<InvokeAsync>d__3>() AsyncTaskMethodBuilder.Start<Volo.Abp.AspNetCore.Tracing.AbpCorrelationIdMiddleware.<InvokeAsync>d__3>() AbpCorrelationIdMiddleware.InvokeAsync() UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext() [1] AsyncMethodBuilderCore.Start<Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d>() [1] AsyncTaskMethodBuilder.Start<Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d>() [1] UseMiddlewareExtensions.<>c__DisplayClass6_1.<UseMiddlewareInterface>b__1() [1] DeveloperExceptionPageMiddleware.<Invoke>d__9.MoveNext() AsyncMethodBuilderCore.Start<Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.<Invoke>d__9>() AsyncTaskMethodBuilder.Start<Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.<Invoke>d__9>() DeveloperExceptionPageMiddleware.Invoke() ForwardedHeadersMiddleware.Invoke() HostFilteringMiddleware.Invoke() HostingApplication.ProcessRequestAsync() HttpProtocol.<ProcessRequests>d__223<HostingApplication.Context>.MoveNext() AsyncTaskMethodBuilder<VoidTaskResult>.AsyncStateMachineBox<HttpProtocol.<ProcessRequests>d__223<HostingApplication.Context>>.ExecutionContextCallback() ExecutionContext.RunInternal() [4] AsyncTaskMethodBuilder<VoidTaskResult>.AsyncStateMachineBox<HttpProtocol.<ProcessRequests>d__223<HostingApplication.Context>>.MoveNext() AsyncTaskMethodBuilder<VoidTaskResult>.AsyncStateMachineBox<HttpProtocol.<ProcessRequests>d__223<HostingApplication.Context>>.MoveNext() AwaitTaskContinuation.RunOrScheduleAction() [2] Task.RunContinuations() [2] Task.FinishContinuations() [2] Task<ReadResult>.TrySetResult() AsyncTaskMethodBuilder<ReadResult>.SetExistingTaskResult() AsyncValueTaskMethodBuilder<ReadResult>.SetResult() StreamPipeReader.<<ReadAsync>g__Core|36_0>d.MoveNext() AsyncTaskMethodBuilder<ReadResult>.AsyncStateMachineBox<StreamPipeReader.<<ReadAsync>g__Core|36_0>d>.ExecutionContextCallback() ExecutionContext.RunInternal() [3] AsyncTaskMethodBuilder<ReadResult>.AsyncStateMachineBox<StreamPipeReader.<<ReadAsync>g__Core|36_0>d>.MoveNext() AsyncTaskMethodBuilder<ReadResult>.AsyncStateMachineBox<StreamPipeReader.<<ReadAsync>g__Core|36_0>d>.MoveNext() AwaitTaskContinuation.RunOrScheduleAction() [1] Task.RunContinuations() [1] Task.FinishContinuations() [1] Task<int>.TrySetResult() AsyncTaskMethodBuilder<int>.SetExistingTaskResult() AsyncValueTaskMethodBuilder<int>.SetResult() SslStream.<ReadAsyncInternal>d__186<AsyncReadWriteAdapter>.MoveNext() AsyncTaskMethodBuilder<int>.AsyncStateMachineBox<SslStream.<ReadAsyncInternal>d__186<AsyncReadWriteAdapter>>.ExecutionContextCallback() ExecutionContext.RunInternal() [2] AsyncTaskMethodBuilder<int>.AsyncStateMachineBox<SslStream.<ReadAsyncInternal>d__186<AsyncReadWriteAdapter>>.MoveNext() AsyncTaskMethodBuilder<int>.AsyncStateMachineBox<SslStream.<ReadAsyncInternal>d__186<AsyncReadWriteAdapter>>.MoveNext() ThreadPool.<>c.<.cctor>b__87_0() ManualResetValueTaskSourceCore<int>.SignalCompletion() PoolingAsyncValueTaskMethodBuilder<int>.SetResult() DuplexPipeStream.<ReadAsyncInternal>d__27.MoveNext() PoolingAsyncValueTaskMethodBuilder<int>.StateMachineBox<DuplexPipeStream.<ReadAsyncInternal>d__27>.ExecutionContextCallback() ExecutionContext.RunInternal() [1] PoolingAsyncValueTaskMethodBuilder<int>.StateMachineBox<DuplexPipeStream.<ReadAsyncInternal>d__27>.MoveNext() PoolingAsyncValueTaskMethodBuilder<int>.StateMachineBox<DuplexPipeStream.<ReadAsyncInternal>d__27>.System.Threading.IThreadPoolWorkItem.Execute() ThreadPoolWorkQueue.Dispatch() PortableThreadPool.WorkerThread.WorkerThreadStart() Thread.StartCallback() [Native to Managed Transition]

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.

If you're creating a bug/problem report, please include followings:

  • ABP Framework version: v5.1.4
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes
  • Exception message and stack trace:
  • Steps to reproduce the issue:"

I'm trying to display additional column (CreationTime) in a file management module. This column already exists but it isn't returned from an endpoint.

I've added new column contributor in typescript:

const creationTimeProp = new EntityProp<DirectoryContentDto>({
	type: ePropType.DateTime,
	name: 'creationTime',
	displayName: 'AbpFileManagement::CreationTime',
	sortable: true,
	columnWidth: 250,
});

export function creationTimePropContributor(propList: EntityPropList<DirectoryContentDto>) {
	propList.addAfter(creationTimeProp, 'creationTime', (value, name) => value.name === name);
}

export const fileManagementEntityPropContributors: FileManagementEntityPropContributors = {
	[eFileManagementComponents.FolderContent]: [creationTimePropContributor],
};

But cannot configure module on the backend side (missing helpers for a FileManagement module). There is no 'ConfigureFileManagement' or 'ConfigureFileDescriptor' methods.

        ObjectExtensionManager.Instance.Modules()
            .ConfigureFileManagement(m =>
            {
                m.ConfigureFileDescriptor(u =>
                {
                    u.AddOrUpdateProperty&lt;DateTime&gt;("CreationTime", property =>
                    {
        
                    });
                });
            });
Showing 1 to 10 of 22 entries
Made with ❤️ on ABP v8.2.0-preview Updated on March 25, 2024, 15:11