예제 #1
0
        //saving/loading ----------------------------------------------------
        public bool SaveAs(string filePath, System.IO.MemoryStream previewImage = null)
        {
            var newElement = new XElement(SubmarineElement.Name,
                                          SubmarineElement.Attributes().Where(a => !string.Equals(a.Name.LocalName, "previewimage", StringComparison.InvariantCultureIgnoreCase) &&
                                                                              !string.Equals(a.Name.LocalName, "name", StringComparison.InvariantCultureIgnoreCase)),
                                          SubmarineElement.Elements());

            if (Type == SubmarineType.OutpostModule)
            {
                OutpostModuleInfo.Save(newElement);
                OutpostModuleInfo = new OutpostModuleInfo(this, newElement);
            }
            XDocument doc = new XDocument(newElement);

            doc.Root.Add(new XAttribute("name", Name));

            if (previewImage != null)
            {
                doc.Root.Add(new XAttribute("previewimage", Convert.ToBase64String(previewImage.ToArray())));
            }
            try
            {
                SaveUtil.CompressStringToFile(filePath, doc.ToString());
                Md5Hash.RemoveFromCache(filePath);
            }
            catch (Exception e)
            {
                DebugConsole.ThrowError("Saving submarine \"" + filePath + "\" failed!", e);
                return(false);
            }

            return(true);
        }
예제 #2
0
        //saving/loading ----------------------------------------------------
        public bool SaveAs(string filePath, MemoryStream previewImage = null)
        {
            var newElement = new XElement(SubmarineElement.Name,
                                          SubmarineElement.Attributes().Where(a => !string.Equals(a.Name.LocalName, "previewimage", StringComparison.InvariantCultureIgnoreCase)),
                                          SubmarineElement.Elements());
            XDocument doc = new XDocument(newElement);

            if (previewImage != null)
            {
                doc.Root.Add(new XAttribute("previewimage", Convert.ToBase64String(previewImage.ToArray())));
            }

            try
            {
                SaveUtil.CompressStringToFile(filePath, doc.ToString());
            }
            catch (Exception e)
            {
                DebugConsole.ThrowError("Saving submarine \"" + filePath + "\" failed!", e);
                return(false);
            }

            return(true);
        }