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