static void CertificatesListMenu(SelectableMenuOptions options) { Console.Clear(); Console.ForegroundColor = ConsoleColor.Magenta; Console.WriteLine("Certificates"); var certificatesmenu = new SelectableMenu <Action>(options); var certificates = certificatedatarepo.GetAll(); foreach (var cert in certificates) { certificatesmenu.Add(cert.Businessname, () => { CertificateOptions(cert, options); CertificatesListMenu(options); }); } certificatesmenu.Add("Back", () => { Console.Clear(); CreateMainMenu(options); }); certificatesmenu.Draw().Invoke(); }
/// <summary> /// Entry point. /// </summary> /// <param name="args">commandline arguments</param> public static void Main(string[] args) { // description Console.WriteLine("It is easy to create a select menu on CommandLine."); Console.WriteLine("You can color selections, place a cursor, etc."); Console.WriteLine(""); // create selectable menu instance. // // 1. When selected, thr color is green. // 2. When selected, clear menu. var options = new SelectableMenuOptions() { SelectedType = new ArrowSelectedType() { SelectedColor = ConsoleColor.Green, }, IsClearAfterSelection = true, }; var selectableMenu = new SelectableMenu <Action>(options); // setup menu item. selectableMenu.Add("Would you choose item A?", () => { Console.WriteLine("item A Selected!!"); }); selectableMenu.Add("Would you choose item B?", () => { Console.WriteLine("item B Selected!!"); }); selectableMenu.Add("Would you choose item C?", () => { Console.WriteLine("item C Selected!!"); }); selectableMenu.Add("Would you choose item D?", () => { Console.WriteLine("item D Selected!!"); }); // Draw a menu in the console. var selected = selectableMenu.Draw(); selected.Invoke(); Console.ReadKey(); }
static void CertificateUpdate(CertificateData cert, SelectableMenuOptions options) { Console.Clear(); Console.ForegroundColor = ConsoleColor.Magenta; Console.WriteLine($"Certificate edit : {cert.Businessname}"); var certificatesoptions = new SelectableMenu <Action>(options); var props = cert.GetType().GetProperties(); foreach (var prop in props) { var name = prop.Name; var value = prop.GetValue(cert); value = name == "Password" ? "****" : value; certificatesoptions.Add($"{name} : {value}", () => { if (name != "Id") { UpdateCertificateValue(cert, name, options); } else { CertificateUpdate(cert, options); } }); } certificatesoptions.Add("Back", () => { Console.Clear(); }); certificatesoptions.Draw().Invoke(); }
private void DrawSelectableMenu(SelectableMenu selectable) { var scale = screen.Width / 320; for (var i = 0; i < selectable.Name.Count; i++) { if (selectable.HeadersAsText) { screen.DrawTextB(selectable.Name[i], scale * selectable.TitleX[i], scale * selectable.TitleY[i], scale); } else { DrawMenuPatch( selectable.Name[i], selectable.TitleX[i], selectable.TitleY[i]); } } foreach (var item in selectable.Items) { DrawMenuItem(selectable.Menu, item); } var choice = selectable.Choice; var arrow = selectable.Menu.Tics / 8 % 2 == 0 ? "M_SLCTR1" : "M_SLCTR2"; DrawMenuPatch(arrow, choice.SkullX, choice.SkullY); }
public void NullAdd_NullAdd_KvPValue() { // setup var selectableMenu = new SelectableMenu <string>(); var ex = Assert.Throws <ArgumentNullException>(() => { selectableMenu.Add(new KeyValuePair <string, string>("title", null)); }); ex.Message.Is("Value cannot be null. (Parameter 'item.Value')"); }
public void DoesNotExistMenuItemDraw() { // setup var selectableMenu = new SelectableMenu <string>(); var ex = Assert.Throws <InvalidOperationException>(() => { selectableMenu.Draw(); }); ex.Message.Is("The item does not exist in the menu. Please set the item."); }
public void NullAdd_Title() { // setup var selectableMenu = new SelectableMenu <string>(); var ex = Assert.Throws <ArgumentNullException>(() => { selectableMenu.Add(null, "sample"); }); ex.Message.Is("Value cannot be null. (Parameter 'title')"); }
public void NullActionArguments() { var ex = Assert.Throws <ArgumentNullException>(() => { Action <SelectableMenuOptions> action = null; var selectableMenu = new SelectableMenu <string>(action); }); ex.Message.Is("Value cannot be null. (Parameter 'action')"); }
public void NullOptionsArguments() { var ex = Assert.Throws <ArgumentNullException>(() => { SelectableMenuOptions options = null; var selectableMenu = new SelectableMenu <string>(options); }); ex.Message.Is("Value cannot be null. (Parameter 'options')"); }
void Awake() { if (null == menu) { menu = GetComponent <SelectableMenu>(); if (null == menu) { Debug.LogError("No menu object found for this feed"); } } }
static void NewCertificate(CertificateData cert, SelectableMenuOptions options) { Console.Clear(); Console.ForegroundColor = ConsoleColor.Magenta; Console.WriteLine($"New CertificateData"); var certificatesoptions = new SelectableMenu <Action>(options); var props = cert.GetType().GetProperties(); foreach (var prop in props) { var name = prop.Name; var value = prop.GetValue(cert); value = name == "Password" ? "****" : value; certificatesoptions.Add($"{name} : {value}", () => { if (name != "Id") { NewCertificateValue(cert, name, options); } else { NewCertificate(cert, options); } }); } certificatesoptions.Add("Save", () => { try { certificatedatarepo.Add(cert); _logger?.Info("NewCertificate()", "Certificate added into repository."); CreateMainMenu(options); } catch (Exception ex) { Console.WriteLine($"Validation errors : { ex.Message }"); Console.ReadLine(); NewCertificate(cert, options); } }); certificatesoptions.Add("Cancel", () => { CreateMainMenu(options); }); certificatesoptions.Draw().Invoke(); }
private void Update() { if (Input.GetKey(KeyCode.Space)) { for (int idx = 0; idx < menuObject.transform.childCount; idx++) { SelectableMenu menuItem = menuObject.transform.GetChild(idx).GetComponent <SelectableMenu>(); if (menuItem.IsSelect) { menuItem.LoadNextScene(); break; } } } }
private void DrawSelectableMenu(SelectableMenu selectable) { for (var i = 0; i < selectable.Name.Count; i++) { this.DrawMenuPatch(selectable.Name[i], selectable.TitleX[i], selectable.TitleY[i]); } foreach (var item in selectable.Items) { this.DrawMenuItem(selectable.Menu, item); } var choice = selectable.Choice; var skull = selectable.Menu.Tics / 8 % 2 == 0 ? "M_SKULL1" : "M_SKULL2"; this.DrawMenuPatch(skull, choice.SkullX, choice.SkullY); }
static void CertificateDelete(CertificateData cert, SelectableMenuOptions options) { Console.Clear(); Console.ForegroundColor = ConsoleColor.Magenta; Console.WriteLine($"Are you sure to delete : {cert.Businessname} ?"); var certificatesoptions = new SelectableMenu <Action>(options); certificatesoptions.Add("Yes", () => { certificatedatarepo.Delete(cert); _logger?.Info("CertificateDelete()", "Certificate deleted from repository."); }); certificatesoptions.Add("No", () => { CertificateOptions(cert, options); }); certificatesoptions.Draw().Invoke(); }
static void UpdateCertificateValue(CertificateData cert, string Name, SelectableMenuOptions options) { Console.Clear(); Console.ForegroundColor = ConsoleColor.Magenta; Console.WriteLine($"Editing value : {Name}"); Console.WriteLine($"New value : "); var stin = Console.ReadLine(); var certificatesoptions = new SelectableMenu <Action>(options); var prop = cert.GetType().GetProperties().Where(x => x.Name == Name).FirstOrDefault(); prop.SetValue(cert, stin); try { var newcertificate = new CertificateData(cert.Id, cert.Password, cert.Path, cert.Businessname); certificatesoptions.Add("Save", () => { certificatedatarepo.Update(newcertificate); _logger?.Info("UpdateCertificateValue()", "Certificate updated into repository."); CertificateUpdate(newcertificate, options); }); certificatesoptions.Add("Cancel", () => { NewCertificate(newcertificate, options); }); certificatesoptions.Draw().Invoke(); } catch (Exception ex) { Console.Clear(); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"Entity validation errors : { ex.Message }"); Console.ReadLine(); UpdateCertificateValue(cert, Name, options); } }
static void CreateMainMenu(SelectableMenuOptions options) { Console.Clear(); var mainmenu = new SelectableMenu <Action>(options); Console.ForegroundColor = ConsoleColor.Magenta; Console.WriteLine("Main Menu"); // add menu item. mainmenu.Add("List Certificates", () => { CertificatesListMenu(options); }); mainmenu.Add("Add new certificate settings", () => { var certificate = new CertificateData(); NewCertificate(certificate, options); }); mainmenu.Add("Exit ", () => { System.Environment.Exit(1); }); mainmenu.Draw().Invoke(); }
static void CertificateOptions(CertificateData cert, SelectableMenuOptions options) { Console.Clear(); Console.ForegroundColor = ConsoleColor.Magenta; Console.WriteLine($"Certificate edit : {cert.Businessname}"); var certificatesoptions = new SelectableMenu <Action>(options); certificatesoptions.Add("Update values", () => { CertificateUpdate(cert, options); }); certificatesoptions.Add("Delete", () => { CertificateDelete(cert, options); CertificatesListMenu(options); }); certificatesoptions.Add("Back", () => { Console.Clear(); }); certificatesoptions.Draw().Invoke(); }