Activities of "papusa"

Thank you

Thank you!

There are no providers on feature groups, only on individual features. However, after filtering out features that are not valid for the current provider, a group can become empty and still be shown in the UI.

I think that is also an issue: empty feature groups should be hidden after provider-based feature filtering. Just for your information, I have already fixed this on my side within my FeatureAppService replacement.

Thank you!

I would consider this a bug, not only a UX mismatch. If AllowedProviders = ["T"], the Edition Features UI should not allow saving an "E" value that runtime feature checking will ignore. The UI/API should respect FeatureDefinition.AllowedProviders for the provider currently being edited.

I can't access it, I've sent a request to get it.

Hi,

I can also share a sample project containing a fixed version if you prefer.

Yes, that would be great if it's possible.

Thanks for response!

ABP support ticket where the team recommends not using the generated Angular proxy for file uploads and instead sending FormData manually: https://abp.io/support/questions/5731

Ticket is 2 years old, problem is still here...

AI response doesn't solve my problem. In my case I have multiple files and I would like to have something like that:

public class TestUploadInput
{
    public Guid RecordId { get; set; }
    public TestUploadInputDocument[] Documents { get; set; } = [];
}

public class TestUploadInputDocument
{
    public Guid DocumentId { get; set; }
    public IEnumerable<IRemoteStreamContent> Files { get; set; } = [];
}

// Application service method. Tried with and without [FromForm].
public void Upload([FromForm]TestUploadInput input)...

Generated proxy is:

  uploadByInput = (input: TestUploadInput, config?: Partial<Rest.Config>) =>
    this.restService.request<any, void>({
      method: 'POST',
      url: '/api/app/ownership-change-flow/upload',
    },
    { apiName: this.apiName,...config });

// When application service method has no [FromForm] attribute
  uploadByInput = (input: TestUploadInput, config?: Partial<Rest.Config>) =>
    this.restService.request<any, void>({
      method: 'POST',
      url: '/api/app/ownership-change-flow/upload',
      params: { recordId: input.recordId, documents: input.documents },
    },
    { apiName: this.apiName,...config });

I believe it should be possible to generate a function which accepts FormData instead:

uploadByInput = (input: FormData, config?: Partial<Rest.Config>) =>
    this.restService.request<any, void>(
      {
        method: 'POST',
        url: '/api/app/ownership-change-flow/upload',
        body: input,
      },
      { apiName: this.apiName, ...config },
    );

Method above works well, backend accepts it. I understand I can build a custom service as workaround, but that defeats the purpose of using ABP’s proxy generator. IRemoteStreamContent (including DTO/multiple files) is documented as supported, yet the Angular proxy still generates unusable methods.

Showing 1 to 10 of 43 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.8.0-preview. Updated on October 21, 2026, 11:09
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.