Activities of "kfrancis@clinicalsupportsystems.com"

Perfect, that seems to have done the trick and also (bonus) not required me to split interfaces! Thanks!

So, first - we're using the concept of strongly typed id's from here:

So a simple class of ours might look like:

public class GeneratedReport : GeneratedReportBase<GeneratedReportStatus, GeneratedReportFileType>, IEntity<GeneratedReport_Id>
{
    public GeneratedReport_Id Id { get; set; }
    public int SortOrder { get; set; }
    public object[] GetKeys()
    {
        return new object[] { Id };
    }
}

where GeneratedReport_Id is:

/// <summary>
/// https://andrewlock.net/strongly-typed-id-updates/
/// </summary>
[StronglyTypedId(jsonConverter: StronglyTypedIdJsonConverter.SystemTextJson | StronglyTypedIdJsonConverter.NewtonsoftJson, backingType: StronglyTypedIdBackingType.Guid)]
public partial struct GeneratedReport_Id { }

And that works great. We use tons of guids and in migrating our solution (mix of .net48 with WebForm/Mvc) and we really wanted to enable ourselves to catch errors where Guids were being used incorrectly. To this we had to write a data layer that interacted with the db which was relatively easy to do with the extensibility of abp. The data engineer had everything but the site working (started on abp free, moved to commercial) and now we're at the point that I've created the commercial solution and we're trying to start working on the UI which is primarily Kendo UI based (instead of Datatables). I have a blog post coming about that for the community.

So, on to the method in question. Obviously our app services have interfaces and those interfaces can contain these strongly typed ids:

[HttpPost]
[Route("{id}")]
public Task SaveReportContentAsync(GeneratedReport_Id Id, byte[] ReportContent, CancellationToken cancellationToken = default)
{
    // TODO: Copy implementation
    throw new NotImplementedException();
}

I see that the api-generation code is looking at GeneratedReport_Id and noticing it's not a primitive type so it breaks the inherent rule but ..

Since SaveReportContentAsync is detailed in the IGeneratedReportAppService interface, it's required when creating the GeneratedReportsController in the HttpApi project. Since I only expect the API methods to be able to get lists of reports and not make them (report content is only created by a background job that uses Telerik Reporting), I don't really want that to be part of the API but I don't see any documentation letting me attribute certain methods to ignore them.

@alper Thank you, we appreciate that change. We very much understand in general the reason behind that initial decision, but much of this is what people need to do to properly implement abp/abp-commericial in their product. Between that and more theme documents, we love what you're doing.

This is a bit crazy. So, we buy Team license and we can't change from the fontawesome free icons to the pro? What? I just want to make some adjustments here ..

Showing 31 to 34 of 34 entries
Made with ❤️ on ABP v8.2.0-preview Updated on March 25, 2024, 15:11