87 lines
1.9 KiB
C#
87 lines
1.9 KiB
C#
using System.ComponentModel;
|
|
using System.Runtime.CompilerServices;
|
|
|
|
namespace EmbyToolbox.Models;
|
|
|
|
public sealed class MergeFileItem : INotifyPropertyChanged
|
|
{
|
|
private int _number;
|
|
private string _partName = string.Empty;
|
|
private string _status = "Готов";
|
|
private bool _partNameUserOverride;
|
|
|
|
public string FullPath { get; init; } = string.Empty;
|
|
public string FileName { get; init; } = string.Empty;
|
|
public int SizeMb { get; init; }
|
|
|
|
public int Number
|
|
{
|
|
get => _number;
|
|
set
|
|
{
|
|
if (_number == value)
|
|
{
|
|
return;
|
|
}
|
|
|
|
_number = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
public string PartName
|
|
{
|
|
get => _partName;
|
|
set
|
|
{
|
|
if (_partName == value)
|
|
{
|
|
return;
|
|
}
|
|
|
|
_partName = value;
|
|
_partNameUserOverride = true;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
/// <summary>Авто-подпись части при перестановке строк; не затирает имя, если пользователь правил вручную.</summary>
|
|
public void SyncAutoPartName(string value)
|
|
{
|
|
if (_partNameUserOverride)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (_partName == value)
|
|
{
|
|
return;
|
|
}
|
|
|
|
_partName = value;
|
|
OnPropertyChanged();
|
|
}
|
|
|
|
public string Status
|
|
{
|
|
get => _status;
|
|
set
|
|
{
|
|
if (_status == value)
|
|
{
|
|
return;
|
|
}
|
|
|
|
_status = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
public event PropertyChangedEventHandler? PropertyChanged;
|
|
|
|
private void OnPropertyChanged([CallerMemberName] string? propertyName = null)
|
|
{
|
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
|
}
|
|
}
|