public IActionResult Home(NavigationLayoutViewModel viewModel = null) { ViewData["Title"] = "Home"; var role = HttpContext.Session.GetString("Role"); switch (role) { case "Administrator": return(RedirectToAction("ControlPanel", "Administrator")); case "Regulator": return(RedirectToAction("SearchTrades", "Regulator")); case "Team": return(RedirectToAction("Reports", "Trader")); default: if (viewModel == null) { viewModel = new NavigationLayoutViewModel(); } viewModel.Login = new Login { Role = role, Username = HttpContext.Session.GetString("Username") }; ModelState.Clear(); return(View(viewModel)); } }
public async Task <IActionResult> Login(NavigationLayoutViewModel viewModel) { if (viewModel.Username == null || viewModel.Password == null) { return(RedirectToAction("Home", "Public")); } try { var team = _teamRepository.GetAsync(int.Parse(viewModel.Username), viewModel.Password, true); if (team != null) { HttpContext.Session.SetString("Username", "team" + viewModel.Username); HttpContext.Session.SetString("Role", "Team"); return(RedirectToAction("Reports", "Trader")); } } catch (Exception) { //ignore } var login = await _loginRepository.GetAsync(viewModel.Username, viewModel.Password); if (login == null) { return(RedirectToAction("Home", "Public")); } HttpContext.Session.SetString("Role", login.Role); HttpContext.Session.SetString("Username", login.Username); switch (login.Role) { case "Administrator": return(RedirectToAction("ControlPanel", "Administrator")); case "Broker": return(RedirectToAction("TradeInput", "Broker")); case "Regulator": return(RedirectToAction("SearchTrades", "Regulator")); default: return(RedirectToAction("Home", "Public")); } }