logout work

pull/48/head
Alexandre AGOSTINHO 2 years ago
parent 7602d9f789
commit f282c0dfed

@ -25,7 +25,7 @@ namespace ConsoleApp.Menu.Core
#endregion
#region IMenu implementation
public IMenu? Return() { return null; }
public virtual IMenu? Return() { return null; }
public void Display()
{
Console.Clear();

@ -0,0 +1,27 @@
using ConsoleApp.Menu.Core;
using Model.Managers;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp.Menu
{
internal class LogoutButton : PlainText
{
MasterManager _masterMgr;
public LogoutButton(MasterManager masterManager)
: base("Logout ? ('ENTER' yes, '<' no)")
{
_masterMgr = masterManager;
}
public override IMenu? Return()
{
_masterMgr.Logout();
return base.Return();
}
}
}

@ -19,12 +19,14 @@ namespace ConsoleApp.Menu
: base("Main menu")
{
_allSelectors.Add(new Selector<IMenu>(
new SearcherRecipe(masterManager.DataMgr.GetRecipes("search")), "Recipe search"));
new SearcherRecipe(masterManager.DataMgr.GetRecipes("search")), "Recipe search"));
_allSelectors.Add(
new Selector<IMenu>(new ConnectionMenu(masterManager), "Connection"));
new Selector<IMenu>(new ConnectionMenu(masterManager), "Connection"));
_allSelectors.Add(
new Selector<IMenu>(new ProfileMenu(masterManager), "User profile"));
new Selector<IMenu>(new ProfileMenu(masterManager), "User profile"));
_allSelectors.Add(
new Selector<IMenu>(new LogoutButton(masterManager), "Logout"));
}
protected override List<Selector<IMenu>> SearchInSelection()
@ -32,7 +34,8 @@ namespace ConsoleApp.Menu
List<Selector<IMenu>> selectors = base.SearchInSelection();
if (MasterManager.CurrentConnectedUser == null)
return selectors.Except(selectors.Where(s => s.Line == "User profile")).ToList();
return selectors.Except(selectors.Where(s => s.Line == "User profile"))
.Except(selectors.Where(s => s.Line == "Logout")).ToList();
else
return selectors.Except(selectors.Where(s => s.Line == "Connection")).ToList();
}

@ -76,6 +76,7 @@ namespace ConsoleApp
case ConsoleKey.Enter:
IMenu? retMenu = menuOnHead.Return();
if (retMenu is null) MenuCallStack.Pop();
else if (ReferenceEquals(retMenu, menuOnHead)) break;
else MenuCallStack.Push(retMenu);
break;
case ConsoleKey.LeftArrow:

Loading…
Cancel
Save