.NET Examples
Here are a few examples to help you get started.
Example 1
The first example is a method that authenticates with the MyAdmin API, retrieves a list of device plans, and looks up the details for a specific device.
async Task Example1()
{
MyAdminInvoker api = new MyAdminInvoker("https://myadminapi.geotab.com/v2/MyAdminApi.ashx");
Dictionary<string, object> parameters = new Dictionary<string, object>
{
{"username", "user@geotab.com"},
{"password", "<password>"}
};
ApiUser apiUser = await api.InvokeAsync<ApiUser>("Authenticate", parameters);
Guid apiKey = apiUser.UserId;
Guid sessionId = apiUser.SessionId;
parameters = new Dictionary<string, object>
{
{"apiKey", apiKey},
{"sessionId", sessionId}
};
ApiDevicePlan[] devicePlans = await api.InvokeAsync<ApiDevicePlan[]>("GetDevicePlans", parameters);
Console.WriteLine("Device Plans");
Console.WriteLine("Level\tName");
foreach (ApiDevicePlan devicePlan in devicePlans)
{
Console.WriteLine("{0}\t{1}", devicePlan.Level, devicePlan.Name);
}
Console.Write("\nDevice Information\n");
parameters = new Dictionary<string, object>
{
{"apiKey", apiKey},
{"sessionId", sessionId},
{"serialNo", "G6XXX0XXXD08"}
};
ApiDeviceInstallResult device = await api.InvokeAsync<ApiDeviceInstallResult>("LookupDevice", parameters);
Console.WriteLine("Firmware Version: {0}", device.FirmwareVersion);
Console.WriteLine("Comments: {0}", device.Comments);
Console.WriteLine("Last Server Communication: {0}", device.LastServerCommunication.ToString());
Console.WriteLine("Possible Issues: {0}", device.PossibleIssues);
// Example Output:
// Device Plans
// Level Name
// 3 Base Mode
// 99 Suspend Mode
// 9999 Terminate Mode
// Device Information
// Firmware Version: 101.2.85
// Comments: No Data from Device
// Last Server Communication: 2021-07-23 11:20:03 p.m.
// Possible Issues: No Data from Device
}
Example 2
The second example demonstrates how to query the MyAdmin API to get shipping fee information.
async Task Example2()
{
MyAdminInvoker api = new MyAdminInvoker("https://myadminapi.geotab.com/v2/MyAdminApi.ashx");
Dictionary<string, object> parameters = new Dictionary<string, object>
{
{"username", "user@geotab.com"},
{"password", "<password>"}
};
ApiUser apiUser = await api.InvokeAsync<ApiUser>("Authenticate", parameters);
Guid apiKey = apiUser.UserId;
Guid sessionId = apiUser.SessionId;
parameters = new Dictionary<string, object>
{
{"apiKey", apiKey},
{"sessionId", sessionId},
{"forAccount", "<account number>"}
};
ApiShippingFee[] shippingFees = await api.InvokeAsync<ApiShippingFee[]>("GetShippingFees", parameters);
}