82 lines
1.7 KiB
C#
82 lines
1.7 KiB
C#
using System;
|
|
using System.IO;
|
|
using System.Text.Json.Serialization;
|
|
using ReceiptPDFBuilder.Helpers;
|
|
|
|
namespace ReceiptPDFBuilder.Models;
|
|
|
|
class ReportFile : ChangeNotifier
|
|
{
|
|
private string _title;
|
|
private DateTime _receiptDateTime;
|
|
private string _notes;
|
|
private string _filePath;
|
|
|
|
public ReportFile()
|
|
{
|
|
_title = "";
|
|
_receiptDateTime = DateTime.Now;
|
|
_notes = "";
|
|
_filePath = "";
|
|
}
|
|
|
|
public ReportFile(ReportFile other)
|
|
{
|
|
Title = _title = other.Title;
|
|
ReceiptDateTime = _receiptDateTime = other.ReceiptDateTime;
|
|
Notes = _notes = other.Notes;
|
|
FilePath = _filePath = other.FilePath;
|
|
}
|
|
|
|
public string Title
|
|
{
|
|
get => _title;
|
|
set { _title = value; NotifyPropertyChanged(); }
|
|
}
|
|
|
|
public DateTime ReceiptDateTime
|
|
{
|
|
get => _receiptDateTime;
|
|
set
|
|
{
|
|
_receiptDateTime = value;
|
|
NotifyPropertyChanged();
|
|
NotifyPropertyChanged(nameof(ReceiptDate));
|
|
}
|
|
}
|
|
|
|
[JsonIgnore]
|
|
public DateOnly ReceiptDate
|
|
{
|
|
get => DateOnly.FromDateTime(_receiptDateTime);
|
|
}
|
|
|
|
public string Notes
|
|
{
|
|
get => _notes;
|
|
set { _notes = value; NotifyPropertyChanged(); }
|
|
}
|
|
|
|
public string FilePath
|
|
{
|
|
get => _filePath;
|
|
set
|
|
{
|
|
_filePath = value;
|
|
NotifyPropertyChanged();
|
|
NotifyPropertyChanged(nameof(FileName));
|
|
NotifyPropertyChanged(nameof(IsFileFoundOnDisk));
|
|
}
|
|
}
|
|
|
|
[JsonIgnore]
|
|
public string FileName
|
|
{
|
|
get => Path.GetFileName(_filePath);
|
|
}
|
|
|
|
public bool IsFileFoundOnDisk
|
|
{
|
|
get => File.Exists(FilePath);
|
|
}
|
|
} |