Exemple #1
0
        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;
        }
Exemple #2
0
        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);
            }
        }
Exemple #3
0
        /// <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
        }