Files
MyFirstMAUI/MyFirstMauiApp/NotesNet8/Models/Note.cs

57 lines
1.6 KiB
C#
Raw Normal View History

2024-04-12 14:15:22 +09:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NotesNet8.Models
{
internal class Note
{
public string Filename { get; set; }
public string Text { get; set; }
public DateTime Date { get; set; }
2024-04-12 15:46:13 +09:00
public Note()
{
Filename = $"{Path.GetRandomFileName()}.notes.txt";
Date = DateTime.Now;
Text = "";
}
public static Note Load(string filename)
{
filename = Path.Combine(FileSystem.AppDataDirectory, filename);
if (!File.Exists(filename))
throw new FileNotFoundException("Unable to find file on local storage.", filename);
return new Note()
{
Filename = Path.GetFileName(filename),
Text = File.ReadAllText(filename),
Date = File.GetLastWriteTime(filename)
};
}
public static IEnumerable<Note> LoadAll()
{
string appDataPath = FileSystem.AppDataDirectory;
return Directory
.EnumerateFiles(appDataPath, "*.notes.txt")
.Select(filename => Note.Load(Path.GetFileName(filename)))
.OrderByDescending(note => note.Date);
}
public void Save()
{
File.WriteAllText(Path.Combine(FileSystem.AppDataDirectory, Filename), Text);
}
public void Delete()
{
File.Delete(Path.Combine(FileSystem.AppDataDirectory, Filename));
}
2024-04-12 14:15:22 +09:00
}
}