Checked by opening a log this program wrote in N1MM 1.0.11031. Three things it rejected: - a log naming a contest with no row in the Contest table throws "No current row" in Contest.FromRow, so the definition row is written whenever a contest is opened; - an empty overlay category is answered with "Invalid Overlay Category:", so an entry with no overlay now says "N/A", and the dialog offers N1MM's list; - the sent exchange omits the report, which is what N1MM's own contest dialog asks for. With those three fixed N1MM opens the log and shows the contacts. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
43 lines
1.2 KiB
C#
43 lines
1.2 KiB
C#
namespace Nonemm.Storage;
|
|
|
|
/// One running of a contest in the log: the entry categories, the sent exchange
|
|
/// and the number every contact in it carries.
|
|
public sealed record ContestInstance
|
|
{
|
|
public required int ContestNumber { get; init; }
|
|
|
|
public required string ContestName { get; init; }
|
|
|
|
public DateTime StartDate { get; init; }
|
|
|
|
public string SentExchange { get; init; } = "";
|
|
|
|
public string SubType { get; init; } = "";
|
|
|
|
public string OperatorCategory { get; init; } = "SINGLE-OP";
|
|
|
|
public string BandCategory { get; init; } = "ALL";
|
|
|
|
public string PowerCategory { get; init; } = "HIGH";
|
|
|
|
public string ModeCategory { get; init; } = "";
|
|
|
|
/// N1MM rejects a contest whose overlay is empty, so an entry with no
|
|
/// overlay says so with "N/A".
|
|
public string OverlayCategory { get; init; } = "N/A";
|
|
|
|
public string StationCategory { get; init; } = "";
|
|
|
|
public string AssistedCategory { get; init; } = "NON-ASSISTED";
|
|
|
|
public string TransmitterCategory { get; init; } = "ONE";
|
|
|
|
public string TimeCategory { get; init; } = "";
|
|
|
|
public string Operators { get; init; } = "";
|
|
|
|
public string Soapbox { get; init; } = "";
|
|
|
|
public long ClaimedScore { get; init; }
|
|
}
|