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());
        }