private void DeleteVersionsAndApprove()
{
if (VersioningMode != VersioningMode.None)
throw new NotSupportedException();
//-- Remove unnecessary working versions. Preserve the last public version row
//1.0A 1.0A
//1.1D 1.1D
//2.0A 2.0A <--
//2.1D
//2.2L <--
var workings = GetLastWorkingVersions();
var workingIds = workings.Select(x => x.VersionId);
DeletableVersionIds.AddRange(workingIds);
var lastApproved = GetLastApprovedVersion();
if (lastApproved != null)
{
ExpectedVersion = lastApproved.VersionNumber.ChangeStatus(VersionStatus.Approved);
ExpectedVersionId = lastApproved.VersionId;
}
else
{
DeletableVersionIds.Remove(CurrentVersionId);
ExpectedVersion = new VersionNumber(1, 0, VersionStatus.Approved);
ExpectedVersionId = CurrentVersionId;
}
}
private void DeleteVersionsAndPreserveLastWorking()