SafeDispatch/SharedUI/Update/App.cs
2024-02-22 18:43:59 +02:00

147 lines
6.0 KiB
C#

using System;
namespace SharedUI
{
public sealed class App
{
private static int c = 1;
private readonly String appName;
private readonly String appFolder4Update;
private readonly int value;
public static readonly App DISPATCH_MOBILE = new App(c++, "AppServerMobile", "appserver_mobile");
public static readonly App DISPATCH_HYTERA = new App(c++, "SafeSyt", "dispatcher");
public static readonly App DISPATCH_ATLAS = new App(c++, "Atlas", "dispatcher");
public static readonly App DISPATCH_Vision = new App(c++, "Vision", "dispatcher");
public static readonly App DISPATCH_HARRIS = new App(c++, "Harris", "dispatcher");
public static readonly App DISPATCH_MOTOROLA = new App(c++, "SafeDispatch", "dispatcher");
public static readonly App DISPATCH_SIMOCO = new App(c++, "Simoco Dispatch", "dispatcher");
public static readonly App DISPATCH_EXCERA = new App(c++, "Excera Dispatch", "dispatcher");
public static readonly App DISPATCH_LINX = new App(c++, "LINX Dispatch", "dispatcher");
public static readonly App GW_ASTRO = new App(c++, "ASTRO Gateway", "gateway_astro");
public static readonly App GW_HYTERA = new App(c++, "Hytera Gateway", "gateway_astro");
public static readonly App GW_TRBO = new App(c++, "TRBO Gateway", "gateway_trbo");
public static readonly App GW_REPEATER = new App(c++, "Repeater Gateway", "gateway_repeater");
public static readonly App GW_CPLUS = new App(c++, "ConnectPlus Gateway", "gateway_cplus");
public static readonly App GW_TETRA = new App(c++, "TETRA Gateway", "gateway_tetra");
public static readonly App GW_TETRA_SDR = new App(c++, "TETRA SDR Getaway", "gateway_tetra_sdr");
public static readonly App GW_SEPURA_3T_SDR = new App(c++, "Sepura 3T SDR Gateway", "gateway_sepura_3t_sdr");
public static readonly App ADMIN_MODULE = new App(c++, "Administrative Module", "admin_module");
public static readonly App APP_SERVER = new App(c++, "Application Server", "appserver");
public static readonly App TCP_SERVER = new App(c++, "TCP Server Service", "tcp_server");
public static readonly App TCP_CLIENT = new App(c++, "TCP Client Service", "tcp_client");
public static readonly App UPDATER = new App(c++, "Updater", "updater");
public static readonly App LINX_GATEWAY = new App(c++, "LINX Gateway", "gateway_linx");
public static readonly App EXCERA_GATEWAY = new App(c++, "EXCERA Gateway", "gateway_excera");
public static readonly App GW_SMC = new App(c++, "SMC Gateway", "gateway_smc");
public static readonly App APP_SERVER_MOBILE = new App(c++, "Application Server Mobile", "appserver_mobile");
private App(int value, String appName, String appFolder4Update)
{
this.value = value;
this.appName = appName;
this.appFolder4Update = appFolder4Update;
}
public override String ToString()
{
return appName;
}
/// <summary>
/// Get the application folder name based on it's type
/// </summary>
/// <param name="app">App type</param>
/// <returns>A string defining the application path</returns>
public static String GetAppFolder(App app)
{
return app.appFolder4Update;
}
public static String GetAppName(App app)
{
return app.appName;
}
/// <summary>
/// Detect if the current app version is allowed to run, or if the version
/// is obsolete and needs to be prevented from running
/// </summary>
/// <param name="appServerVers">String containing the app server version</param>
/// <param name="appVers">String containing the application version</param>
/// <returns>Boolean representing true or false if the app is allowed to run or not</returns>
public static bool isValidVersion(String appServerVers, String appVers)
{
try
{
String[] appServer = appServerVers.Split(new char[] { '.' });
String[] app = appVers.Split(new char[] { '.' });
if ((int)appServerVers[0] > (int)appVers[0] || (int)appServerVers[1] > (int)appVers[1]
|| (int)appServerVers[2] > (int)appVers[2])
return false;
return true;
}
catch (Exception)
{
return false;
}
}
}
/*
public class App
{
public const int DISPATCH = 0;
public const int GW_TRBO = 1;
public const int GW_REPEATER = 2;
public const int GW_CPLUS = 3;
public const int GW_TETRA = 4;
public const int GW_TETRA_SDR = 5;
public const int ADMIN_MODULE = 6;
public const int APP_SERVER = 7;
public const int TCP_SERVER = 8;
public const int TCP_CLIENT = 9;
/// <summary>
/// Get the application folder name based on it's type
/// </summary>
/// <param name="app">App type</param>
/// <returns>A string defining the application path</returns>
public static String GetAppFolder(int app)
{
switch (app)
{
case APP_SERVER: return "appserver";
case GW_TRBO: return "gateway_trbo";
case GW_REPEATER: return "gateway_repeater";
case DISPATCH: return "dispatcher";
default: return "default";
}
}
public static String GetAppName(int app)
{
switch (app)
{
case APP_SERVER: return "App Server";
case GW_TRBO: return "MotoTRBO Gateway";
case GW_REPEATER: return "Repeater Gateway";
case DISPATCH: return "Dispatcher";
default: return "default";
}
}
*/
}