Skip to content

Range<DateTime> System.InvalidOperationException #59

@gpproton

Description

@gpproton

I have a sample Filter below which i'm trying to use a date range filter with in asp.net core 7, i'm not that this might be limitation of asp.net minimal API, if there's a solution any suggestion will be appreciated.

Filter sample

public class ClaimFilter : GenericFilter {
    [CompareTo("Description", "Notes", CombineWith = CombineType.And)]
    [StringFilterOptions(StringFilterOption.Contains)]
    public string? Search { get; set; }

    public ClaimStatus[]? Status { get; set; }

    public Range<DateTime> CreatedAt { get; set; }

    // Current work around
    // [CompareTo("CreatedAt")]
    // [OperatorComparison(OperatorType.GreaterThanOrEqual)]
    // public DateTime? StartDate { get; set; }
    //
    // [CompareTo("CreatedAt")]
    // [OperatorComparison(OperatorType.LessThanOrEqual)]
    // public DateTime? EndDate { get; set; }
}

Minimal API sample

group.MapGet("/", async (ClaimService sv, [AsParameters] ClaimFilter filter) =>
                await sv.GetAllAsync(filter))
            .WithName($"GetAll{name}")
            .WithOpenApi();

Error message

An unhandled exception has occurred while executing the request.
      System.InvalidOperationException: Body was inferred but the method does not allow inferred body parameters.
      Below is the list of parameters that we found:

      Parameter           | Source
      ---------------------------------------------------------------------------------
      sv                  | Services (Inferred)
      Search              | Query String (Inferred)
      Status              | Query String (Inferred)
      StartDate           | Query String (Inferred)
      EndDate             | Query String (Inferred)
      CreatedAt           | Body (Inferred)
      Page                | Query String (Inferred)
      Sort                | Query String (Inferred)
      PerPage             | Query String (Inferred)
      SortBy              | Query String (Inferred)
      CombineWith         | Query String (Inferred)
      filter              | As Parameter (Attribute)

      Did you mean to register the "Body (Inferred)" parameter(s) as a Service or apply the [FromServices] or [FromBody] attribute?

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions