public TrulyObservableCollection <Series> Load()
        {
            var env = Properties.Settings.Default.UsageEnv;

            if (env == UsageEnvironments.Local.ToString())
            {
                return(LoadFromAppData());
            }
            else if (env == UsageEnvironments.Nas.ToString())
            {
                var appDataData = LoadFromAppData();
                var result      = new TrulyObservableCollection <Series>();

                foreach (var itemFromAppData in appDataData)
                {
                    var currentFileFromInFolder = LoadCurrentFileNameFromSeriesFolder(itemFromAppData.FolderPath);
                    var folder = itemFromAppData.FolderPath;
                    var file   = currentFileFromInFolder ?? itemFromAppData.CurrentFileName;
                    var series = new Series()
                    {
                        FolderPath = folder, CurrentFileName = file
                    };
                    result.Add(series);
                }
                return(result);
            }
            else
            {
                Properties.Settings.Default.UsageEnv = UsageEnvironments.Local.ToString();
                Properties.Settings.Default.Save();
                throw new ApplicationException("Unknown usage env - has been reset");
            }
        }
        private void SaveAllDataToAppData(TrulyObservableCollection <Series> list)
        {
            StringBuilder sb = new StringBuilder();
            StringWriter  sw = new StringWriter(sb);

            collectionSerializer.Serialize(sw, list);
            string xmlResult = sw.GetStringBuilder().ToString();

            Directory.CreateDirectory(Path.GetDirectoryName(appDataFile));
            File.WriteAllText(appDataFile, xmlResult);
        }
        private void SaveCurrentFileToEachFolder(TrulyObservableCollection <Series> list)
        {
            foreach (var item in list)
            {
                string dataFile = Path.Combine(item.FolderPath, inFolderFileName);

                if (File.Exists(dataFile))
                {
                    File.SetAttributes(dataFile, FileAttributes.Normal);
                }
                File.WriteAllText(dataFile, item.CurrentFileName, Encoding.UTF8);
                File.SetAttributes(dataFile, FileAttributes.Hidden);
            }
        }
        public void Persist(TrulyObservableCollection <Series> list)
        {
            var env = Properties.Settings.Default.UsageEnv;

            if (env == UsageEnvironments.Local.ToString())
            {
                SaveAllDataToAppData(list);
            }
            else if (env == UsageEnvironments.Nas.ToString())
            {
                SaveAllDataToAppData(list);
                SaveCurrentFileToEachFolder(list);
            }
            else
            {
                throw new ApplicationException("Unknown usage env");
            }
        }