public string Subscribe(string planId) { try { var userId = Int32.Parse(HttpContext.Session.GetString("UserID")); var user = _context.Users.Find(userId); var customerId = user.CustomerId; StripeLib stripeLib = new StripeLib(); if (stripeLib.HasSubscription(customerId)) { stripeLib.DeleteSubscriptions(customerId); } var subscriptionId = stripeLib.Subscribe(customerId, planId); if (subscriptionId == null) { return("false"); } return(subscriptionId); } catch (Exception ex) { return("false"); } }
public async Task <IActionResult> Profile(int?id) { if (id == null || HttpContext.Session.GetString("User_Name").Equals("") || HttpContext.Session.GetString("UserID").Equals("")) { return(NotFound()); } var user = await _context.Users.FindAsync(id); if (user == null) { return(NotFound()); } string date31string = user.DateOfBirth.ToString("yyyy-MM-dd"); user.DateOfBirth = DateTime.ParseExact(date31string, "yyyy-MM-dd", null); try { StripeLib stripeLib = new StripeLib(); ViewBag.subscription = stripeLib.GetSubscription(user.CustomerId); } catch (Exception ex) { ViewBag.subscription = "N/A"; } return(View(user)); }
public async Task <IActionResult> IndexStripe() { StripeLib stripeLib = new StripeLib(); var plans = stripeLib.GetPlans(); ViewData["plans"] = plans; return(View()); }
public string CreateCard(string number, int month, int year, string cvc) { try { var userId = Int32.Parse(HttpContext.Session.GetString("UserID")); var user = _context.Users.Find(userId); var customerId = user.CustomerId; StripeLib stripeLib = new StripeLib(); stripeLib.SetCard(customerId, number, month, year, cvc); return("true"); } catch (Exception ex) { return("false"); } }
// GET: Users/Card public string Card() { var userId = Int32.Parse(HttpContext.Session.GetString("UserID")); var user = _context.Users.Find(userId); var customerId = user.CustomerId; StripeLib stripeLib = new StripeLib(); Stripe.StripeList <Stripe.Card> cards = stripeLib.GetCards(customerId); if (cards.Count() == 0) { return(null); } return(cards.First().Id); }
public async Task <IActionResult> Register([Bind("UserID,Email,Name,Password,ConfirmedEmail,Street,PostalCode,City,Phone,DateOfBirth,RoleID")] Users users) { if (ModelState.IsValid == true) { if (!_context.Users.Any(x => x.Email == users.Email)) { /** Password encrypting ***/ /*var data = Encoding.ASCII.GetBytes(users.Password); * var sha256 = new SHA256CryptoServiceProvider(); * var sha256data = sha256.ComputeHash(data); * users.Password = sha256data;*/ /** End of Password encrypting **/ users.RoleID = 2; _context.Add(users); await _context.SaveChangesAsync(); /** Send Confirmation Email **/ int user_id = (from user in _context.Users select user.UserID).Max(); var result = new MailSenderController(_configuration).PostMessage(users.Email, users.Name, users.UserID); /** End of Confirmation Email **/ // Register User as a Customer on Stripe StripeLib stripeLib = new StripeLib(); users.CustomerId = await stripeLib.CreateCustomer(users); await _context.SaveChangesAsync(); insertToRegisterTable(); TempData["Message"] = "A sua conta foi criada com sucesso!Por favor verifique o seu email e clique no email para concluir o registo da sua conta e prosseguir para o login!"; return(RedirectToAction("Index", "Home", null)); } ModelState.AddModelError("Email", "Email já existe!"); return(View(users)); } return(View(users)); }
public async Task <IActionResult> Create([Bind("UserID,Email,Name,Password,ConfirmedEmail,Street,PostalCode,City,Phone,DateOfBirth,RoleID")] Users users) { if (!GetAuthorization(1, 'c')) { return(NotFound()); } ViewBag.Permission = getPermissions(); if (!checkValues(users)) { ViewBag.RoleTypes = _context.Roles.AsParallel(); return(View(users)); } if (ModelState.IsValid) { _context.Add(users); await _context.SaveChangesAsync(); /** Send Confirmation Email **/ int user_id = (from user in _context.Users select user.UserID).Max(); var result = new MailSenderController(_configuration).PostMessage(users.Email, users.Name, users.UserID); /** End of Confirmation Email **/ // Register User as a Customer on Stripe StripeLib stripeLib = new StripeLib(); users.CustomerId = await stripeLib.CreateCustomer(users); await _context.SaveChangesAsync(); insertToRegisterTable(); TempData["Message"] = "Utilizador criado com sucesso!Por favor, o utilizador que verifique o seu email e clique no link para concluir o registo da sua conta e para prosseguir para o login!"; return(RedirectToAction(nameof(Index))); } TempData["Message"] = "Por favor, siga os exemplos para continuar!"; ViewBag.RoleTypes = _context.Roles.AsParallel(); return(View()); }
public async Task <IActionResult> Index(string searchString, string roleType) { if (!GetAuthorization(1, 'r')) { return(NotFound()); } ViewBag.Permission = getPermissions(); var query = from usersJ in _context.Users join rolesJ in _context.Roles on usersJ.RoleID equals rolesJ.RoleID select new { UserID = usersJ.UserID, Name = usersJ.Name, Email = usersJ.Email, ConfirmedEmail = usersJ.ConfirmedEmail, RoleName = rolesJ.RoleName, RoleID = rolesJ.RoleID, CustomerID = usersJ.CustomerId }; if (!String.IsNullOrEmpty(searchString)) { query = query.Where(user => user.Name.Contains(searchString)); } if (!String.IsNullOrEmpty(roleType)) { query = query.Where(user => user.RoleName.Contains(roleType)); } var result = query.ToList().Select(e => new Users { UserID = e.UserID, Name = e.Name, Email = e.Email, ConfirmedEmail = e.ConfirmedEmail, RoleName = e.RoleName, RoleID = e.RoleID, CustomerId = e.CustomerID }).ToList(); var rolesTypesQuery = from roles in _context.Roles orderby roles.RoleName select roles.RoleName; var usersIndexVM = new UsersIndexViewModel { Users = result, RolesType = new SelectList(rolesTypesQuery.Distinct().ToList()), }; Dictionary <int, string> dict = new Dictionary <int, string>(); StripeLib stripeLib = new StripeLib(); foreach (Users user in result) { try { dict.Add(user.UserID, stripeLib.GetSubscription(user.CustomerId)); } catch (Exception ex) { dict.Add(user.UserID, "N/A"); } } ViewBag.Subscriptions = dict; return(View(usersIndexVM)); }