public ActionResult InsertDropdown(string dropdownViewModel) { DropdownViewModel viewModel = JsonConvert.DeserializeObject <DropdownViewModel>(dropdownViewModel); viewModel.AccountID = this.Identity.ToAccountID(); foreach (DropdownValueViewModel dvvm in viewModel.DropdownValuesList) { dvvm.AccountID = viewModel.AccountID; if (dvvm.IsNewField) { dvvm.DropdownValueID = 0; } } InsertDropdownRequest request = new InsertDropdownRequest(); request.DropdownViewModel = viewModel; dropdownValuesService.InsertDropdownValue(request); cachingService.AddDropdownValues(this.Identity.ToAccountID()); return(Json(new { success = true, response = "" }, JsonRequestBehavior.AllowGet)); }
public async Task <ActionResult> Login(LoginViewModel model, string returnUrl) { Logger.Current.Informational("In Login View Model"); if (!string.IsNullOrEmpty(returnUrl) && returnUrl.ToLower().Contains("logoff")) { returnUrl = null; } LoginViewModel loginViewModel = model; ViewBag.Page = "Login"; Logger.Current.Informational("Are these LoginViewModel fields valid : " + ModelState.IsValid); if (ModelState.IsValid) { try { var userName = loginViewModel.Email + "|" + loginViewModel.AccountId; var user = await UserManager.FindAsync(userName, loginViewModel.Password); if (user != null) { Logger.Current.Informational("Based on credentials UserId is :" + user.Id); var tokenEndpoint = string.Format("{0}/token", ConfigurationManager.AppSettings["WEBSERVICE_URL"]); var sw = new System.Diagnostics.Stopwatch(); sw.Start(); var clientId = System.Web.Configuration.WebConfigurationManager.AppSettings["SMARTTOUCH_APIKEY"].ToString(); var client = new OAuth2Client(new Uri(tokenEndpoint), clientId, ""); var accessToken = client.RequestResourceOwnerPasswordAsync(userName, loginViewModel.Password).Result.AccessToken; sw.Stop(); var timeelapsed = sw.Elapsed; Logger.Current.Informational("time elapsed to fetch token:" + timeelapsed); if (!string.IsNullOrEmpty(accessToken)) { if (this.Response.Cookies["accessToken"] == null) { this.Response.Cookies.Add(new HttpCookie("accessToken", accessToken)); } else { this.Response.Cookies.Set(new HttpCookie("accessToken", accessToken)); } await SignInAsync(user, loginViewModel.RememberMe); int userID; int.TryParse(user.Id, out userID); string IP = Request.UserHostAddress; UserManager.InsertLoginAudit(userID, (int)model.AccountId, IP, SignInActivity.SignIn); cachingService.AddAccountPermissions((int)model.AccountId); cachingService.AddUserPermissions((int)model.AccountId); cachingService.AddDropdownValues(model.AccountId); bool showTC = accountService.ShowTC(new ShowTCRequest() { AccountId = (int)model.AccountId }).ShowTC; UserSettings userSettings = accountService.GetFirstLoginUserSettings(new GetFirstLoginUserSettingsRequest() { RequestedBy = userID }).UserSettings; if (userSettings != null && !userSettings.HasAcceptedTC && showTC) { AddCookie("ShowTC", "1", 1); } else { AddCookie("ShowTC", "0", 1); } if (user.HasTourCompleted.HasValue && user.HasTourCompleted.Value) { AddCookie("IsFirstLogin", 1.ToString(), 1); } else if (user.HasTourCompleted == null || (user.HasTourCompleted.HasValue && !user.HasTourCompleted.Value)) { AddCookie("IsFirstLogin", 0.ToString(), 1); } return(RedirectToLocal(returnUrl, user.RoleID, (int)model.AccountId, model.Email, model.Password)); } else { Logger.Current.Informational("Invalid API Key."); ModelState.AddModelError("", "[|Invalid API Key.|]"); return(RedirectToAction("Login", new RouteValueDictionary(new { controller = "Login", action = "Login", modelMessage = "[|Invalid API Key.|]" }))); } } else { Logger.Current.Informational("Requested user not found"); ModelState.AddModelError("", "[|Invalid username or password.|]"); return(RedirectToAction("Login", new RouteValueDictionary(new { controller = "Login", action = "Login", modelMessage = "[|Invalid username or password.|]" }))); } } catch (Exception ex) { ExceptionHandler.Current.HandleException(ex, DefaultExceptionPolicies.LOG_ONLY_POLICY); ModelState.AddModelError("", "[|An error occurred, please try again later.|]"); return(RedirectToAction("Login", new RouteValueDictionary(new { controller = "Login", action = "Login", modelMessage = "[|An error occurred, please try again later.|]" }))); } } else { ModelState.AddModelError("", "[|Invalid details|]"); return(RedirectToAction("Login", new RouteValueDictionary(new { controller = "Login", action = "Login", modelMessage = "[|Invalid details|]" }))); } }