public async Task <ActionResult> LogIn(LoginViewModel model) { User user = null; if (ModelState.IsValid) { // Authentication is supparated for the On Premises user and Centralized User. Global Admin will be authenticate with Centralised DB // and on premises user and admin will be authenticated with on premise DB var status = await _accountLogic.AuthenticateUser(model, ServiceType.OnPremiseWebApi); if (status) { user = await _accountLogic.GetUserData(ServiceType.OnPremiseWebApi); if (user.Roles.Contains("SuperAdmin")) { status = await _accountLogic.AuthenticateUser(model, ServiceType.CentralizeWebApi); } } else { status = await _accountLogic.AuthenticateUser(model, ServiceType.CentralizeWebApi); if (status) { user = await _accountLogic.GetUserData(ServiceType.CentralizeWebApi); } else { ModelState.AddModelError("", "Invalid Credentials"); return(View()); } } if (user == null) { ModelState.AddModelError("", _accountLogic.ErrorMessage); return(View()); } LicenseSessionState.Instance.User = user; LicenseSessionState.Instance.IsGlobalAdmin = LicenseSessionState.Instance.User.Roles.Contains("BackendAdmin"); LicenseSessionState.Instance.IsSuperAdmin = LicenseSessionState.Instance.User.Roles.Contains("SuperAdmin"); if (LicenseSessionState.Instance.IsSuperAdmin) { LicenseSessionState.Instance.IsAdmin = true; } else { LicenseSessionState.Instance.IsAdmin = LicenseSessionState.Instance.User.Roles.Contains("Admin"); } if (!LicenseSessionState.Instance.IsGlobalAdmin && !LicenseSessionState.Instance.IsAdmin) { LicenseSessionState.Instance.IsTeamMember = true; } LicenseSessionState.UserId = user.UserId; LicenseSessionState.ServerUserId = user.ServerUserId; SignInAsync(user, true); if (LicenseSessionState.Instance.IsSuperAdmin) { AuthorizeBackendService service = new AuthorizeBackendService(); service.SyncDataToOnpremise(); } LicenseSessionState.Instance.IsAuthenticated = true; if (LicenseSessionState.Instance.IsGlobalAdmin) { if (String.IsNullOrEmpty(user.FirstName)) { return(RedirectToAction("Profile", "User")); } if (LicenseSessionState.Instance.IsGlobalAdmin) { return(RedirectToAction("Index", "User")); } return(RedirectToAction("Home", "Dashboard")); } if (LicenseSessionState.Instance.TeamList == null || LicenseSessionState.Instance.TeamList.Count == 0) { string userId = string.Empty; if (!LicenseSessionState.Instance.IsSuperAdmin) { userId = LicenseSessionState.Instance.User.UserId; } var teamList = OnPremiseSubscriptionLogic.GetTeamList(userId); LicenseSessionState.Instance.TeamList = teamList; if (teamList.Count == 0) { ViewData["IsTeamListPopupVisible"] = false; return(View()); } else if (teamList.Count == 1) { LicenseSessionState.Instance.SelectedTeam = teamList.FirstOrDefault(); var userLoginObj = IsConcurrentUserLoggedIn(); if (userLoginObj.IsUserLoggedIn) { if (String.IsNullOrEmpty(user.FirstName)) { return(RedirectToAction("Profile", "User")); } if (LicenseSessionState.Instance.IsGlobalAdmin) { return(RedirectToAction("Index", "User")); } return(RedirectToAction("Home", "Dashboard")); } else { ClearSession(); ModelState.AddModelError("", "Maximum user has logged in Please try after some time"); return(View()); } } } ViewData["IsTeamListPopupVisible"] = LicenseSessionState.Instance.TeamList.Count > 0 && LicenseSessionState.Instance.SelectedTeam == null; return(View()); } else { ModelState.AddModelError("", "Invalid Credentials"); } return(View()); }