0,0 → 1,122 |
using System; |
using System.Collections.Generic; |
using System.Linq; |
using System.Text; |
using System.IO; |
using System.Xml.Linq; |
using System.Windows.Forms; |
|
namespace SWAT_USB_App |
{ |
class SettingsParser |
{ |
private static string settingsFileLocation = Initialization.pathToSWATDrive + "USBSettings.xml"; |
private static XElement Settings; |
|
public static bool settingsFileExist() |
{ |
if (File.Exists(Initialization.pathToSWATDrive + "USBSettings.xml")) |
return true; |
else |
return false; |
} |
public static void readSettingsFile() |
{ |
try |
{ |
DebugText.appendText("Parsing USBSettings.xml"); |
// Clears the lists for software and drivers |
form_Software.softwareList.Clear(); |
form_Drivers.driverList.Clear(); |
|
Settings = XElement.Load(settingsFileLocation); |
|
// Reads the list of applications from the USBSettings.xml file into form_Software.softwareList |
DebugText.appendText("Parsing list of applications into List softwareList"); |
IEnumerable<XElement> app = |
from el in Settings.Elements("Applications").Elements("Application") |
select el; |
foreach (XElement el in app) |
{ |
DebugText.appendText("Adding application " + el.Element("Name").Value + " into softwareList"); |
form_Software.softwareList.Add(el.Element("Name").Value); |
} |
|
// Reads the list of drivers from the USBSettings.xml file into form_Drivers.driverList |
DebugText.appendText("Parsing list of drivers into List driverList"); |
IEnumerable<XElement> driv = |
from el in Settings.Elements("Drivers").Elements("Driver") |
select el; |
foreach (XElement el in driv) |
{ |
DebugText.appendText("Adding driver " + el.Element("Name").Value + " into driverList"); |
form_Drivers.driverList.Add(el.Element("Name").Value); |
} |
} |
catch (Exception e) |
{ |
DebugText.appendText("Exception Thrown: " + e.ToString()); |
MessageBox.Show(e.ToString()); |
} |
} |
public static bool isDefaultCheck(string applicationName) |
{ |
try |
{ |
// Checks if passed application name is marked as default |
bool isDefault = false; |
|
IEnumerable<XElement> def = |
from el in Settings.Elements("Applications").Elements("Application") |
where (string)el.Element("Name") == applicationName |
select el; |
if ((string)def.First().Element("Default").Value.ToLower() == "yes") |
isDefault = true; |
return isDefault; |
} |
catch (Exception e) |
{ |
DebugText.appendText("Exception Thrown: " + e.ToString()); |
MessageBox.Show(e.ToString()); |
return false; |
} |
} |
public static string[] getSetupLocation(string fileName) |
{ |
try |
{ |
// Pulls the location and arguments for the specified application/driver from USBSettings.xml |
DebugText.appendText("Getting setup locations for application " + fileName); |
IEnumerable<XElement> loc = |
from el in Settings.Elements("Applications").Elements("Application") |
where (string)el.Element("Name") == fileName |
select el; |
if (loc.Count() == 0) |
{ |
loc = |
from el in Settings.Elements("Drivers").Elements("Driver") |
where (string)el.Element("Name") == fileName |
select el; |
} |
// Creates a string array holding alternating lines of setup locations and arguments for that setup file |
string[] appSetupFile = new string[loc.Elements("Setup").Elements("Location").Count() * 2]; |
int counter = 0; |
foreach (XElement elem in loc.Elements("Setup").Elements("Location")) |
{ |
DebugText.appendText("Setup location for " + fileName + " is at " + (string)elem.Value + " with arguments " + (string)elem.Attribute("Args")); |
appSetupFile[counter] = (string)elem.Value; |
appSetupFile[counter + 1] = (string)elem.Attribute("Args"); |
counter += 2; |
} |
|
return appSetupFile; |
} |
catch (Exception e) |
{ |
DebugText.appendText("Exception Thrown: " + e.ToString()); |
MessageBox.Show(e.ToString()); |
return null; |
} |
} |
} |
} |