public static EUserChoice ShowMenu() { var values = Enum.GetValues(typeof(EUserChoice)); Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine(); Console.WriteLine("Выберите действие:"); foreach (var value in values) { EUserChoice val = (EUserChoice)value; Console.WriteLine($" {(Int32)val:00}. {val.GetFriendlyName()}"); } Console.WriteLine(); Boolean valueExist = false; Int32 input; do { Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("Ожидание ввода: "); while (!Int32.TryParse(Console.ReadLine(), out input)) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("\nВы ввели не корректное значение"); Console.ForegroundColor = ConsoleColor.Blue; } foreach (var value in values) { EUserChoice val = (EUserChoice)value; if (input == (Int32)val) { valueExist = true; break; } } if (!valueExist) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("\nВведите значение из списка"); Console.ForegroundColor = ConsoleColor.Blue; } } while (!valueExist); Console.ResetColor(); Console.WriteLine(); return((EUserChoice)input); }
static void Main(string[] args) { Int32 tenderNumber = 500; EUserChoice userChiice = EUserChoice.Exit; do { userChiice = ShowMenu(); switch (userChiice) { case EUserChoice.Exit: { break; } case EUserChoice.GetTenderState: { GetTenderState(tenderNumber); break; } case EUserChoice.GetTenderData: { GetTenderData(tenderNumber); break; } case EUserChoice.GetTenderDataAndTenderRoundOffers: { GetTenderDataAndTenderRoundOffers(tenderNumber); break; } case EUserChoice.GetTenderDataAndTenderRoundOffersAndContractorFiles: { GetTenderDataAndTenderRoundOffersAndContractorFiles(tenderNumber); break; } case EUserChoice.GetTenderDocumentation: { GetTenderDocumentation(tenderNumber); break; } case EUserChoice.SkipTaskOfSecurityService: { SkipTaskOfSecurityService(tenderNumber); break; } case EUserChoice.SkipTaskOfTenderComitet: { SkipTaskOfTenderComitet(tenderNumber); break; } case EUserChoice.ApplySolytionOfTenderComitet: { ApplySolytionOfTenderComitet(tenderNumber); break; } default: { throw new InvalidOperationException("Недопустимая операция"); } } } while (userChiice != EUserChoice.Exit); }