Esempio n. 1
0
        internal static void PerformActionOnLayout(string FileLocation, Action <JObject> ActionToPerform)
        {
            using (FileStream ZipFileStream = new FileStream(FileLocation, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
                using (ZipArchive Archive = new ZipArchive(ZipFileStream, ZipArchiveMode.Update))
                {
                    JObject LayoutObject;
                    using (StreamReader Reader = new StreamReader(Archive.GetEntry(ArchiveFileLocations.Layout).Open(), System.Text.Encoding.Unicode))
                        using (JsonTextReader JsonReader = new JsonTextReader(new StringReader(Reader.ReadToEnd())))
                        {
                            JsonReader.FloatParseHandling = FloatParseHandling.Decimal;

                            LayoutObject = JObject.Load(JsonReader);

                            ActionToPerform(LayoutObject);
                        }

                    Archive.GetEntry(ArchiveFileLocations.Layout).Delete();

                    System.Text.Encoding UnicodeWithoutBom = new System.Text.UnicodeEncoding(false, false);
                    byte[] LayoutByteArray = UnicodeWithoutBom.GetBytes(LayoutObject.ToString());

                    using (MemoryStream Stream = new MemoryStream(LayoutByteArray))
                        using (Stream Writer = Archive.CreateEntry(ArchiveFileLocations.Layout).Open())
                            Stream.CopyTo(Writer);

                    Archive.GetEntry(ArchiveFileLocations.SecurityBindings)?.Delete();
                }
        }
Esempio n. 2
0
 public void Connect(LayoutObject obj)
 {
     if (obj != null)
     {
         if (BigBoss.Debug.logging(Logs.LevelGen))
         {
             BigBoss.Debug.w(Logs.LevelGen, "Connecting " + ToString() + " to " + obj.ToString());
         }
         _connectedTo.Add(obj);
         obj._connectedTo.Add(this);
     }
 }