[maliming] said: hi
The DTO classes for requests and responses need to use primitive objects/types; otherwise, you'll have to add a JSON converter for serialization and deserialization.
Can you share the returned JSON? You can call the API in Swagger to see the returned JSON.
Of course. You can also share a minimal project to reproduce the error.
Thanks.
Hi . In the swagger when I test , the response also response with the error 500
can't parse JSON. Raw result:
can't parse JSON. Raw result:
{"data":[{"aggregates":{},"hasSubgroups":false,"member":"TripStatusId","itemCount":8,"subgroups":[],"items":[{"jobOrderId":"3a1b1e4a-e9aa-0a70-a357-690cf92c459d","assignedTo":"3a1ae0ad-9f93-fbb4-6037-7ca3c304c6ac","employmentType":0,"tripStatusId":"0a61a9f2-99e7-43ad-82de-86c01f2c3dd5","serviceType":0,"scheduleDate":"2025-07-16T10:25:50.981104","driverAssignedOn":"2025-07-15T10:27:19.076021","completionDate":null,"tripNumber":"IM-TP25070006-TR001","isProgress":false,"isCustomerBillable":true,"customerChargeAmount":null,"isDriverPayable":true,"driverPaymentAmount":null,"sortOrder":1,"releasedBy":null,"releaseOn":null,"tripGroupId":"b85521aa-3f38-4dc0-a375-a7ddba6277fc","remarks":null,"assignedToNavigation":{"identityUserId":"3a1ae0ad-9dfb-40d9-0255-ee6d0968aabd","lastMileSchemeId":null,"serviceProviderId":null,"bankId":"3a1ae0ad-9f97-10b1-b493-b9d5f5969d01","alias":null,"firstName":"Test","lastName":"Driver","email":"test@gmail.com","countryOfBirth":null,"nationality":"Vietnam","birthDate":"2001-10-10T00:00:00","startDate":"2025-07-10T00:00:00","endDate":"2040-01-05T00:00:00","licenseNumber":"212312312","licenseExpiryDate":"2025-07-18T00:00:00","driverType":"3a18e44e-ba9b-d186-5f06-e9b97c8d8598","fixedSalary":null,"phoneNumber":"22222222222","identityNumber":"oLQf/Dc4pv0gnuGqGlaoNw==","uniformType":null,"uniformSize":null,"coverallSize":null,"levy":null,"cpf":null,"cpfer":null,"cpfee":null,"baseSalary":null,"employmentType":2,"gender":0,"licenseClass":0,"driverPlatform":1,"status":0,"deletedBy":null,"isAvailable":true,"bank":null,"driverTypeNavigation":null,"lastMileScheme":null,"damageRepairs":[],"driverTokenPins":[],"fuelingRecords":[],"incidentDrivers":[],"lastmileSchemeDrivers":[],"payslips":[],"postalCodeSettingDetails":[],"summonFines":[],"vehicleDriverAssigns":[],"tripDriverHistories":[],"tripVas":[],"trips":[{"jobOrderId":"3a1b1e4a-e9aa-0a70-a357-690cf92c459d","assignedTo":"3a1ae0ad-9f93-fbb4-6037-7ca3c304c6ac","employmentType":0,"tripStatusId":"0a61a9f2-99e7-43ad-82de-86c01f2c3dd5","serviceType":0,"scheduleDate":"2025-07-16T10:25:50.981104","driverAssignedOn":"2025-07-15T10:27:19.076021","completionDate":null,"tripNumber":"IM-TP25070006-TR001","isProgress":false,"isCustomerBillable":true,"customerChargeAmount":null,"isDriverPayable":true,"driverPaymentAmount":null,"sortOrder":1,"releasedBy":null,"releaseOn":null,"tripGroupId":"b85521aa-3f38-4dc0-a375-a7ddba6277fc","remarks":null,"assignedToNavigation":{"identityUserId":"3a1ae0ad-9dfb-40d9-0255-ee6d0968aabd","lastMileSchemeId":null,"serviceProviderId":null,"bankId":"3a1ae0ad-9f97-10b1-b493-b9d5f5969d01","alias":null,"firstName":"Test","lastName":"Driver","email":"test@gmail.com","countryOfBirth":null,"nationality":"Vietnam","birthDate":"2001-10-10T00:00:00","startDate":"2025-07-10T00:00:00","endDate":"2040-01-05T00:00:00","licenseNumber":"212312312","licenseExpiryDate":"2025-07-18T00:00:00","driverType":"3a18e44e-ba9b-d186-5f06-e9b97c8d8598","fixedSalary":null,"phoneNumber":"22222222222","identityNumber":"oLQf/Dc4pv0gnuGqGlaoNw==","uniformType":null,"uniformSize":null,"coverallSize":null,"levy":null,"cpf":null,"cpfer":null,"cpfee":null,"baseSalary":null,"employmentType":2,"gender":0,"licenseClass":0,"driverPlatform":1,"status":0,"deletedBy":null,"isAvailable":true,"bank":null,"driverTypeNavigation":null,"lastMileScheme":null,"damageRepairs":[],"driverTokenPins":[],"fuelingRecords":[],"incidentDrivers":[],"lastmileSchemeDrivers":[],"payslips":[],"postalCodeSettingDetails":[],"summonFines":[],"vehicleDriverAssigns":[],"tripDriverHistories":[],"tripVas":[],"trips":[{"jobOrderId":"3a1b1e4a-e9aa-0a70-a357-690cf92c459d","assignedTo":"3a1ae0ad-9f93-fbb4-6037-7ca3c304c6ac","employmentType":0,"tripStatusId":"0a61a9f2-99e7-43ad-82de-86c01f2c3dd5","serviceType":0,"scheduleDate":"2025-07-16T10:25:50.981104","driverAssignedOn":"2025-07-15T10:27:19.076021","completionDate":null,"tripNumber":"IM-TP25070006-TR001","isProgress":false,"isCustomerBillable":true,"customerChargeAmount":null,"isDriverPayable":true,"driverPaymentAmount":null,"sortOrder":1,"releasedBy":null,"releaseOn":null,"tripGroupId":"b85521aa-3f38-4dc0-a375-a7ddba6277fc","remarks":null,"assignedToNavigation":{"identityUserId":"3a1ae0ad-9dfb-40d9-0255-ee6d0968aabd","lastMileSchemeId":null,"serviceProviderId":null,"bankId":"3a1ae0ad-9f97-10b1-b493-b9d5f5969d01","alias":null,"firstName":"Test","lastName":"Driver","email":"test@gmail.com","countryOfBirth":null,"nationality":"Vietnam","birthDate":"2001-10-10T00:00:00","startDate":"2025-07-10T00:00:00","endDate":"2040-01-05T00:00:00","licenseNumber":"212312312","licenseExpiryDate":"2025-07-18T00:00:00","driverType":"3a18e44e-ba9b-d186-5f06-e9b97c8d8598","fixedSalary":null,"phoneNumber":"22222222222","identityNumber":"oLQf/Dc4pv0gnuGqGlaoNw==","uniformType":null,"uniformSize":null,"coverallSize":null,"levy":null,"cpf":null,"cpfer":null,"cpfee":null,"baseSalary":null,"employmentType":2,"gender":0,"licenseClass":0,"driverPlatform":1,"status":0,"deletedBy":null,"isAvailable":true,"bank":null,"driverTypeNavigation":null,"lastMileScheme":null,"damageRepairs":[],"driverTokenPins":[],"fuelingRecords":[],"incidentDrivers":[],"lastmileSchemeDrivers":[],"payslips":[],"postalCodeSettingDetails":[],"summonFines":[],"vehicleDriverAssigns":[],"tripDriverHistories":[],"tripVas":[],"trips":[{"jobOrderId":"3a1b1e4a-e9aa-0a70-a357-690cf92c459d","assignedTo":"3a1ae0ad-9f93-fbb4-6037-7ca3c304c6ac","employmentType":0,"tripStatusId":"0a61a9f2-99e7-43ad-82de-86c01f2c3dd5","serviceType":0,"scheduleDate":"2025-07-16T10:25:50.981104","driverAssignedOn":"2025-07-15T10:27:19.076021","completionDate":null,"tripNumber":"IM-TP25070006-TR001","isProgress":false,"isCustomerBillable":true,"customerChargeAmount":null,"isDriverPayable":true,"driverPaymentAmount":null,"sortOrder":1,"releasedBy":null,"releaseOn":null,"tripGroupId":"b85521aa-3f38-4dc0-a375-a7ddba6277fc","remarks":null,"assignedToNavigation":{"identityUserId":"3a1ae0ad-9dfb-40d9-0255-ee6d0968aabd","lastMileSchemeId":null,"serviceProviderId":null,"bankId":"3a1ae0ad-9f97-10b1-b493-b9d5f5969d01","alias":null,"firstName":"Test","lastName":"Driver","email":"test@gmail.com","countryOfBirth":null,"nationality":"Vietnam","birthDate":"2001-10-10T00:00:00","startDate":"2025-07-10T00:00:00","endDate":"2040-01-05T00:00:00","licenseNumber":"212312312","licenseExpiryDate":"2025-07-18T00:00:00","driverType":"3a18e44e-ba9b-d186-5f06-e9b97c8d8598","fixedSalary":null,"phoneNumber":"22222222222","identityNumber":"oLQf/Dc4pv0gnuGqGlaoNw==","uniformType":null,"uniformSize":null,"coverallSize":null,"levy":null,"cpf":null,"cpfer":null,"cpfee":null,"baseSalary":null,"employmentType":2,"gender":0,"licenseClass":0,"driverPlatform":1,"status":0,"deletedBy":null,"isAvailable":true,"bank":null,"driverTypeNavigation":null,"lastMileScheme":null,"damageRepairs":[],"driverTokenPins":[],"fuelingRecords":[],"incidentDrivers":[],"lastmileSchemeDrivers":[],"payslips":[],"postalCodeSettingDetails":[],"summonFines":[],"vehicleDriverAssigns":[],"tripDriverHistories":[],"tripVas":[],"trips":[{"jobOrderId":"3a1b1e4a-e9aa-0a70-a357-690cf92c459d","assignedTo":"3a1ae0ad-9f93-fbb4-6037-7ca3c304c6ac","employmentType":0,"tripStatusId":"0a61a9f2-99e7-43ad-82de-86c01f2c3dd5","serviceType":0,"scheduleDate":"2025-07-16T10:25:50.981104","driverAssignedOn":"2025-07-15T10:27:19.076021","completionDate":null,"tripNumber":"IM-TP25070006-TR001","isProgress":false,"isCustomerBillable":true,"customerChargeAmount":null,"isDriverPayable":true,"driverPaymentAmount":null,"sortOrder":1,"releasedBy":null,"releaseOn":null,"tripGroupId":"b85521aa-3f38-4dc0-a375-a7ddba6277fc","remarks":null,"assignedToNavigation":{"identityUserId":"3a1ae0ad-9dfb-40d9-0255-ee6d0968aabd","lastMileSchemeId":null,"serviceProviderId":null,"bankId":"3a1ae0ad-9f97-10b1-b493-b9d5f5969d01","alias":null,"firstName":"Test","lastName":"Driver","email":"test@gmail.com","countryOfBirth":null,"nationality":"Vietnam","birthDate":"2001-10-10T00:00:00","startDate":"2025-07-10T00:00:00","endDate":"2040-01-05T00:00:00","licenseNumber":"212312312","licenseExpiryDate":"2025-07-18T00:00:00","driverType":"3a18e44e-ba9b-d186-5f06-e9b97c8d8598","fixedSalary":null,"phoneNumber":"22222222222","identityNumber":"oLQf/Dc4pv0gnuGqGlaoNw==","uniformType":null,"uniformSize":null,"coverallSize":null,"levy":null,"cpf":null,"cpfer":null,"cpfee":null,"baseSalary":null,"employmentType":2,"gender":0,"licenseClass":0,"driverPlatform":1,"status":0,"deletedBy":null,"isAvailable":true,"bank":null,"driverTypeNavigation":null,"lastMileScheme":null,"damageRepairs":[],"driverTokenPins":[],"fuelingRecords":[],"incidentDrivers":[],"lastmileSchemeDrivers":[],"payslips":[],"postalCodeSettingDetails":[],"summonFines":[],"vehicleDriverAssigns":[],"tripDriverHistories":[],"tripVas":[],"trips":[{"jobOrderId":"3a1b1e4a-e9aa-0a70-a357-690cf92c459d","assignedTo":"3a1ae0ad-9f93-fbb4-6037-7ca3c304c6ac","employmentType":0,"tripStatusId":"0a61a9f2-99e7-43ad-82de-86c01f2c3dd5","serviceType":0,"scheduleDate":"2025-07-16T10:25:50.981104","driverAssignedOn":"2025-07-15T10:27:19.076021","completionDate":null,"tripNumber":"IM-TP25070006-TR001","isProgress":false,"isCustomerBillable":true,"customerChargeAmount":null,"isDriverPayable":true,"driverPaymentAmount":null,"sortOrder":1,"releasedBy":null,"releaseOn":null,"tripGroupId":"b85521aa-3f38-4dc0-a375-a7ddba6277fc","remarks":null,"assignedToNavigation":{"identityUserId":"3a1ae0ad-9dfb-40d9-0255-ee6d0968aabd","lastMileSchemeId":null,"serviceProviderId":null,"bankId":"3a1ae0ad-9f97-10b1-b493-b9d5f5969d01","alias":null,"firstName":"Test","lastName":"Driver","email":"test@gmail.com","countryOfBirth":null,"nationality":"Vietnam","birthDate":"2001-10-10T00:00:00","startDate":"2025-07-10T00:00:00","endDate":"2040-01-05T00:00:00","licenseNumber":"212312312","licenseExpiryDate":"2025-07-18T00:00:00","driverType":"3a18e44e-ba9b-d186-5f06-e9b97c8d8598","fixedSalary":null,"phoneNumber":"22222222222","identityNumber":"oLQf/Dc4pv0gnuGqGlaoNw==","uniformType":null,"uniformSize":null,"coverallSize":null,"levy":null,"cpf":null,"cpfer":null,"cpfee":null,"baseSalary":null,"employmentType":2,"gender":0,"licenseClass":0,"driverPlatform":1,"status":0,"deletedBy":null,"isAvailable":true,"bank":null,"driverTypeNavigation":null,"lastMileScheme":null,"damageRepairs":[],"driverTokenPins":[],"fuelingRecords":[],"incidentDrivers":[],"lastmileSchemeDrivers":[],"payslips":[],"postalCodeSettingDetails":[],"summonFines":[],"vehicleDriverAssigns":[],"tripDriverHistories":[],"tripVas":[],"trips":[{"jobOrderId":"3a1b1e4a-e9aa-0a70-a357-690cf92c459d","assignedTo":"3a1ae0ad-9f93-fbb4-6037-7ca3c304c6ac","employmentType":0,"tripStatusId":"0a61a9f2-99e7-43ad-82de-86c01f2c3dd5","serviceType":0,"scheduleDate":"2025-07-16T10:25:50.981104","driverAssignedOn":"2025-07-15T10:27:19.076021","completionDate":null,"tripNumber":"IM-TP25070006-TR001","isProgress":false,"isCustomerBillable":true,"customerChargeAmount":null,"isDriverPayable":true,"driverPaymentAmount":null,"sortOrder":1,"releasedBy":null,"releaseOn":null,"tripGroupId":"b85521aa-3f38-4dc0-a375-a7ddba6277fc","remarks":null,"assignedToNavigation":{"identityUserId":"3a1ae0ad-9dfb-40d9-0255-ee6d0968aabd","lastMileSchemeId":null,"serviceProviderId":null,"bankId":"3a1ae0ad-9f97-10b1-b493-b9d5f5969d01","alias":null,"firstName":"Test","lastName":"Driver","email":"test@gmail.com","countryOfBirth":null,"nationality":"Vietnam","birthDate":"2001-10-10T00:00:00","startDate":"2025-07-10T00:00:00","endDate":"2040-01-05T00:00:00","licenseNumber":"212312312","licenseExpiryDate":"2025-07-18T00:00:00","driverType":"3a18e44e-ba9b-d186-5f06-e9b97c8d8598","fixedSalary":null,"phoneNumber":"22222222222","identityNumber":"oLQf/Dc4pv0gnuGqGlaoNw==","uniformType":null,"uniformSize":null,"coverallSize":null,"levy":null,"cpf":null,"cpfer":null,"cpfee":null,"baseSalary":null,"employmentType":2,"gender":0,"licenseClass":0,"driverPlatform":1,"status":0,"deletedBy":null,"isAvailable":true,"bank":null,"driverTypeNavigation":null,"lastMileScheme":null,"damageRepairs":[],"driverTokenPins":[],"fuelingRecords":[],"incidentDrivers":[],"lastmileSchemeDrivers":[],"payslips":[],"postalCodeSettingDetails":[],"summonFines":[],"vehicleDriverAssigns":[],"tripDriverHistories":[],"tripVas":[],"trips":[{"jobOrderId":"3a1b1e4a-e9aa-0a70-a357-690cf92c459d","assignedTo":"3a1ae0ad-9f93-fbb4-6037-7ca3c304c6ac","employmentType":0,"tripStatusId":"0a61a9f2-99e7-43ad-82de-86c01f2c3dd5","serviceType":0,"scheduleDate":"2025-07-16T10:25:50.981104","driverAssignedOn":"2025-07-15T10:27:19.076021","completionDate":null,"tripNumber":"IM-TP25070006-TR001","isProgress":false,"isCustomerBillable":true,"customerChargeAmount":null,"isDriverPayable":true,"driverPaymentAmount":null,"sortOrder":1,"releasedBy":null,"releaseOn":null,"tripGroupId":"b85521aa-3f38-4dc0-a375-a7ddba6277fc","remarks":null,"assignedToNavigation":{"identityUserId":"3a1ae0ad-9dfb-40d9-0255-ee6d0968aabd","lastMileSchemeId":null,"serviceProviderId":null,"bankId":"3a1ae0ad-9f97-10b1-b493-b9d5f5969d01","alias":null,"firstName":"Test","lastName":"Driver","email":"test@gmail.com","countryOfBirth":null,"nationality":"Vietnam","birthDate":"2001-10-10T00:00:00","startDate":"2025-07-10T00:00:00","endDate":"2040-01-05T00:00:00","licenseNumber":"212312312","licenseExpiryDate":"2025-07-18T00:00:00","driverType":"3a18e44e-ba9b-d186-5f06-e9b97c8d8598","fixedSalary":null,"phoneNumber":"22222222222","identityNumber":"oLQf/Dc4pv0gnuGqGlaoNw==","uniformType":null,"uniformSize":null,"coverallSize":null,"levy":null,"cpf":null,"cpfer":null,"cpfee":null,"baseSalary":null,"employmentType":2,"gender":0,"licenseClass":0,"driverPlatform":1,"status":0,"deletedBy":null,"isAvailable":true,"bank":null,"driverTypeNavigation":null,"lastMileScheme":null,"damageRepairs":[],"driverTokenPins":[],"fuelingRecords":[],"incidentDrivers":[],"lastmileSchemeDrivers":[],"payslips":[],"postalCodeSettingDetails":[],"summonFines":[],"vehicleDriverAssigns":[],"tripDriverHistories":[],"tripVas":[],"trips":[{"jobOrderId":"3a1b1e4a-e9aa-0a70-a357-690cf92c459d","assignedTo":"3a1ae0ad-9f93-fbb4-6037-7ca3c304c6ac","employmentType":0,"tripStatusId":"0a61a9f2-99e7-43ad-82de-86c01f2c3dd5","serviceType":0,"scheduleDate":"2025-07-16T10:25:50.981104","driverAssignedOn":"2025-07-15T10:27:19.076021","completionDate":null,"tripNumber":"IM-TP25070006-TR001","isProgress":false,"isCustomerBillable":true,"customerChargeAmount":null,"isDriverPayable":true,"driverPaymentAmount":null,"sortOrder":1,"releasedBy":null,"releaseOn":null,"tripGroupId":"b85521aa-3f38-4dc0-a375-a7ddba6277fc","remarks":null,"assignedToNavigation":{"identityUserId":"3a1ae0ad-9dfb-40d9-0255-ee6d0968aabd","lastMileSchemeId":null,"serviceProviderId":null,"bankId":"3a1ae0ad-9f97-10b1-b493-b9d5f5969d01","alias":null,"firstName":"Test","lastName":"Driver","email":"test@gmail.com","countryOfBirth":null,"nationality":"Vietnam","birthDate":"2001-10-10T00:00:00","startDate":"2025-07-10T00:00:00","endDate":"2040-01-05T00:00:00","licenseNumber":"212312312","licenseExpiryDate":"2025-07-18T00:00:00","driverType":"3a18e44e-ba9b-d186-5f06-e9b97c8d8598","fixedSalary":null,"phoneNumber":"22222222222","identityNumber":"oLQf/Dc4pv0gnuGqGlaoNw==","uniformType":null,"uniformSize":null,"coverallSize":null,"levy":null,"cpf":null,"cpfer":null,"cpfee":null,"baseSalary":null,"employmentType":2,"gender":0,"licenseClass":0,"driverPlatform":1,"status":0,"deletedBy":null,"isAvailable":true,"bank":null,"driverTypeNavigation":null,"lastMileScheme":null,"damageRepairs":[],"driverTokenPins":[],"fuelingRecords":[],"incidentDrivers":[],"lastmileSchemeDrivers":[],"payslips":[],"postalCodeSettingDetails":[],"summonFines":[],"vehicleDriverAssigns":[],"tripDriverHistories":[],"tripVas":[],"trips":[{"jobOrderId":{
[maliming] said: Hi
Please share your DTO(input/output) class code.
Thank
Hi this is the class of telerik datasourcerequest
public class DataSourceResult
{
/// <summary>
/// The actual data that will be displayed in the control. Often it is only the current page of data.
/// </summary>
public IEnumerable Data { get; set; }
/// <summary>
/// The total number of records in the original data source. Used for calculating a pager, for example.
/// </summary>
public int Total { get; set; }
/// <summary>Information for aggregates.</summary>
public IEnumerable<AggregateResult> AggregateResults { get; set; }
/// <summary>
/// Information for errors that occured during the data source operation.
/// </summary>
public object Errors { get; set; }
}
// Decompiled with JetBrains decompiler
// Type: Telerik.DataSource.AggregateResult
// Assembly: Telerik.DataSource, Version=3.0.3.0, Culture=neutral, PublicKeyToken=20b4b0547069c4f8
// MVID: 56FFCD7A-3247-443F-9129-0844EB752B0C
// Assembly location: /Users/thinhnguyen/.nuget/packages/telerik.datasource/3.0.3/lib/net6.0/Telerik.DataSource.dll
// XML documentation location: /Users/thinhnguyen/.nuget/packages/telerik.datasource/3.0.3/lib/net6.0/Telerik.DataSource.xml
using System;
using System.Globalization;
#nullable disable
namespace Telerik.DataSource;
/// <summary>Information for aggregates on the data.</summary>
public class AggregateResult
{
private object aggregateValue;
private int itemCount;
private readonly AggregateFunction function;
/// <summary>
/// Initializes a new instance of the <see cref="T:Telerik.DataSource.AggregateResult" /> class.
/// </summary>
/// <param name="value">The value of the result.</param>
/// <param name="count">The number of arguments used for the calculation of the result.</param>
/// <param name="function">Function that generated the result.</param>
/// <exception cref="T:System.ArgumentNullException"><c>function</c> is null.</exception>
public AggregateResult(object value, int count, AggregateFunction function)
{
if (function == null)
throw new ArgumentNullException(nameof (function));
this.aggregateValue = value;
this.itemCount = count;
this.function = function;
}
/// <summary>
/// Initializes a new instance of the <see cref="T:Telerik.DataSource.AggregateResult" /> class.
/// </summary>
/// <param name="function"><see cref="T:Telerik.DataSource.AggregateFunction" /> that generated the result.</param>
/// <exception cref="T:System.ArgumentNullException"><c>function</c> is null.</exception>
public AggregateResult(AggregateFunction function)
: this((object) null, function)
{
}
/// <summary>
/// Initializes a new instance of the <see cref="T:Telerik.DataSource.AggregateResult" /> class.
/// </summary>
/// <param name="value">The value of the result.</param>
/// <param name="function"><see cref="T:Telerik.DataSource.AggregateFunction" /> that generated the result.</param>
public AggregateResult(object value, AggregateFunction function)
: this(value, 0, function)
{
}
/// <summary>Gets or sets the value of the result.</summary>
/// <value>The value of the result.</value>
public object Value
{
get => this.aggregateValue;
internal set => this.aggregateValue = value;
}
/// <summary>
/// The name of the field over which aggregation is performed.
/// </summary>
public string Member => this.function.SourceField;
/// <summary>Gets the formatted value of the result.</summary>
/// <value>The formatted value of the result.</value>
public object FormattedValue
{
get
{
return string.IsNullOrEmpty(this.function.ResultFormatString) ? this.aggregateValue : (object) string.Format((IFormatProvider) CultureInfo.CurrentCulture, this.function.ResultFormatString, this.aggregateValue);
}
}
/// <summary>
/// Gets or sets the number of arguments used for the calulation of the result.
/// </summary>
/// <value>The number of arguments used for the calulation of the result.</value>
public int ItemCount
{
get => this.itemCount;
set => this.itemCount = value;
}
/// <summary>
/// Gets or sets the text which serves as a caption for the result in a user interface.
/// </summary>
/// <value>The text which serves as a caption for the result in a user interface.</value>
public string Caption => this.function.Caption;
/// <summary>Gets the name of the function.</summary>
/// <value>The name of the function.</value>
public string FunctionName => this.function.FunctionName;
/// <summary>The name of the aggregation method that is used.</summary>
public string AggregateMethodName => this.function.AggregateMethodName;
/// <summary>
/// Returns a <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.
/// </summary>
/// <returns>
/// A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.
/// </returns>
public override string ToString() => this.Value != null ? this.Value.ToString() : base.ToString();
/// <summary>
/// Returns a formatted string based on the passed format and the current result value.
/// </summary>
/// <param name="format"></param>
/// <returns></returns>
public string Format(string format)
{
return this.Value != null ? string.Format(format, this.Value) : this.ToString();
}
}
I think the problem is from the nested depth or can't serilize the result .
Hi, thank you for your support!
The issue has been resolved successfully.
Hi . The error dialog still showing after editing code like you suggested.

<TelerikSwitch Value="@item.IsActive"
OnLabel=" "
OffLabel=" "
Size="@ThemeConstants.Switch.Size.Small"
OnChange="@(async () => await ToggleStatus(item))"/>
</span>
private async Task ToggleStatus(ChassisTypeDto item)
{
try
{
throw new UserFriendlyException("Test exception");
}
catch (UserFriendlyException ex)
{
Logger.LogError(ex, "Handled UserFriendlyException");
await Notify.Error(string.IsNullOrEmpty(ex.Message) ? L["Messages:Error"] : ex.Message);
}
catch (Exception e)
{
Logger.LogError(e, "Error change status container type with id id :{SelectedChassisTypeId}",
SelectedChassisTypeId);
await Notify.Error(string.IsNullOrEmpty(e.Message) ? L["Messages:Error"] : e.Message);
}
finally
{
LoaderVisible = false;
}
}
Hi, thanks for the detailed explanation!
I've followed your suggestion and updated the OnChange handler to use an async lambda as shown:
However, I'm still seeing the default error dialog (from ABP) even though the exception is caught and Iām manually showing a toast notification.
And can i ask are there any supported way to disable this dialog globally or override the error handling mechanism or correctly to handle this?
Thanks again for your support!
<TelerikSwitch Value="@item.IsActive"
OnLabel=" "
OffLabel=" "
Size="@ThemeConstants.Switch.Size.Small"
OnChange="@(async () => await ToggleStatus(item))" />
private async Task ToggleStatus(TIem item)
{
try
{
}
catch (Exception e)
{
await Notify.Error(string.IsNullOrEmpty(e.Message) ? L["Messages:Error"] : e.Message);
}
finally
{
LoaderVisible = false;
}
}