示例#1
0
        private static string CleanForFS(string str, string uniq)
        {
            var fn = FilenameHelper.StripStringForFilename(str, '_');

            if (string.IsNullOrWhiteSpace(fn))
            {
                fn = FilenameHelper.StripStringForFilename(uniq);
            }
            return(fn);
        }
示例#2
0
        private static List <AugmentedNote> GetNotes(NoteRepository repo)
        {
            var result = new List <AugmentedNote>();

            var existing = new HashSet <string>();

            foreach (var note in repo.Notes.OrderBy(p => p.CreationDate))
            {
                var fn = FilenameHelper.ConvertStringForFilename(note.Title);
                if (string.IsNullOrWhiteSpace(fn))
                {
                    fn = FilenameHelper.StripStringForFilename(note.UniqueName);
                }

                var ext = ".txt";

                if (note.HasTagCaseInsensitive(AppSettings.TAG_MARKDOWN))
                {
                    ext = ".md";
                }

                var path = Path.Combine(note.Path.Enumerate().Select(c => FilenameHelper.StripStringForFilename(c)).ToArray());

                var oldfn = fn;

                int    idx   = 0;
                string rpath = "";
                for (;;)
                {
                    fn = (idx == 0) ? oldfn : $"{oldfn}_{idx:000}";

                    rpath = string.IsNullOrWhiteSpace(path) ? (fn + ext) : Path.Combine(path, fn + ext);

                    if (existing.Add(rpath))
                    {
                        break;
                    }

                    idx++;
                }

                string txt = note.Text;
                if (fn != note.Title && !string.IsNullOrWhiteSpace(note.Title))
                {
                    txt = note.Title + "\n\n" + note.Text;
                }

                result.Add(new AugmentedNote()
                {
                    Note = note, RelativePath = rpath, Content = txt
                });
            }

            return(result);
        }