Innovenergy_trunk/csharp/app/FossilTui/Change.cs

49 lines
1.3 KiB
C#

using InnovEnergy.Lib.Utils;
namespace InnovEnergy.FossilTui;
// ReSharper disable once PropertyCanBeMadeInitOnly.Global
public sealed class Change
{
public FossilState State { get; }
public FossilAction SelectedAction { get; private set; } = FossilAction.Ignore;
public String File { get; }
public Change(FossilState state, String file)
{
State = state;
File = file;
}
public Boolean Equals(Change? other)
{
return File == other?.File;
}
public override Int32 GetHashCode()
{
return File.GetHashCode();
}
public FossilAction SelectNextAction(Boolean canCommit)
{
return SelectedAction = State
.AvailableActions
.Unless(a => a == FossilAction.Commit && !canCommit)
.ToList()
.GetNext(SelectedAction);
}
public FossilAction SelectPreviousAction(Boolean canCommit)
{
return SelectedAction = State
.AvailableActions
.Unless(a => a == FossilAction.Commit && !canCommit)
.ToList()
.GetPrevious(SelectedAction);
}
}// ignore me