ExamTools 0.0.2
See the version list below for details.
dotnet add package ExamTools --version 0.0.2
NuGet\Install-Package ExamTools -Version 0.0.2
<PackageReference Include="ExamTools" Version="0.0.2" />
<PackageVersion Include="ExamTools" Version="0.0.2" />
<PackageReference Include="ExamTools" />
paket add ExamTools --version 0.0.2
#r "nuget: ExamTools, 0.0.2"
#:package ExamTools@0.0.2
#addin nuget:?package=ExamTools&version=0.0.2
#tool nuget:?package=ExamTools&version=0.0.2
ExamTools API Helper
Note - the ExamTools internal API is undocumented and unsupported. It is not intended for external uses. Use this helper class at your own risk.
Getting Started
This helper class consists of 3 action groups
- Sessions: For taking actions on session objects
 - Users: For taking user-related actions (such as logging into ExamTools)
 - VEs: For taking VE-related actions
 
Each helper group also contains the base object and static API class for each type.
Setup
Requires a handful of environment variables. If set correctly, all login and session tracking should happen automatically.
- EXAMTOOLS_ENVIRONMENT - If set to "Production", it will use https://alpha.exam.tools/ as the base URL for ExamTools. Any other value (including null/empty) will use http://examtools.dev as the base ExamTools URL.
 - EXAMTOOLS_USERNAME - your ExamTools user name
 - EXAMTOOLS_PASSWORD - your ExamTools password
 
Rough usage
Session Class
The Session class is a C# class that implements the IAsyncDisposable interface. It represents a session and contains various properties related to the session.
Properties
Id: (string, nullable) Represents the session ID.SessionDef: (string) Represents the session definition.SequenceNumber: (int) Represents the sequence number of the session.Owner: (string) Represents the owner of the session.SessionCallsign: (string) Represents the callsign associated with the session.SessionSummary: (string) Represents the summary of the session.Date: (DateTime) Represents the date of the session.Vec: (VEC.VECs) Represents the VEC (Volunteer Examiner Coordinator) associated with the session.SessionState: (State) Represents the state of the session.ApplicantCount: (int) Represents the count of applicants for the session.ApplicantLimit: (int) Represents the limit of applicants for the session.TeamHash: (string) Represents the hash associated with the team of the session.TeamLeadCallsign: (string) Represents the callsign of the team lead.TeamId: (string) Represents the ID of the team.SessionIdentifier: (string) Represents the identifier of the session.TeamDescription: (string) Represents the description of the team.SessionVes: (List<Ve>) Represents a list of VEs (Volunteer Examiners) associated with the session.SessionType: (Type) Represents the type of the session.ScheduleOnly: (bool) Indicates if the session is scheduled only.StreetAddress: (string) Represents the street address of the session.City: (string) Represents the city of the session.State: (string) Represents the state of the session.ZipCode: (string) Represents the zip code of the session.CanEdit: (bool) Indicates if the session can be edited.CanVisit: (bool) Indicates if the session can be visited.AmAssigned: (bool) Indicates if the session is assigned.
Constructors
Session(): Default constructor.Session(string sessionId): Constructor with a parameter to set the session ID.Session(SessionRaw sessionRaw): Constructor that initializes the object from aSessionRawobject.
Methods
DisposeAsync(): Implements theDisposeAsyncmethod of theIAsyncDisposableinterface. Returns a completedValueTask.
Note: The class uses enums and other custom types such as VEC.VECs, State, and Type. The constructor also handles the conversion from a SessionRaw object to initialize the Session object.
Api Class Documentation
The Api class provides methods to interact with the ExamTools API for managing exam sessions.
Properties
ExamToolsUrl
- Type: 
string? - Description: The base URL for ExamTools API, determined based on the environment (Production or Development).
 
Fields
Client
- Type: 
RestClient - Description: An instance of the RestClient class configured to communicate with the ExamTools API. It includes a base URL and a CookieContainer obtained from the 
GetLoginCookiemethod. 
Methods
GetSessionList
public static async Task<List<Session>> GetSessionList(VECs vec, DateTime startDate = default(DateTime),
    DateTime endDate = default(DateTime), string teamName = "")
- Description: Retrieves a list of exam sessions based on specified criteria.
 - Parameters:
vec: The VECs enumeration representing the VEC (Volunteer Examiner Coordinator).startDate(optional): The start date for filtering sessions (default isdefault(DateTime)).endDate(optional): The end date for filtering sessions (default isdefault(DateTime)).teamName(optional): The team name for additional filtering (default is an empty string).
 - Returns: A list of 
Sessionobjects. 
GetSessionDetailsFromExamTools
public static async Task<Session> GetSessionDetailsFromExamTools(this string Id)
- Description: Retrieves details of a specific exam session using its identifier.
 - Parameters:
Id: The identifier of the exam session.
 - Returns: A 
Sessionobject representing the details of the specified session. 
Example Usage
// Get a list of sessions
List<Session> sessions = await Api.GetSessionList(VECs.ARRL, new DateTime(2023, 01, 01), new DateTime(2023, 12, 31), "TeamA");
// Get details of a specific session
Session sessionDetails = await "session_id_123".GetSessionDetailsFromExamTools();
Note: Replace VECs.ARRL and "session_id_123" with appropriate values in your application.
| Product | Versions Compatible and additional computed target framework versions. | 
|---|---|
| .NET | net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. | 
- 
                                                    
net7.0
- N1CCK.DateMath (>= 1.0.1)
 - RestSharp.Serializers.NewtonsoftJson (>= 110.2.0)
 
 
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.