Activities of "paul.harriman"

so i do not need to change this line: installdir_update="${installdir}/Update.exe"

This ticket (below) details how for Windows set up our environment for 0.9.8. Is there a script for mac? we converted the ps1 script to bash, but the url is pointing to windows and and another line pointing at an exe.

url="https://abp.io/api/abp-studio/download/r/windows/${output}" installdir_update="${installdir}/Update.exe"

https://abp.io/support/questions/8627/Install-specific-version-of-ABP-Studio

I read the article. that is what I am doing. it works great if you just send a file to the endpoint. if you send more than just a file, it does not work. that is why u need to add the special binder

Configure(options =>
{              options.ConventionalControllers.FormBodyBindingIgnoredTypes.Add(typeof(AssessmentPreviewFixedFileDto));
});

I will try stringify'ing the other parameters, and deserialize on the server. maybe that will work.

this what was generated by abp when i did generate proxies:

  filePreview2 = (source: AssessmentPreviewFixedFileDto, config?: Partial<Rest.Config>) =>
    this.restService.request<any, AssessmentFilePreviewDto>({
      method: 'GET',
      url: '/api/app/assessment-parents/preview-2',
      params: { columns: source.columns },
      body: source.content,
    },
    { apiName: this.apiName,...config });

this is: AssessmentPreviewFixedFileDto

export interface AssessmentPreviewFixedFileDto { content: IRemoteStreamContent; columns: AssessmentFileColumnDto[];}
public class AssessmentFileColumnDto
{
    public string ColumnName { get; set; }
    public int From { get; set; }
    public int To { get; set; }
}

also if it helps, the example i sent above is sending of the file stream and extra data as 2 different properties to the endpoint.

This code base is using sends only one property containing the stream and the extra data i get a similar error

this the Service method

    public async Task<AssessmentFilePreviewDto> FilePreview2Async(AssessmentPreviewFixedFileDto source)
    {
        using var reader = new StreamReader(source.Content.GetStream());
        var text = await reader.ReadToEndAsync();

        // Get columns
        var columns = source.Columns;

        var filePreview = new AssessmentFilePreviewDto
        {
            Content = text.Trim('\0')
        };

        return filePreview;
    }
public class AssessmentPreviewFixedFileDto
{
    public IRemoteStreamContent Content { get; set; }
    public List<AssessmentFileColumnDto> Columns { get; set; }
}

here's the special form binding

Configure<AbpAspNetCoreMvcOptions>(options =>
{              options.ConventionalControllers.FormBodyBindingIgnoredTypes.Add(typeof(AssessmentPreviewFixedFileDto));
});
  previewFile(fileDto: AssessmentFileDto): void {
    this.parentService
      .filePreview2({
        content: fileDto as any,
        columns: [{ columnName: 'Col', from: 1, to: 3 }],
      })
      .subscribe(res => {
        const file = res.content;

        const csv = this.fileHelperService.parseCsv(
          file,
          this.parentHelperService.getDelimiter(fileDto['delimiter']),
        );

        this.csvFile = {
          headers: csv.meta.fields,
          rows: csv.data,
          errors: csv.errors,
        };

        this.isPreviewing = true;
      });
  }

proxy

  filePreview2 = (source: AssessmentPreviewFixedFileDto, config?: Partial<Rest.Config>) =>
    this.restService.request<any, AssessmentFilePreviewDto>({
      method: 'GET',
      url: '/api/app/assessment-parents/preview-2',
      params: { columns: source.columns },
      body: source.content,
    },
    { apiName: this.apiName,...config });

browser request

if u want i can share all the code, i still have ur email. or i can do something online w/ u. or if u have something u want me to try, i am willing to try out

Since i already have a work around, i had to put back some of the code, but in the application, i get the source, no columns

I would like to know the answer on this question. But in truth I am using a work-around, So whenever I can get an answer will be good. We do have another ticket that is more pressing, and any attention that can be given to it, even though my ticket might take longer to resolve would be good: https://abp.io/support/questions/9225/401-on-ABP-API-Using-External-OpenID-Access-Token-Works-from-Browser-and-Swagger

Trying to upload a file with some other input data. I can send just the file up as a single input using this as an input: IRemoteStreamContent Content. but i need to send some other parameters.

I got an error that it could not deserialize my input dto so i added this to my module. This gets me by the Deserialization error, but my input has no data

        Configure<AbpAspNetCoreMvcOptions>(options =>
        {
            options.ConventionalControllers.FormBodyBindingIgnoredTypes.Add(typeof(PreviewFixedFileDto));
        });

interface for data i want to send to the end point

    public class PreviewFixedFileDto
    {
        public IRemoteStreamContent Content { get; set; }
        public List<AssessmentFileColumnDto> Columns { get; set; }
    }
public class FileColumnDto
{
    public string ColumnName { get; set; }
    public int From { get; set; }
    public int To { get; set; }
}

Angular Code

  previewFile(): void {
    const formData = new FormData();
    formData.append('source', this.file());

    this.parentService
      .fixedFilePreview({
        content: formData as any,
        columns: this.rows,
      })
      .subscribe(res => {
        console.log(res);
      });
  }

Also tried this:

  previewFile(): void {
    const formData = new FormData();
    formData.append('source', this.file());

    this.service
      .fixedFilePreview({
        content: {
          fileName: this.file().name,
          contentType: this.file().type,
          contentLength: this.file().size,
        },
        columns: this.rows,
      })
      .subscribe(res => {
        console.log(res);
      });
  }

I might have found something that works

I changed the Entity to inherit from Entity<long>

added

        [NotMapped]
        public override long Id
        {
            get { return 0; }
            protected set { }
        }

change the repo to public class EfCoreEdRepository : EfCoreRepository<DataDbContext, Ed>

Question

I need to access 3 entities that do not have a primary key. the access needed is read only. It looks like I can do it from reading the documentation, but I am having difficulties.

  • I started out with Suite creating an entity with a key.
  • Then went to the Domain and Contracts and removed the inheritance to Entity<Guid>/EntityDto<Guid>
  • I changed the inheritance on the interfaces to the repos to: public interface IEdRepository : IRepository
  • I removed all updates/inserts/getAsync(id)
  • I got to the repositories and that's where the trouble started. I need to change the class from public class EfCoreEdRepository : EfCoreRepository<DataDbContext, Ed, Guid>, IEdRepository to something keyless.

For these entities i just need to show them in a grid and do some paging, filtering and advanced finds. So all I need is GetListAsync

Showing 1 to 10 of 113 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.0.0-preview. Updated on July 17, 2025, 06:22