private static void AddCourtCaseToXMLFile(string File, CourtCase ccase)
        {
            try
            {
                XDocument xdoc = XDocument.Load(File);
                char[]    trim = new char[] { '\'', '\"', ' ' };


                XElement BritishPolicingScriptElement = xdoc.Element("BritishPolicingScript");
                XElement CcaseElement = new XElement("CourtCase",
                                                     new XAttribute("ID", ccase.XMLIdentifier),
                                                     new XElement("SuspectName", ccase.SuspectName),
                                                     new XElement("SuspectDOB", ccase.SuspectDOB.ToBinary()),
                                                     new XElement("Crime", ccase.Crime),
                                                     new XElement("CrimeDate", ccase.CrimeDate.ToBinary()),
                                                     new XElement("GuiltyChance", ccase.GuiltyChance.ToString()),
                                                     new XElement("CourtVerdict", ccase.CourtVerdict),
                                                     new XElement("ResultsPublishTime", ccase.ResultsPublishTime.ToBinary()),
                                                     new XElement("Published", ccase.ResultsPublished.ToString()),
                                                     new XElement("ResultsPublishedNotificationShown", ccase.ResultsPublishedNotificationShown.ToString()));
                BritishPolicingScriptElement.Add(CcaseElement);
                xdoc.Save(File);
            }
            catch (Exception e)
            {
                Game.LogTrivial("British Policing Script encountered an exception writing a court case to \'" + File + "\'. It was: " + e.ToString());
                Game.DisplayNotification("~r~Error while working with CourtCases.xml.");
            }
        }
        public static void CreateNewCourtCase(string SuspectName, DateTime SuspectDOB, string Crime, DateTime CrimeDate, int GuiltyChance, string CourtVerdict, DateTime ResultsPublishTime, bool Published, bool ResultsPublishedNotificationShown)
        {
            CourtCase courtcase = new CourtCase(SuspectName, SuspectDOB, Crime, CrimeDate, GuiltyChance, CourtVerdict, ResultsPublishTime, Published, ResultsPublishedNotificationShown);

            //Game.LogTrivial("ResultsPublishTime: " + ResultsPublishTime.ToString());
            AddCourtCaseToXMLFile(CourtCaseFilePath, courtcase);
            courtcase.AddToCourtsMenuAndLists();
        }
 public static void DeleteCourtCase(CourtCase CourtCase)
 {
     DeleteCourtCaseFromXMLFile(CourtCaseFilePath, CourtCase);
     if (CourtSystem.PublishedCourtCases.Contains(CourtCase))
     {
         if (Menus.PublishedResultsList.Items.Count == 1)
         {
             Menus.PublishedResultsList.Items.Add(new TabItem(" ")); CourtCase.ResultsMenuCleared = false;
         }
         Menus.PublishedResultsList.Items.RemoveAt(CourtSystem.PublishedCourtCases.IndexOf(CourtCase));
         CourtSystem.PublishedCourtCases.Remove(CourtCase);
     }
     if (CourtSystem.PendingCourtCases.Contains(CourtCase))
     {
         if (Menus.PendingResultsList.Items.Count == 1)
         {
             Menus.PendingResultsList.Items.Add(new TabItem(" ")); CourtCase.PendingResultsMenuCleared = false;
         }
         Menus.PendingResultsList.Items.RemoveAt(CourtSystem.PendingCourtCases.IndexOf(CourtCase));
         CourtSystem.PendingCourtCases.Remove(CourtCase);
     }
 }
        private static void DeleteCourtCaseFromXMLFile(string File, CourtCase ccase)
        {
            try
            {
                XDocument       xdoc = XDocument.Load(File);
                char[]          trim = new char[] { '\'', '\"', ' ' };
                List <XElement> CourtCasesToBeDeleted = new List <XElement>();
                CourtCasesToBeDeleted = (from x in xdoc.Descendants("CourtCase") where (((string)x.Attribute("ID")).Trim(trim) == ccase.XMLIdentifier) select x).ToList <XElement>();

                if (CourtCasesToBeDeleted.Count > 0)
                {
                    foreach (XElement ele in CourtCasesToBeDeleted)
                    {
                        ele.Remove();
                    }
                }
                xdoc.Save(File);
            }
            catch (Exception e)
            {
                Game.LogTrivial("British Policing Script encountered an exception deleting an element from \'" + File + "\'. It was: " + e.ToString());
                Game.DisplayNotification("~r~Error while working with CourtCases.xml.");
            }
        }
 public static void OverwriteCourtCase(CourtCase CourtCase)
 {
     DeleteCourtCaseFromXMLFile(CourtCaseFilePath, CourtCase);
     AddCourtCaseToXMLFile(CourtCaseFilePath, CourtCase);
 }