public ActionResult Login()
        {
            string userPortal = Common.GetUserXupj().ToLower();

            try
            {
                if (Session["userid"] != null)
                {
                    ClearSessionData();
                }
                ViewBag.Download   = WebConfigure.GetDomain() + "/Upload/Document/" + WebConfigure.GetUserGuideNameFileWithExtention();
                ViewBag.UrlApp     = WebConfigure.GetDomain();
                ViewBag.CheckLogin = WebConfigure.GetLoginPortal();

                if (WebConfigure.GetLoginPortal() == "false")
                {
                    ViewBag.ListUser = _userBService.GetList();
                    return(View());
                }
                else
                {
                    if (userPortal != "")
                    {
                        var user = _userBService.GetDetailbyUsername(userPortal);

                        if (user != null)// User registered at TREND system
                        {
                            if (user.Status.Equals(7))
                            {
                                Session["userid"]      = user.UserId;
                                Session["role"]        = user.RoleId;
                                Session["roleColor"]   = _userRoleBService.GetDetail(user.RoleId).Description;
                                Session["username"]    = user.Username;
                                Session["name"]        = user.Name;
                                Session["status"]      = user.Status;
                                Session["photo"]       = user.PhotoProfile;
                                Session["loginPortal"] = WebConfigure.GetLoginPortal();

                                if (user.IsDelegate != 0)
                                {
                                    Delegation delegationData = _userBService.GetDetailDelegation(user.IsDelegate);
                                    Session["DelegateStatus"] = delegationData.Status;
                                    Session["DelegateTo"]     = _userBService.GetDetail(delegationData.ToUser).Name;
                                    Session["DelegateUntil"]  = delegationData.EndDate;
                                    Session["DelegateStart"]  = delegationData.StartDate;
                                }
                                else if (user.IsDelegate == 0)
                                {
                                    Session["DelegateStatus"] = null;
                                    Session["DelegateUntil"]  = null;
                                    Session["DelegateTo"]     = null;
                                    Session["DelegateStart"]  = null;
                                }
                                _logReportBService.WriteLog("[SUCCESS] Account Login", MethodBase.GetCurrentMethod().Name, "User Portal :" + userPortal + " has Login");
                                return(RedirectToAction("Index", "Library"));
                            }
                            else
                            {
                                Session["userid"]         = user.UserId;
                                Session["role"]           = user.RoleId;
                                Session["roleColor"]      = "Guest";
                                Session["username"]       = user.Username;
                                Session["name"]           = user.Name;
                                Session["status"]         = user.Status;
                                Session["photo"]          = user.PhotoProfile;
                                Session["loginPortal"]    = WebConfigure.GetLoginPortal();
                                Session["DelegateStatus"] = 0;
                                Session["DelegateUntil"]  = null;
                                Session["DelegateTo"]     = null;
                                Session["DelegateStart"]  = null;
                                _logReportBService.WriteLog("[SUCCESS] Account Login", MethodBase.GetCurrentMethod().Name, "User Portal :" + userPortal + " has Login");
                                return(RedirectToAction("Index", "Library"));
                            }
                        }
                        else //As Guest
                        {
                            EmployeeMaster UserfromPortal = _mstEmployeeBService.GetDetailbyUserName(userPortal);
                            if (UserfromPortal != null)
                            {
                                User model = new User();
                                model.CreatedAt = DateTime.Now;
                                model.Status    = 0;
                                var mEmployee = userPortal.Equals("ict.development") ? _mstEmployeeBService.GetDetailbyUserName("XUPJ21IYN") : UserfromPortal;
                                model.Name       = mEmployee.Employee_Name;
                                model.EmployeeId = mEmployee.Employee_Id;
                                model.Username   = userPortal.Equals("ict.development") ? "ict.development" : mEmployee.Employee_xupj;
                                model.Position   = mEmployee.Position_Name;
                                model.Email      = mEmployee.Email;
                                model.AreaCode   = mEmployee.Location_Id;
                                model.AreaName   = mEmployee.Location_Name;
                                model.BranchCode = mEmployee.Branch_Id;
                                model.Dob        = DateTime.ParseExact(mEmployee.Birth_date, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture);
                                model.RoleId     = 0;
                                model            = _userBService.Add(model);

                                var userguest = _userBService.GetDetailbyUsername(userPortal);
                                Session["userid"]         = userguest.UserId;
                                Session["role"]           = userguest.RoleId;
                                Session["roleColor"]      = "Guest";
                                Session["username"]       = userPortal;
                                Session["name"]           = userguest.Name;
                                Session["status"]         = userguest.Status;
                                Session["photo"]          = userguest.PhotoProfile;
                                Session["loginPortal"]    = WebConfigure.GetLoginPortal();
                                Session["DelegateStatus"] = 0;
                                Session["DelegateUntil"]  = null;
                                Session["DelegateTo"]     = null;
                                Session["DelegateStart"]  = null;
                                _logReportBService.WriteLog("[SUCCESS] Account Login", MethodBase.GetCurrentMethod().Name, "User Portal :" + userPortal + " has Login");
                                return(RedirectToAction("Index", "Library"));
                            }
                            else
                            {
                                var userguest = _userBService.GetDetailbyUsername("Guest");
                                Session["userid"]         = userguest.UserId;
                                Session["role"]           = userguest.RoleId;
                                Session["roleColor"]      = "Guest";
                                Session["username"]       = userguest.Username;
                                Session["name"]           = userPortal;
                                Session["status"]         = userguest.Status;
                                Session["photo"]          = userguest.PhotoProfile;
                                Session["loginPortal"]    = WebConfigure.GetLoginPortal();
                                Session["DelegateStatus"] = 0;
                                Session["DelegateUntil"]  = null;
                                Session["DelegateTo"]     = null;
                                Session["DelegateStart"]  = null;
                                return(Content("<script language='javascript' type='text/javascript'>alert('Your Portal Account Has Not Registered in Employee Master Database'); location.href = '" + WebConfigure.GetDomain() + "/Library';</script>"));
                                // return RedirectToAction("Index", "Library");
                            }
                        }
                    }
                    else
                    {
                        Uri    uri       = new Uri(ConfigurationManager.AppSettings["Domain"]);
                        string requested = uri.Scheme + Uri.SchemeDelimiter + uri.Host + ":" + uri.Port;
                        string protokol  = Common.GetProtocol();
                        string portalUrl = WebConfigure.GetLoginHost() + "/_layouts/15/Trakindo/Authentication/Login.aspx?ReturnUrl=" + protokol + uri.Host + uri.AbsolutePath + "/Library";
                        ViewBag.portalDomain = portalUrl;
                        return(View("RedirectToPortal"));
                    }
                }
            }
            catch (Exception er)
            {
                _logErrorBService.WriteLog("[FAILED] Account Login", MethodBase.GetCurrentMethod().Name, er.ToString(), userPortal);
                return(RedirectToAction("Index", "Library"));
                //ClearSessionData();
                //Uri uri = new Uri(ConfigurationManager.AppSettings["Domain"]);
                //string requested = uri.Scheme + Uri.SchemeDelimiter + uri.Host + ":" + uri.Port;
                //string protokol = Common.GetProtocol();
                //string portalUrl = WebConfigure.GetLoginHost() + "/_layouts/15/Trakindo/Authentication/Login.aspx?ReturnUrl=" + protokol + uri.Host + uri.AbsolutePath + "/Library";
                //ViewBag.portalDomain = portalUrl;
                //return View("RedirectToPortal");
            }
        }