public static void LoadConfiguration()
        {
            string config;
            string configFile = string.Format("{0}", Assembly.GetEntryAssembly().Location.Replace("Bus.exe", "config.json"));

            if (!File.Exists(configFile))
            {
                File.Create(configFile);
            }

            using (StreamReader configReader = new StreamReader(configFile))
            {
                config = configReader.ReadToEnd();
                try
                {
                    Bus.Model   = JsonConvert.DeserializeObject <BusConfig>(config);
                    validConfig = true;
                }
                catch (Exception e)
                {
                    Console.WriteLine(ConsoleFunctions.WriteWithColour(ConsoleColor.Red, "INVALID CONFIGURATION FILE"));
                    BusLogger.LogException(e);
                    validConfig = false;
                }
                finally
                {
                    configReader.Close();
                }
            }

            BusCCTV.CheckHDDUsage();
            BusCCTV.CheckDriveHealth();
        }
        public static void StartBackend()
        {
            LoadConfiguration();
            Console.Title = string.Format("{0}, CheckDelay: {1}s", Bus.Model.ToString(), Bus.checkDelay);

            BusCCTV.Start();
            BusLogger.Start();
            BusTracker.Start();
            BusWebInterfaceListener.Start();

            while (validConfig)
            {
                ConsoleOutput();
                Thread.Sleep(Bus.checkDelay * 1000);
            }
        }