private void SaveJoinEntityDataLocal(JoinEntityData s) { string dirPath = Path.Combine(FrwConfig.Instance.ProfileDir, DATA_STORAGE); DirectoryInfo dir = new DirectoryInfo(dirPath); if (dir.Exists == false) { Directory.CreateDirectory(dir.FullName); } string filename = Path.Combine(dirPath, s.DataType1.FullName + "_" + s.DataType2.FullName + ".json"); object list = s.DataList; JsonSerializeHelper.SaveToFile(list, filename); s.Modified = false; }
private void SaveEntityDataLocal(IList list, Type type, string customDirPath) { string filename = GetDataFilePathForType(type, customDirPath); var lt = typeof(List <>); var listType = lt.MakeGenericType(type); IList alist = (IList)Activator.CreateInstance(listType); foreach (object v in list) { object av = Dm.CloneObject(v, CloneObjectType.ForSave); alist.Add(av); } // if (alist.Count > 5000)//todo better check size { JsonSerializeHelper.SaveToFileLageData(alist, filename); } else { JsonSerializeHelper.SaveToFile(alist, filename); } }
/// <summary> /// Saves all user settings /// </summary> public void SaveConfig() { foreach (var s in settings.Values) { if (s.Value != null && s.ValueType == null) { s.ValueType = s.Value.GetType(); } if (s.Value != null) { if (s.ValueType != typeof(string)) { JEntity entityAttr = AttrHelper.GetClassAttribute <JEntity>(s.ValueType); if (entityAttr != null) { if (s.AllowMultiValues) { IList list = (IList)s.Value; IList values = (IList)Activator.CreateInstance(typeof(List <>).MakeGenericType(s.ValueType)); foreach (var realObject in list) { values.Add(AttrHelper.ReplaceObjectByPkOnlyObject(realObject)); } s.Value = values; } else { s.Value = AttrHelper.ReplaceObjectByPkOnlyObject(s.Value); } } else { TypeConverter converter = TypeDescriptor.GetConverter(s.ValueType); if (converter != null) { s.Value = converter.ConvertToString(s.Value); } } } } } string filename = Path.Combine(ProfileConfigDir, settingsFileName); FileInfo fileInfo = new FileInfo(filename); DirectoryInfo dir = fileInfo.Directory; if (dir.Exists == false) { Directory.CreateDirectory(dir.FullName); } List <JSetting> settingsList = new List <JSetting>(); foreach (var s in settings.Values) { if (!s.IsAttachedToComputer) { settingsList.Add(s); } } JsonSerializeHelper.SaveToFile(settingsList, filename); //stage 2 filename = Path.Combine(ComputerUserDir, settingsFileName); fileInfo = new FileInfo(filename); dir = fileInfo.Directory; if (dir.Exists == false) { Directory.CreateDirectory(dir.FullName); } settingsList = new List <JSetting>(); foreach (var s in settings.Values) { if (s.IsAttachedToComputer) { settingsList.Add(s); } } File.WriteAllText(filename, JsonSerializeHelper.SaveToString(settingsList), Encoding.UTF8);//short }