public ActionResult SignIn(SignInViewModel vm,string returnUrl = default(string)) { try { if (!ModelState.IsValid) { vm.ErrorMessage = "Email address and Password are required fields"; return View(vm); } var userSession = Authenticate(vm); if (userSession != null) { var identity = new ClaimsIdentity(AuthenticationHelper.CreateClaim(userSession, Helpers.Constants.UserRoles.Admin, Helpers.Constants.UserRoles.User), DefaultAuthenticationTypes.ApplicationCookie ); AuthenticationManager.SignIn(new AuthenticationProperties() { AllowRefresh = true, IsPersistent = true, ExpiresUtc = DateTime.UtcNow.AddHours(1) }, identity); if (!string.IsNullOrWhiteSpace(returnUrl) && Url.IsLocalUrl(returnUrl)) return Redirect(returnUrl); return RedirectToAction("index", "home"); } } catch (AuthenticationException e) { vm.ErrorMessage = e.Message; } return View(vm); }
public ActionResult Login(clsUser _user, string returnUrl = default(string)) { string rtnUrl = ViewBag.ReturnUrl; string rememberme = ""; TempData["loginFailedMessage"] = ""; if (ModelState.IsValid) { if (rememberme == "true") { coockieuser.Values["UserName"] = _user.UserName; coockieuser.Values["PassWord"] = new Helper().Encrypt(_user.Password); coockieuser.Expires = DateTime.Now.AddHours(7); coockieuser.HttpOnly = true; Response.Cookies.Add(coockieuser); } else { if (Request.Cookies["User"] != null) { Response.Cookies["User"].Expires = DateTime.Now.AddHours(-1); } } var loginResult = new Usermanament().Login(_user.UserName, new Helper().Encrypt(_user.Password)); if (loginResult != null) { var userSession = new UserSessionModel { UserId = Guid.NewGuid(), DisplayName = loginResult.FullName }; var identity = new ClaimsIdentity(AuthenticationHelper.CreateClaim(userSession, loginResult.UserName, loginResult.UserId, loginResult.RoleName.ToString()), DefaultAuthenticationTypes.ApplicationCookie); var ctx = Request.GetOwinContext(); var authManager = ctx.Authentication; authManager.SignIn(new AuthenticationProperties() { AllowRefresh = true, IsPersistent = true, ExpiresUtc = DateTime.UtcNow.AddHours(1) }, identity); if (!string.IsNullOrWhiteSpace(returnUrl) && Url.IsLocalUrl(returnUrl)) { return(Redirect(returnUrl)); } return(RedirectToAction("Dashbord", "NewsOprations")); } else { TempData["loginFailedMessage"] = "Entered UserName and Password is Wrong"; } } else { if (string.IsNullOrEmpty(_user.UserName)) { TempData["loginFailedMessage"] = "Please Enter Your Username"; } else if (string.IsNullOrEmpty(_user.Password)) { TempData["loginFailedMessage"] = "Please Enter Your Password"; } } return(View()); }
public ActionResult Login(LoginModel loginModel) { var serialization = new Serialization(); var userRegistration = new UserRegistration(); var loginBA = new Login(); var HashCriteria = new Hashtable(); var actualCriteria = string.Empty; if (ModelState.IsValid) { HashCriteria.Add("UserName", loginModel.UserName); actualCriteria = serialization.SerializeBinary((object)HashCriteria); var result = loginBA.ValidateLogin(actualCriteria); var loginModelDetails = (LoginModel)(serialization.DeSerializeBinary(Convert.ToString(result))); var validateResult = false; var isValidPassword = false; if (loginModelDetails.common != null) { isValidPassword = SessionManagement.CipherTool.Verify(loginModel.Password, Convert.ToString(loginModelDetails.common.Password)); } if (isValidPassword) { if (loginModelDetails.common.IsEnabled == false) { ModelState.AddModelError("", "User account is disabled, Please contact Administrator."); return(PartialView("_Login", loginModel)); } //initialize userAuthModel var userSession = Authenticate(loginModelDetails); // if (userSession != null) { var identity = new ClaimsIdentity(AuthenticationHelper.CreateClaim(userSession, userSession.UserRole), DefaultAuthenticationTypes.ApplicationCookie ); AuthenticationManager.SignIn(new AuthenticationProperties() { AllowRefresh = true, IsPersistent = true, ExpiresUtc = DateTime.UtcNow.AddHours(1) }, identity); } SessionController.UserSession.UserId = loginModelDetails.common.UserId; SessionController.UserSession.UserName = loginModelDetails.common.UserName; SessionController.UserSession.EmailAddress = loginModelDetails.common.EmailAddress; SessionController.UserSession.RoleType = loginModelDetails.common.RoleType; validateResult = true; //Reteive the subscription for the user to check if this is valid or not HashCriteria = new Hashtable(); actualCriteria = string.Empty; List <UserProfileEditModel> objUserProfileDetails = new List <UserProfileEditModel>(); HashCriteria.Add("UserID", loginModelDetails.common.UserId); actualCriteria = serialization.SerializeBinary((object)HashCriteria); var resultuser = userRegistration.GetUserSpecificDetails(actualCriteria); objUserProfileDetails = (List <UserProfileEditModel>)(serialization.DeSerializeBinary(Convert.ToString(resultuser))); var UserProfileDetails = objUserProfileDetails.FirstOrDefault(); //To get the customer credit card information for this user if (UserProfileDetails.CustomerID != "" && UserProfileDetails.CustomerID != null) { string customerID = UserProfileDetails.CustomerID; SessionController.UserSession.CustomerID = customerID; var customerService = new StripeCustomerService(); StripeCustomer stripeCustomer = customerService.Get(customerID); //Check if user has any subscription or not if (stripeCustomer.Subscriptions.TotalCount > 0) { var subscriptionID = stripeCustomer.Subscriptions.Data[0].Id; var subscriptionService = new StripeSubscriptionService(); StripeSubscription stripeSubscription = subscriptionService.Get(subscriptionID); //Check if the user subscription is on or not: If on then Paid else Unpaid if (stripeSubscription.Status == "active") { SessionController.UserSession.IsPaid = true; } else { SessionController.UserSession.IsPaid = false; } } else { SessionController.UserSession.IsPaid = false; } } else { SessionController.UserSession.IsPaid = false; } } if (validateResult) { var url = new { Url = Request.Url.AbsoluteUri, type = "Url" }; return(Json(url, JsonRequestBehavior.AllowGet)); } } ModelState.AddModelError("", "The user name or password provided is incorrect."); return(PartialView("_Login", loginModel)); }
public async Task <ActionResult> ChargeSaveCustomer(SubscriptionModel model) { var subscriptionBA = new Subscription(); var serialization = new Serialization(); var status = false; var HashCriteria = new Hashtable(); var actualCriteria = string.Empty; var HashCriteriaPlan = new Hashtable(); var actualCriteriaPlan = string.Empty; var userID = Convert.ToString(SessionController.UserSession.UserId); var subscriptionModel = new SubscriptionModel(); subscriptionModel.CardType = GetPaymentCardType(); subscriptionModel.ExpirationYearList = GetExpirationYear(); subscriptionModel.ExpirationMonthList = GetExpirationMonth(); if (model.RoleID == 2) { ViewBag.SubscriptionTitle = "Find unlimited investment opportunities for $399 per month."; } else if (model.RoleID == 3) { ViewBag.SubscriptionTitle = "List unlimited investment opportunities for $399 per month."; } //Remove fields form model because these are required fieldsand we are not using these fields on paywall ModelState.Remove("State"); ModelState.Remove("BillingAddress"); ModelState.Remove("Zip"); ModelState.Remove("City"); if (!ModelState.IsValid) { return(PartialView("_PaymentSubscriptionPopup", subscriptionModel)); } //Check if the user is already a custome ron stripe or not? var customer_ID = Convert.ToString(SessionController.UserSession.CustomerID); if (customer_ID != null && customer_ID != "") { if (model.Token != null) { //For existing customer create new card var cardOptions = new StripeCardCreateOptions() { SourceToken = model.Token }; var cardService = new StripeCardService(); StripeCard card = cardService.Create(customer_ID, cardOptions); } else { return(PartialView("_PaymentSubscriptionPopup", subscriptionModel)); } model.CustomerID = customer_ID; } else { // 1. Create customer in stripe if (model.Token != null) { var customerID = await CreateCustomer(model.Token); model.CustomerID = customerID; SessionController.UserSession.CustomerID = model.CustomerID; } else { return(PartialView("_PaymentSubscriptionPopup", subscriptionModel)); } } // 2. Get the plans from the Plans table HashCriteriaPlan.Add("ID", model.subscriptionOption.ID.ToString()); actualCriteriaPlan = serialization.SerializeBinary((object)HashCriteriaPlan); var result = subscriptionBA.GetPlanDetails(actualCriteriaPlan); var subscriptionPlans = (SubscriptionPlans)(serialization.DeSerializeBinary(Convert.ToString(result))); var planID = model.subscriptionOption.ID; var subscription_PlanID = subscriptionPlans.SubscriptionPlanID; var amount = subscriptionPlans.Amount; // 3. subscription aginst that plan var subscriptionService = new StripeSubscriptionService(); var stripeSubscription = subscriptionService.Create(model.CustomerID, subscription_PlanID); //4. Make the payment model.Amount = amount; var chargeId = await ProcessPayment(model); if (chargeId != null) { DateTime billingDate = DateTime.Now; // 5. Save detals in the subscription table with amount and token of charge HashCriteria.Add("Token", model.Token); HashCriteria.Add("UserID", userID); HashCriteria.Add("Amount", model.Amount); HashCriteria.Add("BillingDate", Convert.ToString(billingDate.ToString("dd/MM/yyyy"))); HashCriteria.Add("CustomerID", model.CustomerID); HashCriteria.Add("PlanID", planID); HashCriteria.Add("SubscriptionID", stripeSubscription.Id); HashCriteria.Add("ChargeID", chargeId); actualCriteria = serialization.SerializeBinary((object)HashCriteria); var subscriptionstatus = subscriptionBA.SaveSubscriptionData(actualCriteria); var subscriptionID = Convert.ToInt64(serialization.DeSerializeBinary(Convert.ToString(subscriptionstatus))); if (subscriptionID > 0) { // 6. Update the user role as Investor/Broker status = UpdateUserRole(model.RoleID); //Make the user flag as paid SessionController.UserSession.IsPaid = true; if (model.RoleID == 2) { Synoptek.SessionController.UserSession.RoleType = "Investor"; } else if (model.RoleID == 3) { Synoptek.SessionController.UserSession.RoleType = "Broker"; } //initialize userAuthModel LoginController loginController = new LoginController(); var loginBA = new Login(); LoginModel loginModel = new LoginModel(); HashCriteria.Add("UserName", SessionController.UserSession.EmailAddress); actualCriteria = serialization.SerializeBinary((object)HashCriteria); var rec = loginBA.ValidateLogin(actualCriteria); var loginModelDetails = (LoginModel)(serialization.DeSerializeBinary(Convert.ToString(rec))); AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie, DefaultAuthenticationTypes.ExternalCookie); var userSession = loginController.Authenticate(loginModelDetails); if (userSession != null) { var identity = new ClaimsIdentity(AuthenticationHelper.CreateClaim(userSession, userSession.UserRole), DefaultAuthenticationTypes.ApplicationCookie ); AuthenticationManager.SignIn(new AuthenticationProperties() { AllowRefresh = true, IsPersistent = true, ExpiresUtc = DateTime.UtcNow.AddHours(1) }, identity); } if (model.RoleID == 2) { return(RedirectToAction("Investor", "Dashboard")); } if (model.RoleID == 3) { return(RedirectToAction("Broker", "Dashboard")); } } } return(PartialView("_PaymentSubscriptionPopup", subscriptionModel)); }