protected void btnLogout_Click(object sender, EventArgs e)
        {
            WebServiceLog objServiceLog = new WebServiceLog();
            LoginRequest  objRequest    = new LoginRequest();
            ResponseBase  objResponse   = null;

            objServiceLog.RequestTime    = DateTime.Now;
            objServiceLog.ControllerName = this.GetType().Name;
            objServiceLog.MethodName     = System.Reflection.MethodBase.GetCurrentMethod().Name;
            try
            {
                objResponse = new ResponseBase();
                if (HttpContext.Current.Session["UserId"] != null && HttpContext.Current.Session["CompId"] != null)
                {
                    ActiveUsersCache  objSession     = new ActiveUsersCache();
                    List <ActiveUser> lstActiveUsers = new List <ActiveUser>();
                    if (Cache["ActiveUsers"] != null)
                    {
                        lstActiveUsers = (List <ActiveUser>)Cache["ActiveUsers"];
                    }
                    objSession.KillSession(lstActiveUsers, Session.SessionID, null);

                    objRequest.UserID = Convert.ToString(HttpContext.Current.Session["UserId"]);

                    DataSet ds = UserDAL.UserLogout(Convert.ToInt32(HttpContext.Current.Session["CompId"]), objRequest.UserID, Utility.GetClientIPaddress());
                    if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0 && ds.Tables[0].Rows[0]["ReturnCode"].ToString() == "1")
                    {
                        objResponse.ReturnCode    = "1";
                        objResponse.ReturnMessage = "User logout succesfully.";
                    }
                    else
                    {
                        objResponse.ReturnCode    = "2";
                        objResponse.ReturnMessage = "Unable to logout.";
                    }
                    objServiceLog.RequestString  = JSONHelper.ConvertJsonToString(objRequest);
                    objServiceLog.ResponseString = JSONHelper.ConvertJsonToString(objResponse);
                    objServiceLog.RequestType    = ConstantMessages.WebServiceLog.Success;

                    Utility.DestroyAllSession();


                    //This is to delete all cookies from client web browser
                    //HttpCookie myCookie = new HttpCookie("UserInfo");
                    //myCookie.Expires = DateTime.Now.AddDays(-1);
                    //Response.Cookies.Add(myCookie);

                    Response.Cookies["userid"].Expires = DateTime.Now.AddDays(-1);
                    //End

                    Response.Redirect("~/login.aspx", false);
                }
                else
                {
                    objServiceLog.RequestString  = JSONHelper.ConvertJsonToString(objRequest);
                    objServiceLog.ResponseString = JSONHelper.ConvertJsonToString(objResponse);
                    objServiceLog.RequestType    = ConstantMessages.WebServiceLog.Validation;
                }
            }
            catch (Exception ex)
            {
                objServiceLog.ResponseString = "Exception " + ex.Message + " | " + ex.StackTrace;
                objServiceLog.RequestType    = ConstantMessages.WebServiceLog.Exception;
            }
            finally
            {
                objServiceLog.ResponseTime = DateTime.Now;
                InsertRequestLog.SaveWebServiceLog(objServiceLog);
            }
        }
        protected void ProceedToSuccessLoginProcess(UserBO objResponse, string UserName, string Password)
        {
            //HttpCookie myOldCookie = Request.Cookies["UserInfo"];
            //if (myOldCookie == null)
            //{
            //    HttpCookie myCookie = new HttpCookie("UserInfo");
            //    myCookie.Values.Add("userid", objResponse.UserID);
            //    myCookie.Expires = DateTime.Now.AddMonths(1);
            //    Response.Cookies.Add(myCookie);
            //}

            Response.Cookies["userid"].Value   = objResponse.UserID;
            Response.Cookies["userid"].Expires = DateTime.Now.AddMonths(1);


            //HttpCookie _userInfoCookies = new HttpCookie("UserInfo");
            //_userInfoCookies["UserId"] = objResponse.UserID;
            //_userInfoCookies.Expires = DateTime.Now.AddMonths(1);
            //Response.Cookies.Add(_userInfoCookies);
            //End

            //Login Log
            LoginLogout _loginLogout = new LoginLogout();

            _loginLogout.UserID     = objResponse.UserID;
            _loginLogout.CompID     = objResponse.CompId.ToString();
            _loginLogout.Type       = "login";
            _loginLogout.IP_Address = Utility.GetClientIPaddress();
            UserDAL.InsertLoginLogoutHistory(_loginLogout, "");
            //End Login Log

            GetAccessToken(UserName, Password);

            if (HttpContext.Current.Session["access_token"] == null)
            {
                ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "script", "Swal.fire({text: '" + ConstantMessages.WebServiceLog.GenericErrorMsg + "',allowOutsideClick:false})", true);
                return;
            }
            else
            {
                // Call Login Business Layer Function to record message
                Utility.CreateUserSession(objResponse.UserID, objResponse.Role, objResponse.FirstName, objResponse.LastName, objResponse.CompId, objResponse.EmailID, objResponse.OrganizationName);

                List <ActiveUser> lstActiveUsers = new List <ActiveUser>();
                if (Cache["ActiveUsers"] != null)
                {
                    lstActiveUsers = (List <ActiveUser>)Cache["ActiveUsers"];
                }
                ActiveUsersCache cache = new ActiveUsersCache();
                cache.AddOrUpdate(lstActiveUsers, objResponse.UserID, objResponse.EmailID, objResponse.FirstName + " " + objResponse.LastName, Session.SessionID);
                Cache["ActiveUsers"] = lstActiveUsers;

                //For ProfilePic,CompanyProfilePic & Theme
                var UserDetails = UserDAL.GetUserDetailsByUserID(objResponse.UserID, "");
                if (UserDetails != null && !string.IsNullOrEmpty(UserDetails.ProfilePicFileID))
                {
                    HttpContext.Current.Session["ThemeColor"]  = UserDetails.ThemeColor;
                    HttpContext.Current.Session["ThemeColor2"] = UserDetails.ThemeColor2;
                    HttpContext.Current.Session["ThemeColor3"] = UserDetails.ThemeColor3;
                    HttpContext.Current.Session["ThemeColor4"] = UserDetails.ThemeColor4;
                    HttpContext.Current.Session["Favicon"]     = UserDetails.FaviconFileID;

                    Utility.CreateProfileAndThemeSession(UserDetails.ProfilePicFileID, UserDetails.CompanyProfilePicFileID, UserDetails.ThemeColor);
                }
                //End For ProfilePic,CompanyProfilePic & Theme

                if (objResponse.IsFirstLogin == "1" || objResponse.IsFirstPasswordNotChanged == "1")
                {
                    if (objResponse.IsFirstLogin == "1")
                    {
                        Utility.CreateFirstLoginSession(true);
                    }
                    if (objResponse.IsFirstPasswordNotChanged == "1")
                    {
                        Utility.CreateFirstPasswordNotChangedSession(true);
                    }
                    if (objResponse.IsFirstLogin == "1")
                    {
                        Response.Redirect("~/t/Settings.aspx", false);
                    }
                    else if (objResponse.IsFirstPasswordNotChanged == "1")
                    {
                        Response.Redirect("~/t/ChangePassword.aspx", false);
                    }
                }
                else
                {
                    Utility.CreateFirstLoginSession(false);

                    //Added on 04 Jun 20 to preview add course without login
                    if (Request.QueryString["url"] != null && !string.IsNullOrEmpty(Convert.ToString(Request.QueryString["url"])))
                    {
                        string requestedurl = Convert.ToString(Request.QueryString["url"]);
                        requestedurl = HttpUtility.UrlDecode(requestedurl);
                        Response.Redirect(requestedurl);
                    }

                    //if (HttpContext.Current.Session["requestedurlcourse"] != null)
                    //{
                    //    string requestedurl = Convert.ToString(HttpContext.Current.Session["requestedurlcourse"]);
                    //    HttpContext.Current.Session["requestedurlcourse"] = null;
                    //    Response.Redirect(requestedurl);
                    //}
                    //End

                    //This is used to redirect user on specific page where he requested .Purpose of this is to navigate already logged in user in same browser
                    HttpCookie myCookie = Request.Cookies["UserInfo"];
                    if (myCookie != null && HttpContext.Current.Session["requestedurl"] != null)
                    {
                        string requestedurl = Convert.ToString(HttpContext.Current.Session["requestedurl"]);
                        HttpContext.Current.Session["requestedurl"] = null;
                        Response.Redirect(requestedurl);
                    }
                    //End

                    if (objResponse.Role.ToLower() == "enduser")
                    {
                        Response.Redirect("~/t/default.aspx", false);
                    }
                    else if (objResponse.Role.ToLower() == "superadmin" || objResponse.Role.ToLower() == "companyadmin" || objResponse.Role.ToLower() == "subadmin")
                    {
                        Response.Redirect("~/t/dashboard.aspx", false);
                    }
                }
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                if (HttpContext.Current.Session["UserId"] != null && HttpContext.Current.Session["CompId"] != null)
                {
                    // Update Session Time
                    List <ActiveUser> lstActiveUsers = new List <ActiveUser>();
                    if (Cache["ActiveUsers"] != null)
                    {
                        lstActiveUsers = (List <ActiveUser>)Cache["ActiveUsers"];
                    }
                    ActiveUsersCache cache = new ActiveUsersCache();
                    cache.AddOrUpdate(lstActiveUsers, Convert.ToString(Session["UserId"]), Convert.ToString(Session["EmailID"]), Convert.ToString(Session["FirstName"]) + " " + Convert.ToString(Session["LastName"]), Session.SessionID);
                    Cache["ActiveUsers"] = lstActiveUsers;

                    DataSet ds = TrainningBL.GetMsgNotifications(Convert.ToInt32(HttpContext.Current.Session["CompId"]), HttpContext.Current.Session["UserId"].ToString(), 4);
                    if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                    {
                        lblNotiCount.Text = ds.Tables[0].Rows[0]["NotificationCount"].ToString();
                    }
                    else
                    {
                        lblNotiCount.Text = "";
                    }
                }
            }

            if (HttpContext.Current.Session["UserId"] != null &&
                (
                    Convert.ToString(Session["RoleName"]) == "superadmin" ||
                    Convert.ToString(Session["RoleName"]) == "companyadmin" ||
                    Convert.ToString(Session["RoleName"]) == "subadmin" ||
                    Convert.ToString(Session["RoleName"]) == "enduser"
                ))
            {
                string CurrDirecotry = Server.MapPath("/").ToString();
                string FullPath      = CurrDirecotry + System.IO.Path.GetFileName(Request.Url.AbsolutePath);

                if (HttpContext.Current.Session["IsFirstLogin"] != null && Convert.ToBoolean(HttpContext.Current.Session["IsFirstLogin"]) == true &&
                    FullPath != CurrDirecotry + "Settings.aspx" && FullPath != CurrDirecotry + "ChangePassword.aspx")
                {
                    Response.Redirect("~/t/Settings.aspx", true);// This is 1st time login..
                }
                else if (HttpContext.Current.Session["IsFirstPasswordNotChanged"] != null && Convert.ToBoolean(HttpContext.Current.Session["IsFirstPasswordNotChanged"]) == true &&
                         FullPath != CurrDirecotry + "ChangePassword.aspx" && FullPath != CurrDirecotry + "Settings.aspx")
                {
                    Response.Redirect("~/t/ChangePassword.aspx", true);// This is user has not changed password..
                }
                if (HttpContext.Current.Session["FirstName"] != null && HttpContext.Current.Session["LastName"] != null)
                {
                    lblUserName.Text             = HttpContext.Current.Session["FirstName"].ToString() + " " + HttpContext.Current.Session["LastName"].ToString();
                    lblProfileUserName.InnerHtml = HttpContext.Current.Session["FirstName"].ToString() + " " + HttpContext.Current.Session["LastName"].ToString();
                }

                if (HttpContext.Current.Session["ProfilePicFile"] != null && !string.IsNullOrEmpty(HttpContext.Current.Session["ProfilePicFile"].ToString()))
                {
                    imgProfilePic.Src     = "../Files/ProfilePic/" + HttpContext.Current.Session["ProfilePicFile"].ToString();
                    imgProfileUserPic.Src = "../Files/ProfilePic/" + HttpContext.Current.Session["ProfilePicFile"].ToString();
                }
                if (HttpContext.Current.Session["CompanyProfilePicFile"] != null && !string.IsNullOrEmpty(HttpContext.Current.Session["CompanyProfilePicFile"].ToString()))
                {
                    imgCompanyLogo.Src = "../Files/CompLogo/" + HttpContext.Current.Session["CompanyProfilePicFile"].ToString();
                }
                var fName = "Me";
                if (Session["FirstName"] != null)
                {
                    fName = Convert.ToString(Session["FirstName"]);
                }

                //aMe_Menu.InnerHtml = "<i class='fas fa-user'></i><span class='tooltiptext'>" + fName + "</span><span>" + fName + "</span>";

                //sideNav.Style.Add("background-color", "blue");

                /*
                 * if (HttpContext.Current.Session["RoleName"] != null)
                 * {
                 *  if (HttpContext.Current.Session["RoleName"].ToString() == ConstantMessages.Roles.superadmin)
                 *  {
                 *      dvDashboard.Visible = true;
                 *      dvUserDashboard.Visible = false;
                 *      dvGroups.Visible = true;
                 *      dvUsers.Visible = true;
                 *      dvTopics.Visible = true;
                 *      dvAssignTopics.Visible = true;
                 *
                 *      dvMenu_Directory.Visible = true;
                 *      dvSubMenu_Organizations.Visible = true;
                 *      dvMenu_Integrations.Visible = true;
                 *      dvSubMenu_ContentSettings.Visible = true;
                 *      dvSubMenu_Roles.Visible = true;
                 *      dvSubMenu_Customize.Visible = true;
                 *
                 *      dvSubMenu_Users.Visible = false;
                 *  }
                 *  else if (HttpContext.Current.Session["RoleName"].ToString() == ConstantMessages.Roles.companyadmin)
                 *  {
                 *      dvDashboard.Visible = true;
                 *      dvUserDashboard.Visible = false;
                 *      dvGroups.Visible = true;
                 *      dvUsers.Visible = true;
                 *      dvTopics.Visible = true;
                 *      dvAssignTopics.Visible = true;
                 *
                 *      dvSubMenu_AssignTopics.Visible = true;
                 *
                 *      dvMenu_Directory.Visible = true;
                 *      dvMenu_Integrations.Visible = true;
                 *      dvSubMenu_ContentSettings.Visible = true;
                 *      dvMenu_Account.Visible = true;
                 *      dvSubMenu_Customize.Visible = true;
                 *      dvSubMenu_AssignTopics.Visible = true;
                 *
                 *      dvSubMenu_Organizations.Visible = false;
                 *  }
                 *  else if (HttpContext.Current.Session["RoleName"].ToString() == ConstantMessages.Roles.subadmin)
                 *  {
                 *      dvDashboard.Visible = true;
                 *      dvUserDashboard.Visible = false;
                 *      dvGroups.Visible = false;
                 *      dvUsers.Visible = false;
                 *      dvTopics.Visible = true;
                 *      dvAssignTopics.Visible = false;
                 *      dvSubMenu_ContentSettings.Visible = true;
                 *      dvSubMenu_Customize.Visible = true;
                 *  }
                 *  else if (HttpContext.Current.Session["RoleName"].ToString() == ConstantMessages.Roles.enduser)
                 *  {
                 *      dvDashboard.Visible = false;
                 *      dvUserDashboard.Visible = true;
                 *      dvGroups.Visible = false;
                 *      dvUsers.Visible = false;
                 *      dvTopics.Visible = false;
                 *      dvAssignTopics.Visible = false;
                 *  }
                 * }
                 */

                if (HttpContext.Current.Session["RoleName"] != null)
                {
                    if (HttpContext.Current.Session["RoleName"].ToString() == ConstantMessages.Roles.superadmin)
                    {
                        dvDashboard.Visible        = true;
                        dvLearn.Visible            = true;
                        dvMyLearning.Visible       = true;
                        dvTeamLearning.Visible     = true;
                        dvLearnNewSkills.Visible   = true;
                        dvDiscoverLearning.Visible = true;
                        dvTopics.Visible           = true;

                        dvCoursesInsights.Visible = true;
                        dvCoursesSettings.Visible = true;

                        dvAllCourses.Visible            = true;
                        dvSubMenu_Organizations.Visible = true;

                        dvProjects.Visible     = true;
                        dvTaskInsights.Visible = true;
                        dvTaskSettings.Visible = true;

                        dvCommunity.Visible = true;
                        dvOnyxU.Visible     = true;

                        dvUsersNTeams.Visible       = true;
                        dvUsers.Visible             = true;
                        dvOrganizations.Visible     = true;
                        dvDirectorySettings.Visible = true;

                        dvCommunity.Visible = true;
                        dvConnectWithOtherLearners.Visible = true;
                        dvDiscoverNewOpportunities.Visible = true;
                        dvFunWithQuizzes.Visible           = true;

                        dvSettings.Visible             = true;
                        dvSettingsParent.Visible       = true;
                        dvMyAccount.Visible            = true;
                        dvOrganizationSettings.Visible = true;
                        dvLanguages.Visible            = true;
                        dvAccountSettings.Visible      = true;
                        dvIntegrations.Visible         = true;
                        dvSessions.Visible             = true;
                        dvActivityLogs.Visible         = true;
                        dvBilling.Visible = false;
                        dvEmail.Visible   = false;

                        dvHelp.Visible = true;
                        dvSubMenu_HelpCenter.Visible = true;
                        dvSubMenu_Support.Visible    = true;
                        dvSubMenu_Chat.Visible       = true;
                    }
                    else if (HttpContext.Current.Session["RoleName"].ToString() == ConstantMessages.Roles.companyadmin)
                    {
                        dvUserDashboard.Visible = true;
                        dvTopics.Visible        = true;
                        dvAllCourses.Visible    = true;
                        // dvAddNewCourse.Visible = true;

                        dvLearn.Visible            = true;
                        dvMyLearning.Visible       = true;
                        dvTeamLearning.Visible     = true;
                        dvLearnNewSkills.Visible   = true;
                        dvDiscoverLearning.Visible = true;
                        dvAssignCourses.Visible    = true;

                        dvInsights.Visible = true;
                        dvReport1.Visible  = true;
                        dvReport2.Visible  = true;

                        dvCoursesInsights.Visible = true;
                        dvCoursesSettings.Visible = true;
                        //    dvAddNewTask.Visible = true;

                        dvProjects.Visible     = true;
                        dvTaskInsights.Visible = true;
                        dvTaskSettings.Visible = true;

                        dvGroups.Visible         = true;
                        dvTeam.Visible           = true;
                        dvDepartment.Visible     = true;
                        dvCourseCategory.Visible = true;
                        dvUserGroupMpng.Visible  = true;
                        dvUsers.Visible          = true;

                        //  dvAddNewCourse.Visible = true;
                        //   dvAddNewTask.Visible = true;

                        dvCommunity.Visible                = true;
                        dvLearnNewSkills.Visible           = true;
                        dvConnectWithOtherLearners.Visible = true;
                        dvDiscoverNewOpportunities.Visible = true;
                        dvFunWithQuizzes.Visible           = true;

                        dvOnyxU.Visible = true;

                        dvUsersNTeams.Visible       = true;
                        dvUserGroupMpng.Visible     = true;
                        dvTeam.Visible              = true;
                        dvDepartment.Visible        = true;
                        dvDirectorySettings.Visible = true;

                        dvSessions.Visible        = true;
                        dvActivityLogs.Visible    = true;
                        dvBilling.Visible         = false;
                        dvEmail.Visible           = false;
                        dvCustomize.Visible       = true;
                        dvIntegrations.Visible    = true;
                        dvAccountSettings.Visible = true;

                        dvCommunity.Visible = true;
                        dvConnectWithOtherLearners.Visible = true;
                        dvDiscoverNewOpportunities.Visible = true;
                        dvFunWithQuizzes.Visible           = true;

                        dvAdminConsole.Visible = true;
                        dvContent.Visible      = true;

                        dvSettings.Visible       = true;
                        dvSettingsParent.Visible = true;
                        dvMyAccount.Visible      = true;
                        dvLanguages.Visible      = true;
                        dvNotifications.Visible  = true;

                        dvSubMenu_HelpCenter.Visible = true;
                        dvSubMenu_Support.Visible    = true;
                        dvSubMenu_Chat.Visible       = true;
                    }
                    else if (HttpContext.Current.Session["RoleName"].ToString() == ConstantMessages.Roles.subadmin)
                    {
                        dvUserDashboard.Visible = true;
                        dvTopics.Visible        = true;
                        dvAllCourses.Visible    = true;
                        //dvAddNewCourse.Visible = true;
                        dvCommunity.Visible = true;
                        dvConnectWithOtherLearners.Visible = true;
                        dvDiscoverNewOpportunities.Visible = true;
                        dvFunWithQuizzes.Visible           = true;

                        dvAdminConsole.Visible = true;
                        dvContent.Visible      = true;

                        //  dvAddNewCourse.Visible = true;
                        //dvAddNewTask.Visible = true;

                        dvCoursesInsights.Visible = true;
                        dvCoursesSettings.Visible = true;

                        dvProjects.Visible     = true;
                        dvTaskInsights.Visible = true;
                        dvTaskSettings.Visible = true;

                        dvCommunity.Visible = true;
                        dvOnyxU.Visible     = true;

                        dvSettings.Visible       = true;
                        dvSettingsParent.Visible = true;
                        dvMyAccount.Visible      = true;
                        dvLanguages.Visible      = true;
                        dvNotifications.Visible  = true;

                        dvSubMenu_HelpCenter.Visible = true;
                        dvSubMenu_Support.Visible    = true;
                        dvSubMenu_Chat.Visible       = true;
                    }
                    else if (HttpContext.Current.Session["RoleName"].ToString() == ConstantMessages.Roles.enduser)
                    {
                        dvUserDashboard.Visible = true;
                        dvTopics.Visible        = true;

                        dvCoursesInsights.Visible = true;
                        dvCoursesSettings.Visible = false;

                        dvProjects.Visible     = true;
                        dvTaskInsights.Visible = true;
                        dvTaskSettings.Visible = true;

                        dvCommunity.Visible = true;
                        dvOnyxU.Visible     = true;

                        dvAllCourses.Visible = true;
                        dvCommunity.Visible  = true;
                        dvConnectWithOtherLearners.Visible = true;
                        dvDiscoverNewOpportunities.Visible = true;
                        dvFunWithQuizzes.Visible           = true;
                        //dvSettings.Visible = true;
                        dvMyAccount.Visible     = true;
                        dvLanguages.Visible     = true;
                        dvNotifications.Visible = true;

                        dvSubMenu_HelpCenter.Visible = true;
                        dvSubMenu_Support.Visible    = true;
                        dvSubMenu_Chat.Visible       = true;
                    }
                }

                // Change Theme Colors & Fonts..
                var theme1 = Convert.ToString(HttpContext.Current.Session["ThemeColor"]);
                var theme2 = Convert.ToString(HttpContext.Current.Session["ThemeColor2"]);
                var theme3 = Convert.ToString(HttpContext.Current.Session["ThemeColor3"]);
                var theme4 = Convert.ToString(HttpContext.Current.Session["ThemeColor4"]);
                if (!string.IsNullOrEmpty(theme1))
                {
                    //dvBody.Style.Add("font-family", "");
                }
                if (!string.IsNullOrEmpty(theme2))
                {
                    //dvBody.Style.Add("font-family", "");
                }
                if (!string.IsNullOrEmpty(theme3))
                {
                    // dvBody.Style.Add("font-family", "");
                }
                if (!string.IsNullOrEmpty(theme4))
                {
                    dvBody.Style.Add("font-family", theme4);
                }
            }
            else if (Request.Url.ToString().ToUpper().Contains("/t/course_preview.aspx?courseid".ToUpper()))
            {
                //Proceed with page redirection
                //HttpContext.Current.Session["requestedurlcourse"] = Request.Url.ToString();
                //Response.Redirect(Request.Url.ToString(), false);
            }
            else
            {
                //This is used to keep the page where user requested .Purpose of this is to navigate already logged in user in same browser
                HttpCookie myCookie = Request.Cookies["UserInfo"];
                if (myCookie != null)
                {
                    HttpContext.Current.Session["requestedurl"] = Request.Url.ToString();
                }
                //End

                Response.Redirect("~/login.aspx");
            }
        }