public static void Main(string[] args) { var action = DynamicSelectionActionWithCondition.CreateNew(ctx => { if (Station.CheckFreeSlots(out var countFreeSlots)) { return(SelectionAction .CreateNew($"Количество свободных мест для стоянки - {countFreeSlots}") .AddAction("1", "Принять самолёт", DataInputAction.CreateNew("Укажите номер борта самолёта", "airNum") .SetDescendantAction(WorkAction.CreateNew(ctx1 => { var id = ctx1["airNum"]; Console.WriteLine(Station.TryTakeAircraft(id) ? $"Самолёт с номером борта '{id}' принят" : $"Самолёт с номером борта '{id}' не удалось принять"); }))) .AddAction("2", "Отправить самолёт", SendAircraftAction())); } return(SelectionAction .CreateNew("Свободных мест для самолётов нет") .AddAction("1", "Отправить самолёт", SendAircraftAction())); }); var worker = new ConsoleActionsWorker(action, new WorkerSettings { SelectDescription = "Введите номер действия", ReselectDescriptionIfUnknownAction = "Указанное действие не найдено. Повторите выбор" }); worker.Start(); }
public static void Main(string[] args) { var enterAction = DataInputAction.CreateNew($"Введите логин:", "login") .SetDescendantAction(DynamicSelectionActionWithCondition.CreateNew(ctx => { var login = ctx["login"]; if (RegistrationStorage.ContainsKey(login)) { Console.WriteLine($"Здравствуйте, {RegistrationStorage[login]}"); return(new WorkAction(ctx1 => { })); } Console.WriteLine("Пользователь не найден. Зарегистрируйтесь..."); return(DataInputAction.CreateNew("Введите логин:", "newLogin") .SetDescendantAction(DataInputAction.CreateNew("Введите имя:", "newName") .SetDescendantAction(new WorkAction(ctx1 => { var newLogin = ctx1["newLogin"]; if (RegistrationStorage.ContainsKey(newLogin)) { Console.WriteLine($"Логин {newLogin} занят"); return; } var newName = ctx1["newName"]; RegistrationStorage.Add(newLogin, newName); Console.WriteLine($"Прошла регистрация логин - {newLogin}, имя - {newName}"); })))); })); var action = SelectionAction.CreateNew() .AddAction("1", "Ввести учетную запись", enterAction) .AddAction("2", "Показать имена всех пользователей", WorkAction.CreateNew(ctx => { foreach (var name in RegistrationStorage.Values) { Console.WriteLine(name); } })); var worker = new ConsoleActionsWorker(action, new WorkerSettings { SelectDescription = "Введите номер действия", ReselectDescriptionIfUnknownAction = "Указанное действие не найдено. Повторите выбор" }); worker.Start(); }