1using System.Globalization;
76 if (
string.IsNullOrWhiteSpace(name))
83 StringComparer.OrdinalIgnoreCase);
90 ArgumentNullException.ThrowIfNull(metadata);
91 ArgumentNullException.ThrowIfNull(provenance);
95 throw new ArgumentException(
96 "Scientific provenance is structurally incomplete.",
103 StringComparison.Ordinal) &&
106 StringComparison.Ordinal))
108 throw new NotSupportedException(
109 $
"Scientific provenance schema " +
110 $
"'{provenance.SchemaVersion}' is not supported for writing.");
141 StringComparison.Ordinal))
172 CultureInfo.InvariantCulture));
178 ArgumentNullException.ThrowIfNull(metadata);
183 parameter.Name.StartsWith(
185 StringComparison.OrdinalIgnoreCase));
193 "No LotSizingDataModel scientific provenance is recorded.");
199 if (
string.IsNullOrWhiteSpace(schema))
202 "Scientific provenance is missing schemaVersion.");
208 StringComparison.Ordinal) &&
211 StringComparison.Ordinal))
214 $
"Unsupported scientific provenance schema '{schema}'.");
217 string? capturedText =
221 string.IsNullOrWhiteSpace(capturedText) ||
224 CultureInfo.InvariantCulture,
225 DateTimeStyles.RoundtripKind,
226 out DateTime capturedAtUtc))
229 "Scientific provenance contains an invalid capturedAtUtc.");
235 SchemaVersion = schema,
239 NotationSchemeVersion =
245 CanonicalProblemClassCode =
248 ProblemClassMatchKind =
257 FormulationScientificCompatibility =
263 SolutionMethodCategory =
270 capturedAtUtc.ToUniversalTime()
273 if (!provenance.IsStructurallyComplete)
276 "Scientific provenance is structurally incomplete.");
282 diagnostic:
string.Empty);
288 ArgumentNullException.ThrowIfNull(metadata);
290 bool removedAny =
false;
297 metadata.RemoveParameter(parameterName) ||
304 private static void Set(
312 value ??
string.Empty,
313 "LotSizingDataModel scientific solution provenance."));
316 private static string? Get(
321 private static SolutionScientificProvenanceReadResult Invalid(
322 string diagnostic) =>
Represents one named parameter used by a solution-generation method.
string Value
Gets or sets the serialized parameter value.
static AlgorithmParameter FromString(string name, string value, string description="")
Creates a string algorithm parameter.