106 lines
3.8 KiB
C#
106 lines
3.8 KiB
C#
|
using DeviceSim.Controllers;
|
||
|
using DeviceSim.Helpers;
|
||
|
using Microsoft.Extensions.Configuration;
|
||
|
using System;
|
||
|
using System.Threading;
|
||
|
using System.Threading.Tasks;
|
||
|
|
||
|
namespace DeviceSim
|
||
|
{
|
||
|
internal class Program
|
||
|
{
|
||
|
#region Variables
|
||
|
|
||
|
private static DBConnectionInfo dBConnectionInfo;
|
||
|
public static int WaitTime { get; private set; }
|
||
|
public static string TeamName { get; private set; }
|
||
|
public static bool UseApi { get; private set; }
|
||
|
public static string UserApiEndPoint { get; private set; }
|
||
|
public static string PoiApiEndPoint { get; private set; }
|
||
|
public static string TripsApiEndPoint { get; private set; }
|
||
|
|
||
|
#endregion Variables
|
||
|
|
||
|
private static void Main(string[] args)
|
||
|
{
|
||
|
InitializeApp();
|
||
|
UseApi = true;
|
||
|
|
||
|
Console.WriteLine($"***** {TeamName}-Driving Simulator *****");
|
||
|
Console.WriteLine($"Currently Using API Routes : {UseApi.ToString()}");
|
||
|
Console.WriteLine($"*Starting Simulator - A new trip will be created every {WaitTime / 1000} seconds *");
|
||
|
|
||
|
while (true)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
CreateTripAsync().Wait();
|
||
|
Thread.Sleep(WaitTime);
|
||
|
}
|
||
|
catch (Exception ex)
|
||
|
{
|
||
|
Console.WriteLine(ex.Message);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private static async Task CreateTripAsync()
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
Console.WriteLine($"Starting Trip Creation : {DateTime.Now}. ");
|
||
|
await CreateTrip();
|
||
|
Console.WriteLine($"Trip Completed at : {DateTime.Now}. ");
|
||
|
}
|
||
|
catch (Exception)
|
||
|
{
|
||
|
throw;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private static void InitializeApp()
|
||
|
{
|
||
|
IConfiguration funcConfiguration;
|
||
|
var builder = new ConfigurationBuilder().AddEnvironmentVariables();
|
||
|
funcConfiguration = builder.Build();
|
||
|
|
||
|
//Environmental Variables - Pass to Container
|
||
|
|
||
|
//Database Connection Information
|
||
|
dBConnectionInfo.DBServer = funcConfiguration.GetSection("SQL_SERVER").Value;
|
||
|
dBConnectionInfo.DBUserName = funcConfiguration.GetSection("SQL_USER").Value;
|
||
|
dBConnectionInfo.DBPassword = funcConfiguration.GetSection("SQL_PASSWORD").Value;
|
||
|
dBConnectionInfo.DBCatalog = "mydrivingDB";
|
||
|
//Api Connection Information
|
||
|
UseApi = Convert.ToBoolean(funcConfiguration.GetSection("USE_API").Value);
|
||
|
UserApiEndPoint = funcConfiguration.GetSection("USER_ROOT_URL").Value;
|
||
|
PoiApiEndPoint = funcConfiguration.GetSection("POI_ROOT_URL").Value;
|
||
|
TripsApiEndPoint = funcConfiguration.GetSection("TRIPS_ROOT_URL").Value;
|
||
|
//Execution Information
|
||
|
WaitTime = Convert.ToInt32(funcConfiguration.GetSection("TRIP_FREQUENCY").Value ?? ("180000"));
|
||
|
TeamName = funcConfiguration.GetSection("TEAM_NAME").Value ?? ("TEAM 01");
|
||
|
}
|
||
|
|
||
|
private static async Task CreateTrip()
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
if (UseApi)
|
||
|
{
|
||
|
ApiTripController CurrentTrip = new ApiTripController(dBConnectionInfo, UserApiEndPoint, PoiApiEndPoint, TripsApiEndPoint);
|
||
|
await CurrentTrip.CreateTrip();
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
EFTripController CurrentTrip = new EFTripController(dBConnectionInfo);
|
||
|
await CurrentTrip.CreateTrip();
|
||
|
await CurrentTrip.SaveChangesAsync();
|
||
|
}
|
||
|
}
|
||
|
catch (Exception)
|
||
|
{
|
||
|
throw;//do Nothing just continue throwing
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|