Blame | Last modification | View Log | Download | RSS feed
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;elsereturn false;}public static void readSettingsFile(){try{DebugText.appendText("Parsing USBSettings.xml");// Clears the lists for software and driversform_Software.softwareList.Clear();form_Drivers.driverList.Clear();Settings = XElement.Load(settingsFileLocation);// Reads the list of applications from the USBSettings.xml file into form_Software.softwareListDebugText.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.driverListDebugText.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 defaultbool isDefault = false;IEnumerable<XElement> def =from el in Settings.Elements("Applications").Elements("Application")where (string)el.Element("Name") == applicationNameselect 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.xmlDebugText.appendText("Getting setup locations for application " + fileName);IEnumerable<XElement> loc =from el in Settings.Elements("Applications").Elements("Application")where (string)el.Element("Name") == fileNameselect el;if (loc.Count() == 0){loc =from el in Settings.Elements("Drivers").Elements("Driver")where (string)el.Element("Name") == fileNameselect el;}// Creates a string array holding alternating lines of setup locations and arguments for that setup filestring[] 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;}}}}