agrobot_base/AgroBase/OperationControl/Mapas/Editing/MapaEstadoEdicao.cs

94 lines
1.9 KiB
C#

using OperationControl.Mapas.Models;
namespace OperationControl.Mapas.Editing
{
public sealed class MapaEstadoEdicao
{
private readonly HashSet<string>
_ruasSelecionadas =
new(
StringComparer.OrdinalIgnoreCase
);
public MapaDocumento?
DocumentoOriginal
{
get;
internal set;
}
public MapaDocumento?
DocumentoTrabalho
{
get;
internal set;
}
public IReadOnlyCollection<string>
RuasSelecionadas =>
_ruasSelecionadas;
public bool EmEdicao =>
DocumentoTrabalho != null;
public bool PossuiSelecao =>
_ruasSelecionadas.Count > 0;
public int QuantidadeSelecionadas =>
_ruasSelecionadas.Count;
public bool Modificado =>
DocumentoTrabalho?
.Modificado
?? false;
internal HashSet<string>
RuasSelecionadasMutaveis =>
_ruasSelecionadas;
private readonly List<MapaEdicaoHistoricoItem>
_historicoDesfazer =
new();
private readonly List<MapaEdicaoHistoricoItem>
_historicoRefazer =
new();
public bool PodeDesfazer =>
_historicoDesfazer.Count > 0;
public bool PodeRefazer =>
_historicoRefazer.Count > 0;
public int QuantidadeHistoricoDesfazer =>
_historicoDesfazer.Count;
public int QuantidadeHistoricoRefazer =>
_historicoRefazer.Count;
internal List<MapaEdicaoHistoricoItem>
HistoricoDesfazerMutavel =>
_historicoDesfazer;
internal List<MapaEdicaoHistoricoItem>
HistoricoRefazerMutavel =>
_historicoRefazer;
}
}