private string GetNonAvailableReason() {
if (Status != ServerStatus.Ready) return "CM isn’t ready";
var currentItem = CarsView?.CurrentItem as CarEntry;
if (currentItem == null) return "Car isn’t selected";
if (PasswordRequired) {
if (WrongPassword) return ToolsStrings.ArchiveInstallator_PasswordIsInvalid;
if (string.IsNullOrEmpty(Password)) return ToolsStrings.ArchiveInstallator_PasswordIsRequired;
}
if (BookingMode) {
var currentSession = Sessions.FirstOrDefault(x => x.IsActive);
if (currentSession?.Type != Game.SessionType.Booking) return "Wait for the next booking";
} else {
if (!currentItem.IsAvailable) return "Selected car isn’t available";
}
return null;
}