private Airliner(SerializationInfo info, StreamingContext ctxt)
: base(info, ctxt)
{
Classes.RemoveAll(c => c == null);
var doubleClasses =
new List<AirlinerClass.ClassType>(
Classes.Where(c => Classes.Count(cc => cc.Type == c.Type) > 1).Select(c => c.Type));
foreach (var doubleClassType in doubleClasses)
{
var dClass = Classes.Last(c => c.Type == doubleClassType);
Classes.Remove(dClass);
}
if (Version == 1)
EngineType = null;
if (Version < 3)
FlownHours = new TimeSpan();
if (Version < 4)
Status = StatusTypes.Normal;
if (Version < 5)
{
Owner = Airline;
}
}