Skip to content
Tracon

PricingDiagnostic

Namespace Tracon · Assembly Tracon.Abstractions.dll

Whether the catalog can actually put a price on a run.

public sealed record PricingDiagnostic : IEquatable<PricingDiagnostic>
Inheritance
object ← PricingDiagnostic
Implements
IEquatable<PricingDiagnostic>
Inherited Members
object.GetType(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

A model with no price is not an error and it is not billed as zero: the run is recorded with PricingSource.Unknown and empty cost columns, because zero would claim the model is free. The mechanism is honest, but it is also silent, and an installation could record thousands of costless runs before anyone read the pricing_source value on a row to find out why.

Carries no secret: a model name and a count.

public PricingDiagnostic()

Gets the currency every computed cost is expressed in.

public required string? Currency { get; init; }

string?

Gets the number of catalog models that resolve to a price.

public required int PricedModels { get; init; }

int

Gets the provider/model pairs no price source covers, in catalog order. Empty when every model is priced.

public required IReadOnlyList<string> UnpricedModels { get; init; }

IReadOnlyList<string>

The same list the startup warning names. A run answered by one of these carries no cost that a report can use; set the rate on the catalog entry or under Tracon:Pricing:Providers, then recalculate past runs.

public override bool Equals(object? obj)

obj object?

bool

public bool Equals(PricingDiagnostic? other)

other PricingDiagnostic?

bool

public override int GetHashCode()

int

public override string ToString()

string

operator ==(PricingDiagnostic?, PricingDiagnostic?)

Section titled “ operator ==(PricingDiagnostic?, PricingDiagnostic?)”
public static bool operator ==(PricingDiagnostic? left, PricingDiagnostic? right)

left PricingDiagnostic?

right PricingDiagnostic?

bool

operator !=(PricingDiagnostic?, PricingDiagnostic?)

Section titled “ operator !=(PricingDiagnostic?, PricingDiagnostic?)”
public static bool operator !=(PricingDiagnostic? left, PricingDiagnostic? right)

left PricingDiagnostic?

right PricingDiagnostic?

bool