示例#1
0
 public static void SaveSettings()
 {
     try
     {
         XElement xElement = new XElement("Settings");
         foreach (PropertyInfo item in from pi in typeof(SettingsManager).GetRuntimeProperties()
                  where pi.GetMethod.IsStatic && pi.GetMethod.IsPublic && pi.SetMethod.IsPublic
                  select pi)
         {
             try
             {
                 string   value = HumanReadableConverter.ConvertToString(item.GetValue(null, null));
                 XElement node  = XmlUtils.AddElement(xElement, "Setting");
                 XmlUtils.SetAttributeValue(node, "Name", item.Name);
                 XmlUtils.SetAttributeValue(node, "Value", value);
             }
             catch (Exception ex)
             {
                 Log.Warning($"Setting \"{item.Name}\" could not be saved. Reason: {ex.Message}");
             }
         }
         using (Stream stream = Storage.OpenFile("config:/Settings.xml", OpenFileMode.Create))
         {
             XmlUtils.SaveXmlToStream(xElement, stream, null, throwOnError: true);
         }
         Log.Information("Saved settings");
     }
     catch (Exception e)
     {
         ExceptionManager.ReportExceptionToUser("Saving settings failed.", e);
     }
 }
示例#2
0
 public void Save(XElement entitiesNode)
 {
     foreach (EntityData entitiesDatum in EntitiesData)
     {
         XElement entityNode = XmlUtils.AddElement(entitiesNode, "Entity");
         entitiesDatum.Save(entityNode);
     }
 }
示例#3
0
        public static void publicSaveDatabaseObjectsList(XElement node, IEnumerable <DatabaseObject> databaseObjects, bool saveNestingParents)
        {
            List <DatabaseObject> list = new List <DatabaseObject>(databaseObjects);

            list.Sort((DatabaseObject o1, DatabaseObject o2) => (o1.Type.Order != o2.Type.Order) ? (o1.Type.Order - o2.Type.Order) : o1.Guid.CompareTo(o2.Guid));
            foreach (DatabaseObject item in list)
            {
                publicSaveDatabaseObject(XmlUtils.AddElement(node, item.Type.Name), item, saveNestingParents);
            }
        }
示例#4
0
    public static void SaveSettings()
    {
        XElement xElement = new XElement("Settings");
        XElement la       = XmlUtils.AddElement(xElement, "Set");

        la.SetAttributeValue("Name", "Language");
        la.SetAttributeValue("Value", (int)modSettings.languageType);
        using (Stream stream = Storage.OpenFile(ModsSetPath, OpenFileMode.Create))
        {
            XmlUtils.SaveXmlToStream(xElement, stream, null, throwOnError: true);
        }
    }
示例#5
0
        public void Save(XElement projectNode)
        {
            XmlUtils.SetAttributeValue(projectNode, "Guid", ValuesDictionary.DatabaseObject.Guid);
            XmlUtils.SetAttributeValue(projectNode, "Name", ValuesDictionary.DatabaseObject.Name);
            XElement node = XmlUtils.AddElement(projectNode, "Subsystems");

            ValuesDictionary.Save(node);
            if (EntityDataList != null)
            {
                XElement entitiesNode = XmlUtils.AddElement(projectNode, "Entities");
                EntityDataList.Save(entitiesNode);
            }
        }
示例#6
0
        public static void SaveDatabase(XElement node, Database database)
        {
            XElement parentNode = XmlUtils.AddElement(node, "DatabaseObjectTypes");

            foreach (DatabaseObjectType databaseObjectType in database.DatabaseObjectTypes)
            {
                XElement node2 = XmlUtils.AddElement(parentNode, "DatabaseObjectType");
                XmlUtils.SetAttributeValue(node2, "Name", databaseObjectType.Name);
                XmlUtils.SetAttributeValue(node2, "DefaultInstanceName", databaseObjectType.DefaultInstanceName);
                XmlUtils.SetAttributeValue(node2, "IconName", (!string.IsNullOrEmpty(databaseObjectType.IconName)) ? databaseObjectType.IconName : string.Empty);
                XmlUtils.SetAttributeValue(node2, "Order", databaseObjectType.Order);
                XmlUtils.SetAttributeValue(node2, "SupportsValue", databaseObjectType.SupportsValue);
                XmlUtils.SetAttributeValue(node2, "MustInherit", databaseObjectType.MustInherit);
                XmlUtils.SetAttributeValue(node2, "NameLengthLimit", databaseObjectType.NameLengthLimit);
                XmlUtils.SetAttributeValue(node2, "SaveStandalone", databaseObjectType.SaveStandalone);
                XmlUtils.SetAttributeValue(node2, "AllowedNestingParents", databaseObjectType.AllowedNestingParents.Aggregate(string.Empty, (string r, DatabaseObjectType d) => (r.Length != 0) ? (r + "," + d.Name) : d.Name));
                XmlUtils.SetAttributeValue(node2, "AllowedInheritanceParents", databaseObjectType.AllowedInheritanceParents.Aggregate(string.Empty, (string r, DatabaseObjectType d) => (r.Length != 0) ? (r + "," + d.Name) : d.Name));
                XmlUtils.SetAttributeValue(node2, "NestedValueType", (databaseObjectType.NestedValueType != null) ? databaseObjectType.NestedValueType.Name : string.Empty);
            }
            List <Type> list = new List <Type>();

            database.FindUsedValueTypes(list);
            List <Assembly> list2 = new List <Assembly>();

            foreach (Type item in list)
            {
                if (!list2.Contains(item.GetTypeInfo().Assembly))
                {
                    list2.Add(item.GetTypeInfo().Assembly);
                }
            }
            list2.Sort((Assembly a1, Assembly a2) => string.CompareOrdinal(a1.FullName, a2.FullName));
            XElement parentNode2 = XmlUtils.AddElement(node, "Assemblies");

            foreach (Assembly item2 in list2)
            {
                XmlUtils.SetAttributeValue(XmlUtils.AddElement(parentNode2, "Assembly"), "Name", item2.GetName().Name);
            }
            XElement node3 = XmlUtils.AddElement(node, "DatabaseObjects");

            XmlUtils.SetAttributeValue(node3, "RootGuid", database.Root.Guid);
            SaveDatabaseObjectsList(node3, database.Root.GetExplicitNestingChildren(null, directChildrenOnly: true));
        }
示例#7
0
 public void Save(XElement node)
 {
     foreach (KeyValuePair <string, object> item in m_dictionary)
     {
         ValuesDictionary valuesDictionary = item.Value as ValuesDictionary;
         if (valuesDictionary != null)
         {
             XElement node2 = XmlUtils.AddElement(node, "Values");
             XmlUtils.SetAttributeValue(node2, "Name", item.Key);
             valuesDictionary.Save(node2);
         }
         else
         {
             XElement node3 = XmlUtils.AddElement(node, "Value");
             XmlUtils.SetAttributeValue(node3, "Name", item.Key);
             XmlUtils.SetAttributeValue(node3, "Type", TypeCache.GetShortTypeName(item.Value.GetType().FullName));
             XmlUtils.SetAttributeValue(node3, "Value", item.Value);
         }
     }
 }